30
ebXML CPP/CPA Dept of Computer Engineering Khon Kaen University

ebXML CPP/CPA

Embed Size (px)

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 Presentation

Citation preview

Page 1: ebXML CPP/CPA

ebXMLCPP/CPA

Dept of Computer EngineeringKhon Kaen University

Page 2: ebXML CPP/CPA

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)

Page 3: ebXML CPP/CPA

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

Page 4: ebXML CPP/CPA

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

Page 5: ebXML CPP/CPA

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

Page 6: ebXML CPP/CPA

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

Page 7: ebXML CPP/CPA

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

Page 8: ebXML CPP/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

Page 9: ebXML CPP/CPA

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

Page 10: ebXML CPP/CPA

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

Page 11: ebXML CPP/CPA

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

Page 12: ebXML CPP/CPA

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

Page 13: ebXML CPP/CPA

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>

Page 14: ebXML CPP/CPA

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

Page 15: ebXML CPP/CPA

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

Page 16: ebXML CPP/CPA

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

Page 17: ebXML CPP/CPA

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>

Page 18: ebXML CPP/CPA

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>

Page 19: ebXML CPP/CPA

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

Page 20: ebXML CPP/CPA

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>

Page 21: ebXML CPP/CPA

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

Page 22: ebXML CPP/CPA

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>

Page 23: ebXML CPP/CPA

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

Page 24: ebXML CPP/CPA

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

Page 25: ebXML CPP/CPA

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

Page 26: ebXML CPP/CPA

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.

Page 27: ebXML CPP/CPA

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

Page 28: ebXML CPP/CPA

168493: XML and Web Services (II/2546) 28

Trading-Partner Agreement

Possibilities

Capabilities

Agreements

Page 29: ebXML CPP/CPA

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

Page 30: ebXML CPP/CPA

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>