ebXML Components

There are several components to ebXML, including:

  • Collaboration Protocol Profile (CPP).

  • Collaboration Protocol Agreement (CPA).

  • Business process and information modeling.

  • Core components.

  • Messaging.

  • Registry/Repository.

CPP describes an enterprise offering using a standard, portable format. This component describes the message-exchange mechanisms as well as business collaborations that are native to the enterprise or trading community. The ebXML standard also describes business processes within CPP, including how partners interact within a trading community. As mentioned in our discussion of process integration earlier in this book, CPP supports intra- and intercompany processes, and public versus private processes, collaborating on both sides of a two-party B2B transaction. For example, when leveraging CPP, a trading community would define all processes between partners buying parts to build a car, for example as well as semantic differences, and how processes and data need to interact to support any number of business activities.

CPA describes the particular requirements, facilities, and descriptions for the transaction of trading partner business. It is formed from either manual or automated systems, deriving the intersection of their agreed-upon CPPs. Thus, the CPA becomes the de facto contract between the trading partners, creating "rules of engagement" for a specific collaborative business transaction.

See Listing 12.1 for an example of a CPA.

Listing 12.1

[View full width]

 <?xml version="1.0" ?> - <tp:CollaborationProtocolAgreement xmlns:tp="http://www.ebxml.org/namespaces/ graphics/ccc.giftradePartner" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi: graphics/ccc.gifschemaLocation="http://www.ebxml.org/namespaces/tradePartner http://ebxml.org/ graphics/ccc.gifproject_teams/trade_partner/cpp-cpa-v1_0.xsd" xmlns:xlink="http://www.w3.org/1999/xlink"  graphics/ccc.gifxmlns:ds="http://www.w3.org/2000/09/xmldsig#" tp:cpa tp:version="1. graphics/ccc.gif2"> <tp:Status tp:value="proposed" /> <tp:Start>2001-05-20T07:21:00Z</tp:Start> <tp:End>2002-05-20T07:21:00Z</tp:End> <tp:ConversationConstraints tp:invocationLimit="100" tp:concurrentConversations="100" /> - <tp:PartyInfo> <tp:PartyId tp:type="DUNS">123456789</tp:PartyId< <tp:PartyRef xlink:href="http://example.com/about.html" /< - <tp:CollaborationRole tp:> <tp:ProcessSpecification tp:version="1.0" tp:name="buySell" xlink:type="simple" xlink: graphics/ccc.gifhref="http://www.ebxml.org/processes/buySell.xml" /> <tp:Role tp:name="buyer" xlink:type="simple" xlink:href="http://ebxml.org/processes/ graphics/ccc.gifbuySell.xml#buyer" /> <tp:CertificateRef tp:cert /> - <tp:ServiceBinding tp:channel tp:package> <tp:Service tp:type="uriReference">uri:example.com/services/buyerService</tp:Service> <tp:Override tp:action="orderConfirm" tp:channel tp:package xlink: graphics/ccc.gifhref="http://ebxml.org/processes/buySell.xml#orderConfirm" xlink:type="simple" /> </tp:ServiceBinding> </tp:CollaborationRole> - <tp:Certificate tp:cert> <ds:KeyInfo /> </tp:Certificate> - <tp:DeliveryChannel tp:channel tp:transport tp:docExchange> <tp:Characteristics tp:syncReplyMode="none" tp:nonrepudiationOfOrigin="true" tp: graphics/ccc.gifnonrepudiationOfReceipt="false" tp:secureTransport="true" tp:confidentiality="true" tp: graphics/ccc.gifauthenticated="true" tp:authorized="false" /> </tp:DeliveryChannel> - <tp:DeliveryChannel tp:channel tp:transport tp:docExchange> <tp:Characteristics tp:syncReplyMode="none" tp:nonrepudiationOfOrigin="true" tp: graphics/ccc.gifnonrepudiationOfReceipt="false" tp:secureTransport="false" tp:confidentiality="true" tp:authenticated="true" tp: graphics/ccc.gifauthorized="false" /> </tp:DeliveryChannel> - <tp:Transport tp:transport> <tp:SendingProtocol tp:version="1.1">HTTP</tp:SendingProtocol> <tp:ReceivingProtocol tp:version="1.1">HTTP</tp:ReceivingProtocol> <tp:Endpoint tp:uri="https://www.example.com/servlets/ebxmlhandler" tp:type="allPurpose" /> - <tp:TransportSecurity> <tp:Protocol tp:version="3.0">SSL</tp:Protocol> <tp:CertificateRef tp:cert /> </tp:TransportSecurity> </tp:Transport> - <tp:Transport tp:transport> <tp:SendingProtocol tp:version="1.1">HTTP</tp:SendingProtocol> <tp:ReceivingProtocol tp:version="1.1">SMTP</tp:ReceivingProtocol> <tp:Endpoint tp:uri="mailto:ebxmlhandler@example.com" tp:type="allPurpose" /> </tp:Transport> - <tp:DocExchange tp:docExchange> - <tp:ebXMLBinding tp:version="0.98b"> - <tp:ReliableMessaging tp:deliverySemantics="OnceAndOnlyOnce" tp:idempotency="true" tp: graphics/ccc.gifmessageOrderSemantics="Guaranteed"> <tp:Retries>5</tp:Retries> <tp:RetryInterval>30</tp:RetryInterval> <tp:PersistDuration>P1D</tp:PersistDuration> </tp:ReliableMessaging> - <tp:NonRepudiation> <tp:Protocol>http://www.w3.org/2000/09/xmldsig#</tp:Protocol> <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction> <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm> <tp:CertificateRef tp:cert /> </tp:NonRepudiation> - <tp:DigitalEnvelope> <tp:Protocol tp:version="2.0">S/MIME</tp:Protocol> <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm> <tp:CertificateRef tp:cert /> </tp:DigitalEnvelope> </tp:ebXMLBinding> </tp:DocExchange> </tp:PartyInfo> - <tp:PartyInfo> <tp:PartyId tp:type="DUNS">987654321</tp:PartyId< <tp:PartyRef xlink:type="simple" xlink:href="http://contrived-example.com/about.html" /> - <tp:CollaborationRole tp:> <tp:ProcessSpecification tp:version="1.0" tp:name="buySell" xlink:type="simple" xlink: graphics/ccc.gifhref="http://www.ebxml.org/processes/buySell.xml" /> <tp:Role tp:name="seller" xlink:type="simple" xlink:href="http://ebxml.org/processes/ graphics/ccc.gifbuySell.xml#seller" /> <tp:CertificateRef tp:cert /> - <tp:ServiceBinding tp:channel tp:package> <tp:Service tp:type="uriReference">uri:example.com/services/sellerService</tp:Service> </tp:ServiceBinding> </tp:CollaborationRole> - <tp:Certificate tp:cert> <ds:KeyInfo /> </tp:Certificate> - <tp:DeliveryChannel tp:channel tp:transport tp:docExchange> <tp:Characteristics tp:nonrepudiationOfOrigin="true" tp:nonrepudiationOfReceipt="false"  graphics/ccc.giftp:secureTransport="true" tp:confidentiality="true" tp:authenticated="true" tp: graphics/ccc.gifauthorized="false" /> </tp:DeliveryChannel> - <tp:Transport tp:transport> <tp:SendingProtocol tp:version="1.1">HTTP</tp:SendingProtocol> <tp:ReceivingProtocol tp:version="1.1">HTTP</tp:ReceivingProtocol> <tp:Endpoint tp:uri="https://www.contrived-example.com/servlets/ebxmlhandler" tp: graphics/ccc.giftype="allPurpose" /> - <tp:TransportSecurity> <tp:Protocol tp:version="3.0">SSL</tp:Protocol> <tp:CertificateRef tp:cert /> </tp:TransportSecurity> </tp:Transport> - <tp:DocExchange tp:docExchange> - <tp:ebXMLBinding tp:version="0.98b"> - <tp:ReliableMessaging tp:deliverySemantics="OnceAndOnlyOnce" tp:idempotency="true" tp: graphics/ccc.gifmessageOrderSemantics="Guaranteed"> <tp:Retries>5</tp:Retries> <tp:RetryInterval>30</tp:RetryInterval> <tp:PersistDuration>P1D</tp:PersistDuration> </tp:ReliableMessaging> - <tp:NonRepudiation> <tp:Protocol>http://www.w3.org/2000/09/xmldsig#</tp:Protocol> <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction> <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm> <tp:CertificateRef tp:cert /> </tp:NonRepudiation> - <tp:DigitalEnvelope> <tp:Protocol tp:version="2.0">S/MIME</tp:Protocol> <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm> <tp:CertificateRef tp:cert /> </tp:DigitalEnvelope> </tp:ebXMLBinding> </tp:DocExchange> </tp:PartyInfo> - <tp:Packaging tp:> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true" /> - <tp:SimplePart tp: tp:mimetype="text/xml"> <tp:NamespaceSupported tp:location="http://ebxml.org/project_teams/transport/ graphics/ccc.gifmessageService.xsd" tp:version="0.98b">http://www.ebxml.org/namespaces/messageService</tp: graphics/ccc.gifNamespaceSupported> <tp:NamespaceSupported tp:location="http://ebxml.org/project_teams/transport/ graphics/ccc.gifxmldsig-core-schema.xsd" tp:version="1.0">http://www.w3.org/2000/09/xmldsig</tp: graphics/ccc.gifNamespaceSupported> </tp:SimplePart> - <tp:SimplePart tp: tp:mimetype="text/xml"> <tp:NamespaceSupported tp:location="http://ebxml.org/processes/buysell.xsd" tp:version="1. graphics/ccc.gif0">http://ebxml.org/processes/buysell.xsd</tp:NamespaceSupported> </tp:SimplePart> - <tp:CompositeList> - <tp:Composite tp: tp:mimetype="multipart/related" tp:mimeparameters="type=text/ graphics/ccc.gifxml;"> <tp:Constituent tp:idref="N40" /> <tp:Constituent tp:idref="N41" /> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Comment xml:lang="en-us">buy/sell agreement between example.com and contrived-example. graphics/ccc.gifcom</tp:Comment> </tp:CollaborationProtocolAgreement>[1] 

[1] www.ebXML.org.

Business Process and Information Modeling is a specification for describing a business process in XML. This includes transactions, document flow, information encryption, binary collaborations, semantics, and such. Processes that leverage ebXML use these specifications when they create CPPs, which are also used to define shared business processes within a trading community.

Core components are a set of ebXML schemas and other components that contain formats for business data, including customer account, amounts, and so on. They are particular to an entity, such as a particular trading partner, but not leveraged as vertical semantics (as with vertical standards within health care and financial services markets).

Messaging, as you may expect, is a standard format for ebXML messages that leverages concepts from messaging middleware, including the ability to transmit information asynchronously or synchronously. This is the visible portion of the CPA and provides specific business rules for processing. ebXML messaging is built inside of SOAP, extending the SOAP protocol by frameworks that support attachments, security, and verifications of delivery.

The ebXML message service provides a mechanism to exchange business messages that does not rely upon proprietary technologies and solutions. The message contains structure for message headers used for routing and a payload section for the content. As you may remember, in our message discussion in the middleware chapters (e.g., JMS), we talked about similar structures.

ebXML and BPEL4WS

You may note that this subject has some overlap with BPEL4WS, which is covered in the next chapter. You should also note that BPEL4WS is focused on the process alone, and not a more holistic view of electronic business. In other words, BPEL4WS is general purpose, whereas ebXML is applicable to B2B trading.

The ebXML message service is broken down, at least conceptually, into three parts:

  1. The abstract service interface

  2. Functions provided by the messaging service layer

  3. Mapping to the underlying transport service (see Figure 12.1)

    Figure 12.1. ebXML messaging service.

    graphics/12fig01.gif

Registry and Repository services maintain CPPs, CPAs, ebXML components, and other ebXML artifacts such as JAR files, video, WSDL, and semantics. This is a database, when you get right down to it, providing query capabilities that allow users to look for relevant content and even information about trading partners. The services defined by CPPs can be published to UDDI.

This portion of ebXML provides a Web service discovery scenario. Thus, a trading partner would first search for a shared service in UDDI, which may indeed contain reference to a CPP that actually exists in the ebXML Registry, which in turn provides access to information about the trading partner. From there you can use the CPA to create a partnership agreement for B2B transactions. We'll talk more about Registry/Repository services in the next section.

The ebXML Registry provides a core set of services that enable the exchange of information between trading partners. As you may recall, the registry is like a database, allowing a trading partner to place and obtain information pertaining to the interaction between trading partners.

The registry maintains an interface to metadata for a registered item, and access to an ebXML Registry is gained through the use of several APIs (see Figure 12.2). To facilitate semantic recognition of business process and information meta models, the registry provides a mechanism for incorporating human-readable descriptions of registry items. Moreover, you can assign UID keys from other existing business processes and information meta models, such as RosettaNet, and implement them using XML syntax.

Figure 12.2. Registry architecture.

graphics/12fig02.jpg

Comparing XML/edi to ebXML

While not getting the attention of ebXML or the other standards talked about in this section, XML/edi was created to allow enterprises to deploy smarter and cheaper EDI systems and does have some overlap with ebXML, but some complimentary aspects, as well.

The essence of XML/edi is to provide enough intelligence to the electronic mechanism to exchange data that it becomes the framework for B2B commerce. XML/edi is looking to deliver data along with the required process logic, thus it's process aware. Moreover, the notion of XML/edi is to leverage the EDI concept and, indeed, some of the EDI technologies with the understanding that just converting XML to EDI is not enough to satisfy most requirements. In contrast, the ebXML initiative has focused on processes, not just transactions, as well as a central repository. XML/edi guidelines have added two additional key components Process Templates and Software Agents to assist in this type of process, with the idea to provide dynamic processing based on XML notations. Thus, you're encapsulating both data and process into the same documents.

Using XML/edi, XML itself provides the foundation where XML tokens and frameworks are the syntax that transport the other components over the network. The XML tokens replace existing business transactions and enrich the capabilities and transport layers of the Internet. XML/edi uses process templates built using XML that are the glue that binds the XML/edi system together. These templates are globally referenced, or travel along inside the XML as a special section of the document. What is more, they leverage a set of tokens, as well as control and define the business context and processes. ebXML Business Process Meta Model (described later in this chapter) has moved to implement similar mechanisms within the ebXML registry indexing system.

In the world of XML/edi, Internet repositories work like ebXML registries, allowing users to manually look up the meaning and definition of trading partner characteristics. This repository provides a semantic foundation for global business transactions, as well as a common mechanism for global access.



Next Generation Application Integration(c) From Simple Information to Web Services
Next Generation Application Integration: From Simple Information to Web Services
ISBN: 0201844567
EAN: 2147483647
Year: 2005
Pages: 220

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net