Enable real-world trading partner collaborations in SOA

An introduction to the ebXML Collaboration Protocol Profile and Agreement standard

XML and SOAP have opened the gates for e-business communication in the purest sense by allowing applications to truly interoperate. But they have proved insufficient in enabling a global electronic marketplace and making available information about the following key elements of a global e-business infrastructure:

  • Business taxonomies
  • Partners' message-exchange capabilities
  • Partners' business-collaboration support

A global e-business infrastructure today is composed of a complex web of transactions and information exchanges among several diverse organizations. Each organization interacts in a unique way with another organization, introducing severe complexity for enabling this information exchange in an efficient and secure manner.

The two key standards that strive to overcome this challenge are Universal Discovery, Description, and Integration (UDDI) and Electronic Business using Extensible Markup Language (ebXML), both managed by the Organization for the Advancement of Structured Information Standards (OASIS). Both paradigms support the notion of the discovery of a business service provider, its Web services, and the available technical interfaces. However, while UDDI focuses more on the discovery of business service providers and their services, ebXML focuses on both the discovery and the collaboration of business service providers, as well as the discovery of their respective services.

This article concentrates on the ebXML implementation foundation, which is made up of four components: messaging, collaboration profiles, business process, and metadata registry.

The ebXML Collaboration Protocol Profile and Agreement (CPPA) standard plays a key role in an ebXML registry by providing a mechanism for specifying the details of how to support B2B integrations. It includes the details for transport, messaging, and security constraints and also specifies the bindings to a business-process specification document, which defines the business interactions between two partners. This bottom-up approach of including the business stakeholder in an integration right from the start enables any business entity to build a scalable and flexible system, ensuring information exchange occurs seamlessly. According to the specification:

"the objective of this specification is to ensure interoperability between two Parties even though they MAY procure application software and runtime support software from different vendors. The CPP [Collaboration Protocol Profile] defines a Party's Message-exchange capabilities and the Business Collaborations that it supports. The CPA [Collaboration Protocol Agreement] defines the way two Parties will interact in performing the chosen Business Collaborations. Both Parties SHALL use identical copies of the CPA to configure their run-time systems. This assures that they are compatibly configured to exchange Messages whether or not they have obtained their run-time systems from the same vendor. The configuration process MAY be automated by means of a suitable tool that reads the CPA and performs the configuration process."

This article will also showcase the advantage of using a flexible and high-performance native XML database management system along with XQuery to enable rapid and evolving loosely-coupled collaborations among trading partners within and across enterprises.

What are the relevant standards bodies pertaining to the CPPA standard?

The OASIS ebXML Collaboration Protocol Profile and Agreement Technical Committee is the author of the OASIS ebXML CPPA specification, one of the technical specifications of the OASIS ebXML suite of standards, a standardization effort lead by UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business) and OASIS.

What is the status and industry adoption of the CPPA standard?

In December 2002, ebXML CPPA Version 2.0 was ratified and approved as an OASIS open standard. There is also an Editor's Draft dated April 2005 for maintenance purposes.

Though ebXML is an extremely powerful approach, it has been relatively slow to attract wide industry adoption. In our opinion, organizations are still waiting for others to take the risk of trying emerging technologies. The project's strongest support comes from Sun Microsystems. While it is an important member of the OASIS standards body, IBM has been somewhat noncommittal; and Microsoft does not even support the ebXML initiative.

What is CPP?

Figure 1. The XML elements in a Collaboration Protocol Profile..

Collaboration Protocol Profile (CPP) defines the technical information about the interfaces, business capabilities, security constraints, messaging, and transport protocols the trading partner uses to do e-business. All trading partners register their CPP documents in an ebXML registry or similar repository so that other trading partners can discover them and understand the supported process. A trading partner can be represented by multiple CPP documents.

In a CPP, the ProcessSpecification, DeliveryChannel, DocExchange, and Transport elements define how a trading partner's business unit can be processed. The ProcessSpecification element specifies the trading partners who can send requests to each other and the order of the requests. As shown in Figure 1, the DeliveryChannel element specifies a trading partner's messaging capabilities. A trading partner can define any number of messaging characteristics supported in the CPP. The DocExchange element defines how a business document is processed, which includes encryption, digital signature, and reliable messaging. The Transport element defines the transport protocols to be used while sending business documents, the endpoint addresses, and other properties relating to the transport protocol used.

These pieces of information take into account, for example, the correct HTTPS port to access a company's ERP (enterprise resource planning) system, the document standard used to exchange business information, and the sequence in which the business documents should be exchanged.

In this article, we provide only a brief overview of the CPP's key elements, as shown in Table 1.

Table 1: Key elements

What is CPA?

The Collaboration Protocol Agreement (CPA) defines the system-level agreement for data interchange between trading partners. It narrows down a subset from what both trading partners can support to what both trading partners will actually support in the exchange. The CPA acts as a service-level agreement that, once agreed upon by both parties, can be then enforced by the ebXML system on both ends of the communication bridge.

As shown in Figure 2, the Status, Start, End, ConversationConstraints, PartyInfo, and Signature elements are the key elements that define the capabilities that two trading partners need to agree upon so they can engage in electronic business for the purposes of the particular CPA. The Status element records the state of the composition/negotiation process that creates the CPA. The Start element specifies the starting date and time of the CPA. The End element specifies the CPA's ending date and time. The ConversationConstraints element places limits on the number of conversations under the CPA. The PartyInfo element specifies the parties' selected terms for engaging in the business collaborations defined by the process specification documents referenced by the CPA. The Signature element, if present, is made up of one to three Signature elements.

Figure 2. The XML elements in Collaboration Protocol Agreement.

The CPA can be signed by one or both trading partners, but both signatures are recommended. To obtain signatures for both trading partners, one trading partner initially signs, after which the other trading partner then signs over the first trading partner's signature. The resulting CPA may then be signed by a notary. The Signature element is the root of a subtree of elements used for signing the CPP.

In this article, we provide only a brief overview of the CPA's key elements, as shown in Table 2.

Table 2: CPA key elements

ebXML CPPA in a runtime environment

As shown in Figure 3, Trading Partner A creates the information to be placed in a repository for the discovery process, constructs a CPP that contains this information, and then enters it into an ebXML registry or similar repository along with additional information about the trading partner. The additional information might well include a description of the businesses that the trading partner engages in. Once Trading Partner A's information is in the repository, other trading partners can discover Trading Partner A by using the repository's discovery services. Trading Partner A and Trading Partner B can then use their CPPs to jointly construct a single copy of a CPA by calculating the intersection of the information in their CPPs. The resulting CPA defines how the two trading partners will interact in their business collaboration.

Figure 3. ebXML business process architecture.

The OASIS ebXML Business Process Specification Schema (ebBPSS) is intended to provide the business process and document specification for the formation of ebXML trading-partner Collaboration Protocol Profiles and Agreements. The ebBPSS standard works with the ebXML CPP and CPA specifications to bridge the gap between business process modeling (BPM) and the configuration of ebXML-compliant e-business software; generally, it is referred to as Business Service Interface. ebBPSS also acts as an input for collaboration files by providing information on certain levels of security and reliability. Any trading partner can register its CPP to an ebXML registry. CPPs, in turn, act as configuration files for ebXML Business Service Interface software. Both the CPP and CPA are machine-readable XML documents. In particular, we are concerned with client and server software programs that engage in business transactions by sending and receiving messages. These messages convey business documents and/or business signals in their payload.

CPA creation

A trading partner defines the supported business processes and technical capabilities, such as supported protocols, by forming a CPP. The generated CPP document must be published to an ebXML registry, thus providing a global reach in an e-business environment. Any trading partner who would like to engage in e-business can then search the trading partner profiles using the registry's discovery mechanism.

1 2 Page 1
Page 1 of 2