Title: B2B Collaboration using ebXML a Java based implementation
1B2B Collaboration using ebXML a Java based
implementation
2The Sybase Team Here Today
- Mehul Rajparia Senior Systems Engineer out of
Sybases Phoenix office located at 24th st.
Cameback - Kyle Cruce Account Manager out of Sybases
Phoenix office located at 24th st. Cameback - John Durant Western Area Technical Director out
of Sybases corporate office in Dublin, CA - Himagiri(Hima) Mukkamala Web Services Architect
and brain behind todays presentation
3Speakers Qualifications - Himagiri(Hima)
Mukkamala
- Web Services Architect for Sybase e-Business
Solutions - Co-author for ebXML CPPA 2.0 specification
- Co-author for ebXML BPSS 2.0 specification
- Specification Co-lead for JSR 157 Java APIs for
ebXML CPPA - Sybases representative to W3C Web Services
Architecture WG
4Goal
Learn how to implement an automated e-business
collaboration based on ebXML using various Java
techologies
5Learning Objectives
- As a result of this presentation, you will gain
- Insight into specifications that are part of
ebXML standard - Knowledge of ebXML relevance in a B2B
Collaboration - Understanding of Java APIs that can be used to
implement B2B collaboration based on ebXML - Overview of Sybase products and solutions that
support B2b Collaboration (And you thought Sybase
was just the database company.)
6Presentation Agenda
- Web Services What are they?
- Introduction to ebXML
- Description of a B2B Collaboration scenario using
ebXML - Describe Java APIs
- Sybase eBusiness Products Overview
- QA
7Web Services What are they?
8Web Services What are they?
- Functional Interfaces or Services accessible over
Internet. - Loosely coupled software, invokable over the
internet. - Accessible using ubiquitous internet protocols
and formats. - Registered with and Discovered from a Registry
Service - Notation for describing services and data formats
- Enveloping scheme for packaging data for
transport.
9Web Services What are they?
- Two categories based on usage patterns
- Simple
- Collaborative Web Services
10Simple Web Services
- Basic Web Services.
- Stock Quote Service, etc.
- Either RPC or Document style
- Commonly implemented using SOAP, WSDL UDDI on a
J2EE AppServer. - Doesnt provide Business Process Collaboration
capabilities natively. - Lacks Trading Partner Agreement, State information
11Simple Web Services
Web Services Provider
Web Services Provider
Request
Internet
Response
J2EE AppServer
SOAP Messages
.NET
12Collaborative Web Services
- Complex Web Services.
- Either RPC or Document style
- Commonly layered on industry standards like
ebXML, RosettaNet, etc. - Business Process Collaboration over the Internet.
- Enables Trading Partners to take part in complex
business processes. - Provide common services like Exceptions,
Security, Non-Repudiation, Notification of
Failure, etc. - Larger infrastructure requirements.
13Collaborative Web Services(Contd)
Trading Partner Management
B2B Application
B2B Application
Request
Response
Internet
Request
Response
BPM
BPM
J2EE AppServer
Collaboration
.NET
14Collaborative Web Services(Contd)
- RosettaNet ebXML
- RosettaNet doesnt provide collaborations over
multiple business transactions. - No machine readable Profile or Agreements.
- Focus on Vertical Segment (EC/IT)
- Possesses industry knowledge.
- Broader acceptance and presence for a while
15Introduction to ebXML
16Why ebXML ?
ebXML has all the pieces of the puzzle for
automated B2B Collaborations estimated at around
gazillion dollars!!
17Introduction to ebXML
- Introduction
- ebXML is a joint OASIS - United Nations/ CEFACT
Electronic Business XML initiative - Open XML-based infrastructure.
- Modular suite of specifications.
- Lower the barrier of entry for SMEs
18Introduction to ebXML (Contd)
- Strengths
- Completely based on XML
- Provides complete set of specifications.
- HORIZONTAL approach
- A combined effort of XML EDI communities to
evolve new generation B2B(EDI) - Infrastructure to provide a set of re-usable and
extensible Core Components
19Introduction to ebXML (Contd)
- Different Layers of infrastructure
- Core Components (CC)
- Registry/Repository (REGREP)
- Messaging (MSH)
- Collaboration Protocol Profile/Agreement (CPP/A)
- Business Process Specification Schema(BPSS)
20Introduction to ebXML (Contd)
- Core Components
- Promote reuse and interoperability across
industries - E.g. Reuse of Address within multiple industries
- Define a process to discover information
components - Cataloging of information components
- Context specific use of core components for
business documents - Not as mature as compared to other specifications
21Introduction to ebXML (Contd)
- Business Process Specification Schema
- XML based notation for describing Collaborations
- Based on the meta-model behind the UN/CEFACT
Modeling Methodology (UMM) defined in the
N090R9.1 specification. - Supports standard patterns for implementing
collaborations - Patterns determine the actual exchange of
Business Documents and business signals
22Introduction to ebXML (Contd)
- Registry/Repository
- Provides a set of services that enable sharing of
information - Maintained as objects in the Repository
- Managed by the Registry Services.
- Accessible by clients using the client side
implementation. - Various formats of content can be submitted
- 2 kinds of query mechanism, Filter and SQL Query
23Introduction to ebXML (Contd)
- Collaboration Protocol Profile/Agreement
- Profile describes a Trading Partners
characteristics - Transport
- Security etc.
- Agreement describes mutually agreed upon values
binding the collaboration - Provides binding to Business Process Layer to
configure collaborations - Published into REGREP for access
- Could arrive at a CPA by negotiation
24Introduction to ebXML (Contd)
- Messaging
- Defines a wire format and protocol for a Message
Service. - Bindings for HTTP/SMTP
- Defines specific enveloping constructs that
support reliable, secure delivery of business
information - Describes MSH behavior for receiving and sending
messages. - Extensions to SOAP1.1 and SWA
- Communication protocol independent packaging
25Introduction to ebXML (Contd)
Trading Partner Management
CPP/A
Core Comp
B2B Application
B2B Application
Request
Response
Internet
Request
Response
BPM
BPM
MSH
Collaboration
BPSS
J2EE AppServer
.NET
26Description of B2B Collaboration using ebXML
27Description of B2B Collaboration using ebXML
- Purchasing Service
- Trading partners can get a real-time quote before
placing an order - Send a Purchase Order and receive confirmation.
- Collaboration can be constructed by aggregation
of such services in the form of multiple
business-transactions. - Provides a description of the document type for
Quote Request, Quote Response, Purchase Order, PO
Confirmation. - Description of transport and other such
capabilities exists
28Description of B2B Collaboration using ebXML
- Roles Seller, Buyer
- Transactions Quote Request, Quote Response,
Purchase Order Request, Purchase Order
Confirmation - Business Documents
- Quote Request, Quote Response
- PO Request, PO Confirmation
- Protocol HTTP
- XMLDSIG for Non-Repudiation
- SSL for Authentication
- Documents and Capabilities published for Trading
Partner access
29Scenario Mapped to ebXML
- Business Documents QuoteRequest, QuoteResponse,
PO, PO Confirmation Set of Core Components - Collaboration Description for Purchasing Service
Business Process - BPSS - Definition of transport, enveloping, security
characteristics, etc. - CPA - Publishing of Document definitions and
capabilities - REGREP - Runtime exchange of messages over HTTP MSH
30BPSS Document for the Scenario
- ltProcessSpecification xmlns"http//www.ebxml.org/
BusinessProcess" xmlnsxsi"http//www.w3.org/2001
/XMLSchema-instance" xsischemaLocation"http//ww
w.ebxml.org/BusinessProcess ebBPSS.xsd"
name"PIP3A2QuoteService" uuid"bpidRosettaNet3A
2QuoteServicelt/" version"R02.00"gt - ltBusinessDocument nameQuote Request"
nameID"Pip3A2QuoteRequest" specificationLocation
"QuoteRequest.xsd - lt/BusinessDocumentgt
- ltBusinessDocument nameQuote Response"
nameID"Pip3A2QuoteResponse" specificationLocation
"QuoteResponse.xsd"gt - lt/BusinessDocumentgt
- ltBusinessTransaction nameQuote Request"
nameIDQuoteRequest_BT"gt
31BPSS Document for the Scenario
- ltRequestingBusinessActivity nameQuote Request
Action" nameIDQuoteRequestAction"
isAuthorizationRequired false"
isNonRepudiationRequiredfalsegt - ltDocumentEnvelope businessDocumentQuote
Request" businessDocumentIDRef"Pip3A2QuoteRequest
/gt - lt/RequestingBusinessActivitygt
- ltRespondingBusinessActivity nameQuote
Response Action" nameIDQuoteResponseAction"gt - ltDocumentEnvelope businessDocumentQuote
Response " businessDocumentIDRef"Pip3A2QuoteRespo
nse" isAuthenticatedfalse" isConfidentialfalse
" isPositiveResponsefalse" isTamperProoffalse"
/gt - lt/RespondingBusinessActivitygt
- lt/BusinessTransactiongt
32BPSS Document for the Scenario
- ltBinaryCollaboration nameQuote Service"
nameIDQuoteService_BC"gt - ltInitiatingRole nameBuyer" nameID"Buyer"/gt
- ltRespondingRole name"Seller" nameID"Seller"/gt
- ltBusinessTransactionActivity nameQuote
Request" nameIDQuoteRequest_BTA"
businessTransactionQuote Request "
businessTransactionIDRefQuoteRequest_BT"
fromAuthorizedRole"Buyer" fromAuthorizedRoleIDRef
"Buyer" toAuthorizedRole"Seller"
toAuthorizedRoleIDRef"Seller" isConcurrent"false
"/gt - lt/BinaryCollaborationgt
- lt/ProcessSpecificationgt
33CPA Document for the Scenario
- lt!-- Party info for company Seller --gt
- lttpPartyInfo tppartyNameSeller
tpdefaultMshChannelId"channel1"gt - lttpPartyId tptype"DUNS"gtbuyer.duns.comlt/tpPar
tyIdgt - lttpPartyRef xlinkhref"http//Seller.com/about.
html"/gt - lttpCollaborationRole tpidSeller"gt
- lttpProcessSpecification tpversion"2.0
tpname"PIP3A2QuoteService" xlinktype"simple"
xlinkhref"http//www.rosettanet.org/processes/3A
2.xml"/gt - lttpRole tpnameSeller" xlinktype"simple"
xlinkhref"http//www.rosettanet.org/processes/3A
2.xmlSeller"/gt - lttpServiceBindinggt
- lttpService tptype"anyURI"gt bpidRosettaNetPIP
3A2QuoteServicelt/tpServicegt
34CPA Document for the Scenario
- lttpActionBinding tpactionQuote Request
Action" tpchannelId"channel1"
tppackageId"RequestPackage"gt - lttpActionContext tpbinaryCollaboration"Quote
Service" tpbusinessTransactionActivity"Quote
Request" tprequestOrResponseActionQuote
Request Action"/gt - lt/tpActionBindinggt
- lt/tpServiceBindinggt
- lt/tpCollaborationRolegt
- lttpDeliveryChannel tpchannelId"channel1"
tptransportId"transport1" tpdocExchangeId"docE
xchange1"gt - lttpBusinessProcessCharacteristics
tpsyncReplyMode"none" tpnonRepudiationOfOrigin
false" tpnonRepudiationOfReceiptfalse"
tpsecureTransportfalse" tpconfidentialityfal
se /gt
35CPA Document for the Scenario
- lttpMessagingCharacteristics tpackRequestednon
e" tpackSignatureRequestednone"
tpduplicateEliminationnone"/gt - lt/tpDeliveryChannelgt
- lttpTransport tptransportId"transport1"gt
- lttpSendingProtocol tpversion"1.1"gtHTTPlt/tpSen
dingProtocolgt - lttpReceivingProtocol tpversion"1.1"gtHTTPlt/tpR
eceivingProtocolgt - lttpEndpoint tpuri"https//www.Seller.com/ebxml
handler" tptype"allPurpose"/gt - lt/tpPartyInfogt
36CPA Document for the Scenario
- lt!-- SimplePart corresponding to the SOAP
Envelope --gt - lttpSimplePart tpid"MsgHdr tpmimetype"text/x
ml"gt - lttpNamespaceSupported tplocation"http//www.oa
sis-open.org/committees/ebxml-msg/schema/draft-msg
-header-05.xsd" tpversion"1.1"gthttp//www.oasis-
open.org/committees/ebxml-msg/schema/draft-msg-hea
der-05.xsdlt/tpNamespaceSupportedgt - lt/tpSimplePartgt
- lt!-- SimplePart corresponding to a request
action --gt - lttpSimplePart tpid"Request"
tpmimetype"application/xml"gt - lttpNamespaceSupported tplocation"http//www.ro
settanet.org/schemas/PIP3A2QuoteRequest.xsd"
tpversion"1.0"gthttp//www.rosettanet.org/schemas
/PIP3A2QuoteRequest.xsdlt/tpNamespaceSupportedgt - lt/tpSimplePartgt
37CPA Document for the Scenario
- lt!-- SimplePart corresponding to a response
action --gt - lttpSimplePart tpid"Response"
tpmimetype"application/xml"gt - lttpNamespaceSupported tplocation"http//www.ro
settanet.org/schemas/PIP3A2QuoteResponse.xsd"lt/tp
SimplePartgt - lt!-- An ebXML message with a SOAP Envelope plus
a request action payload --gt - lttpPackaging tpid"RequestPackage"gt
- lttpProcessingCapabilities tpparse"true"
tpgenerate"true"/gt - lttpCompositeListgt
- lttpComposite tpid"RequestMsg"
tpmimetype"multipart/related"
tpmimeparameters"typetext/xml"gt
38CPA Document for the Scenario
- lttpConstituent tpidref"MsgHdr"/gt
- lttpConstituent tpidref"Request"/gt
- lt/tpCompositegt lt/tpCompositeListgt
lt/tpPackaginggt - lt!-- An ebXML message with a SOAP Envelope plus
a response action payload --gt - lttpPackaging tpid"ResponsePackage"gt
- lttpProcessingCapabilities tpparse"true"
tpgenerate"true"/gt - lttpCompositeListgt
- lttpComposite tpid"ResponseMsg"
tpmimetype"multipart/related"
tpmimeparameters"typetext/xml"gt - lttpConstituent tpidref"MsgHdr"/gt
- lttpConstituent tpidref"Response"/gt
- lt/tpCompositegt lt/tpCompositeListgt
- lt/tpPackaginggt
39Sequence of Operations
- Model the Business Collaboration.
- Create a BPSS instance document for the
collaboration. - Choose the Business Documents to take part in the
collaboration. - Decide on message exchange characteristics
- Create a CPP for the business process capturing
the characteristics decided. - Publish the BPSS instance, CPP and the Business
Documents to registry under particular category
40Sequence of Operations (Contd)
- Trading Partner would query the registry for a
particular category. - A particular matching partners BPSS, CPP and
other necessary information are retrieved from
the registry. - Would create a CPP to match up with their
characteristics. - Negotiate with the partner chosen to come up with
a CPA. - Initiate the collaboration by invoking the
Business Service Interface provided.
41Collaboration Design and Runtime
Business Process Model
Business Document
Core Components
BPSS
CPP
CPP
Registry/ Repository
CPA
Transport Packaging
Trading Partner
Trading Partner
42Describe Java APIs
43Describe Java APIs
- Few of Java APIs that could be used
- JAXR
- JAXM
- JAXCPPA
- JAXB
- J2EE
- JSR 105 - XML Digital Signatures
- JSR 106 XML Encryption
44Describe Java APIs (Contd)
- JAXR?
- JSR 93 Java for XML Registries.
- API to expose registries like UDDI, ebXML etc.
- Storing BPSS instance document, CPP Business
Document definitions. - Provides query capability to search based on
different parameters as defined in the REGREP
specification.
45Describe Java APIs (Contd)
- JAXCPPA?
- JSR 157 Java API for Profile and Agreement
Management. - API to create and manipulate CPP, CPA
- Will also support creation of CPA document by
negotiation process. - Will support submission of CPP documents to an
ebXML registry using JAXR - One step in automated e-business collaborations.
46Describe Java APIs (Contd)
- JAXM
- JSR 67 Java API for XML Messaging
- Profiles for various specifications like
WS-Routing, ebXML Messaging. - API to create messages compliant with SOAP 1.1
SWA. - Using ebXML profile, messages which correspond
to MSH specification can packaged and
transported. - Supports both synchronous and asynchronous
handling of messages
47Describe Java APIs (Contd)
- JAXM? Code
- // JAXM Specific imports
- import javax.xml.soap.
- import javax.xml.messaging.
- import java.net.URL
- import com.sybase.ebxml.EBXMLMessageImpl
- // Create a connection to provider
- ProviderConnectionFactory pcf
ProviderConnectionFactory.newInstance() - ProviderConnection con pcf.createConnection()
- // Create a MessageFactory without using a
profile - MessageFactory mf con.createMessageFactory(ebXM
L2.0) - SOAPMessage msg mf.createMessage()
48Describe Java APIs (Contd)
- JAXM? Code
- EbXMLMessageImpl message (EbXMLMessageImpl)msg
- message.setSender(newEndpoint(sender))
- message.setReceiver(new Endpoint(receiver))
- message.setCPAId(CPA-ID)
- message.setService(new Service(Service))
- message.setAction(Action)
- Manifest mf new Manifest()
- Reference rf new Reference(Root CID, link,
Buyer) - mf.setSchema(PIP3A2QuoteRequest.xsd)
- mf.addReference(mf)
- message.setManifest(mf)
- // Retrieve the SOAP Part for the SWA Message
- SOAPPart soapPartmsg.getSOAPPart()
49Describe Java APIs (Contd)
- JAXM? Code
- // Retrieve the SOAP-ENVELOPE Part from the
- // Message
- SOAPEnvelope envelope soapPart.getEnvelope()
- // Create the SOAP-Body Part to be part of the
message - SOAPBody body envelope.getBody()
- // Create a Body Element and add it to Body
- SOAPBodyElement bodyElement body.addBodyElement(
envelope.createName("Text", "jaxm",
"http//java.sun.com/jaxm")) - bodyElement.addTextNode("Some-text")
- // Add an attachment to SOAP Msg
- URL url new URL("http//wombats.com/img.jpg")
-
50Describe Java APIs (Contd)
- JAXM? Code
- AttachmentPart ap1 message.createAttachmentPart(
new DataHandler(url)) - msg.addAttachmentPart(ap1)
- // Call the synchronous api to send the ebXML
Message and retrieve the response for the call - SOAPMessage reply connection.call(msg)
- //Access the response message to retrieve the
payload and attachments - Source srcreply.getSOAPPart().getContent()
- java.util.Iterator attachments
reply.getAttachments() - // Close the connection
- connection.close()
51Describe Java APIs (Contd)
- JAXB
- JSR 31 XML Data-binding facility
- Generates java classes by compiling XML schema.
- Easy to use compared to handling XML documents by
using parse trees or events - Documents are accessed as instances of classes.
52Describe Java APIs (Contd)
- J2EE
- Execute business processes using EJBs to
accomplish the collaboration. - JCA to talk to a adapter for accessing EAI
- MDBs and JMS for asynchronous processing of
messages. - JDBC for database access for performing a
business process - JAXP for XML processing
53Overview of Sybases eBusiness Products and
Solutions to Support B2B Collaboration
54Sybase e-Business Platform And you thought
Sybase was just the database company
55Sybase Solution for B2B Collaboration
- EAServer a leading J2EE 1.3 compatible
enterprise-class application server lets you
execute CORBA / COM / Java / and PowerBuilder
Components - Web Services Integrator a platform for
seamlessly integrating business processes between
trading partners - PowerDesigner a visual modeling and design tool
for data and business processes with ability to
generate ebXML BPSS - Process Server an XML-based process design and
execution engine
56How These Components Work Together?
57PowerDesigner
- Leading data, object, and process modeling tool
- Common metadata repository across all types of
model to share information across various types
of models - Customer defines complex business process using
this tool - The process can then be exported to ebXML engine
to support B2B collaboration
58Web Services Integrator (WSI)
- WSI is the standardizes the way of defining a
collaborative business process using XML - Supports various ebXML standards
- ebXML messaging 2.0
- ebXML CPP/A 2.0
- ebXML BPSS 2.0
- Also supports
- RosettaNet
- EDIINT
- AS2
59WSI (continued)
- WSI is responsible for internal and external
communication to facilitate B2B collaboration - Externally, WSI reads the CPA and communicates
with the trading partner using CPA defined
protocol and rules - Internally, WSI accepts the incoming message and
sends it to the Business Service Interface (BSI)
layer for appropriate process execution. - WSI runs on the top of an J2EE compliant
application server such as Sybase EAServer or BEA
WebLogic
60Enterprise Application Server (EAServer)
- J2EE 1.3 compatible application server
- Supports
- Various component types Java, C/C, COM,
CORBA, PowerBuilder all in one execution engine - Various client types Java, HTML, VB, etc.
- Various back-ends different databases and
enterprise information systems - Highest level of security SSL, Digital
Certificates, role-based access, etc. - Load balancing and clustering
- Support for JMS, CICS, and ERP integration
61Process Server
- XML-based business process automation platform
- Fits in the Business Service Interface layer
where Process Server is responsible to getting
message from the WSI and returning the response
message after executing appropriate business
process - Integrates with J2EE applications by invoking
EJBs for synchronous invocations or MDBs for
asynchronous interactions. - Run-time support for ebXML Business Process
Specification Schema (BPSS) - Used to integrate with new and existing
applications
62Other Complimentary Technology
- Adapters to integrate internal systems SAP,
PeopleSoft, Siebel, Mainframe, databases erc. - BizTracker Business Activity Monitoring (BAM)
to check the health of processes from business
perspective, not IT perspective.
63B2B Collaboration Example
Business Services Interface (BSI) Layer
Internet
64Where To Get More Information
- Visit Sybase web site
- www.sybase.com
- Learn about Sybases EAServer with Free Download
- http//www.sybase.com/products/applicationservers/
easerver - Learn about Sybases BPI Solution
- http//www.sybase.com/products/businessprocessinte
gration - Contact you local Sybase team
- Mehul Rajparia, Systems Engineer - (602) 387-5195
- Kyle Cruce, Account Manager (602) 387-5286
- When all else fails, call
- 1 - 800 - 8 SYBASE
65QA
66Your Local Sybase Contacts
- Mehul Rajparia
- Sr. Systems Engineer
- (602) 387-5195
- mrajpari_at_sybase.com
- Kyle Cruce
- Account Manager
- (602) 387-5286
- kcruce_at_sybase.com