310 likes | 413 Views
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
E N D
ebXMLCPP/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 • 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)
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)
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)
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)
Process-Specification Delivery Channels Document-Exchange Transport CPP Functional Layers Describe the processing of a unit of Business – analogous to a layered communication model 168493: XML and Web Services (II/2546)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
CPP For Party A Creation of CPA from CPP’s CPA CPP For Party B negotiate negotiate CPA ID 1 2 Party’s information agree agree Agreed CPA Agreed CPA 3 3 4. Start Business activities with each other 168493: XML and Web Services (II/2546)
Trading-Partner Agreement Possibilities Capabilities Agreements 168493: XML and Web Services (II/2546)
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)
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> 168493: XML and Web Services (II/2546)