ebxml cpp/cpa
DESCRIPTION
ebXML CPP/CPA. Dept of Computer Engineering Khon Kaen University. Trading Partner Information. A trading partner needs a mechanism to publish information about Business processes it supports Capabilities and Constraints for exchanging business messages - PowerPoint PPT PresentationTRANSCRIPT
ebXMLCPP/CPA
Dept of Computer EngineeringKhon Kaen University
168493: XML and Web Services (II/2546) 2
Trading Partner Information
A trading partner needs a mechanism to publish information about Business processes it supports Capabilities and Constraints for
exchanging business messages For example, a company might say that it
supports purchase order business process as a seller and its capabilities might include that it supports HTTP as transport protocol
The trading partner information will be captured in the form of CPP (Collaboration Protocol Profile)
168493: XML and Web Services (II/2546) 3
CPP (Collaboration Protocol Profile)
A CPP defines the capabilities of a Party to engage in electronic Business with other Parties
These capabilities include both Technology capabilities: supported
communication, messaging protocols, etc.
Business capabilities: what business collaboration it supports
168493: XML and Web Services (II/2546) 4
CPP (Collaboration Protocol Profile)
The CPP is a document which allows a Trading Partner to express their supported Business Processes and message-exchanging capabilities
These message exchanging capabilities might include information on transport, messaging, and security constraints
Business partners can find each other’s CPP through ebXML registry
168493: XML and Web Services (II/2546) 5
Why CPP? Enable automation of business
collaboration Machine readable description Can be published and discovered
Enable flexible implementation Business collaboration gets specified in
declarative instead of procedural fashion
168493: XML and Web Services (II/2546) 6
CPP Functional Layers
Process-Specification
Delivery Channels
Document-Exchange
Transport
Describe the processing of a unit of Business – analogous to a layered communication model
168493: XML and Web Services (II/2546) 7
Process-Specification The process-specification layer
defines the heart of the business agreement between the parties Parties can request CPA of each other
and transition rules that determine the order of requests
This layer is defined by the separate Process-Specification document that is referenced by the CPP and CPA
168493: XML and Web Services (II/2546) 8
Delivery Channels A delivery channel describes a
Party’s Message-receiving characteristics
It consists of one document-exchange definition and one transport definition
Several delivery channels may be defined in one CPP
168493: XML and Web Services (II/2546) 9
Document-Exchange Layer
The document-exchange layer accepts a Business document from the Process-Specification layer at one Party Encrypts it if specified Adds a digital signature if specified Passes it to the transport layer for
the transmission to the other party
168493: XML and Web Services (II/2546) 10
Transport Layer The transport layer is responsible for
Message delivery using the selected transport protocol
The selected protocol affects the choices selected for the document-exchange layer
For example, some transport-layer protocols might provide encryption and authentication while others have no such facility
168493: XML and Web Services (II/2546) 11
CPA (Collaboration Protocol Agreement)
Derived from CPP’s of trading partners The actual contents of CPA is basically the
intersection of two or more CPP’s Describes the capabilities that trading
partners have agreed to use to perform a particular Business Collaboration Contract between two or more trading
partners Does not dictate implementation details
It is a contract between trading partners
168493: XML and Web Services (II/2546) 12
CPA and Runtime Environment
CPA is used by trading parties’ computing systems to set up runtime environment For the exchange of business messages
The runtime environment is represented by ebXML message service handler which knows how to handle secure and reliable message transfer
The CPA and the Process-Specification defines a conversation between the two Parties
168493: XML and Web Services (II/2546) 13
CPP Structure<CollaborationProtocolProfile
xmlns:ds=http://www.w3.org/2000/09/xmldsig# …><PartyInfo> <!– one or more … </PartyInfo><Packaging id=“ID”> <!—one or more … </Packaging><ds:Signature> <!– zero or one …</ds:Signature><Comment>…</Comment> <!– zero or more
</CollaborationProtocolProfile>
168493: XML and Web Services (II/2546) 14
CPP Structures: Top-level Elements PartyInfo
Describes the business organization Packaging
Describes how message handlers and payloads are configured
Digital Signature Contains optional digital signature
Comments
168493: XML and Web Services (II/2546) 15
CPP: PartyInfo PartyId
Identifies the company with unique string UCC/EAN (Universal Code
Council/European Article Numbering) assigned company code or D-U-N-S (Data Universal Number System) numbers
Partyref Points to more descriptive data about the
company and use Xlink syntax Can point to ebXMl or UDDI registry,
Company website
168493: XML and Web Services (II/2546) 16
CPP: PartyInfo CollaborationRole
Identifies the roles that this Party can play in the context of a Process Specification
Certificate Identifies the certificates used by this
Party in security functions DeliveryChannel
Defines the characteristics of each delivery channel that the Party can use to receive Messages
168493: XML and Web Services (II/2546) 17
CPP: PartyInfo:CollaborationRole Example
<Role certId=“N03” RoleId=“N02” name=“buyer”><ServiceBinding xlink:type=“locator”
xlink:href=“http://www.ebxml.org/services/purchasing”>Buy and Sell</ServiceBinding>
</Role><Role certId=“N03” RoleId=“N08”
name=“seller”><ServiceBinding xlink:type=“locator”
xlink:href=“http://www.ebxml.org/services/purchasing”>Buy and Sell</ServiceBinding>
</Role>
168493: XML and Web Services (II/2546) 18
CPP: PartyInfo:DeliveryChannel Example
<DeliveryChannel channelID=“N04” transportId=“N05” docExchangedId=“N06”><ServiceBinding xlink:type=“locator”
xlink:href=“http://www.ebxml.org/services/purchasing”>Buy and Sell</ServiceBinding>
</DeliveryChannel>
168493: XML and Web Services (II/2546) 19
CPP: PartyInfo (Continued)
Transport Characteristics of the transport
protocol(s) Protocol, end point, security information
DocExchange Properties of messaging services
168493: XML and Web Services (II/2546) 20
CPP: PartyInfo: Transport
Example <Transport transportid=“N05”>
<Protocol version=“1.1”>HTTP</Protocol><TransportEncoding>base64</TransportEncoding><TransportTimeout>
<Timeout>30</Timeout><Retries>5</Retries>
</TransportTimeout><TransportSecurity>
<Protocol version=“3.0”>SSL</Protocol><CertificateRef certId=“N03”/>
</TransportSecurity></Transport>
168493: XML and Web Services (II/2546) 21
CPP: PartyInfo: DocExchange
Message encoding Reliable messaging properties
Only and only once Best effort
Non-repudiation Digital envelope Namespace
168493: XML and Web Services (II/2546) 22
PartyInfo: DocExchange Example
<DocExchange docExchangeId=“N06”><ebXMLBinding version=“0.9”>
<ReliableMessaging deliverySemantics=“BestEffort” idempotency=“false”>
…</ReliableMessaging><NonRepudiation>
…</NonRepudiation>
…</DocExchange>
168493: XML and Web Services (II/2546) 23
CPP (or CPA) and Business Process Specification
CPP captures business processes a particular business organizations supports
Business processes might have been defined by someone else
Typically CPP contains the references to the business process specifications that a business wants to support
168493: XML and Web Services (II/2546) 24
CPP: Packaging Define how the Message Header and
payload constituent(s) are packaged What document-level security
packaging is used Way in which security features have
been applied
168493: XML and Web Services (II/2546) 25
CPP:ds:Signature The CPP may be digitally signed
using technology that conforms with the XML Digital Signature specification
168493: XML and Web Services (II/2546) 26
Creating CPP Suppose that party A want to create a CPP It first needs to describe “what Business
capabilities it can perform when conducting a Business Collaboration with other parties”
It then builds a CPP with this information Party name Contact info Transport Protocol Specification document etc.
168493: XML and Web Services (II/2546) 27
Creation of CPA from CPP’s
CPPForParty A
CPPForParty B
AgreedCPA
AgreedCPA
CPA
CPA ID
Party’s information
negotiate
1
negotiate
2
3 3
agree agree
4. Start Business activities with each other
168493: XML and Web Services (II/2546) 28
Trading-Partner Agreement
Possibilities
Capabilities
Agreements
168493: XML and Web Services (II/2546) 29
CPA XML Document Since CPA is derived from CPPs of
communicating partners, the same elements of CPP such as PartyInfo, Packaging, ds:Signature are expected to be found in CPA as well
The elements that are new to CPA include Start and End elements which indicates the period in which the CPA is valid
168493: XML and Web Services (II/2546) 30
CPA Structure<CollaborationProtocolAgreement
xmlns=“http://www.ebxml.org/namespaces/tradePartner”
….><Status value=“proposed”/><Start>2004-04-01T09:00:00</Start><End>2004-07-31T17:00:00</End>…<PartyInfo>…</PartyInfo>…</CollaborationProtocolAgreement>