developer.com
Search EarthWeb
CodeGuru | Gamelan | Jars | Wireless | Discussions
Navigate developer.com
Architecture & Design  
Database  
Java
Languages & Tools
Microsoft & .NET
Open Source  
Project Management  
Security  
Techniques  
Voice  
Web Services  
Wireless/Mobile
XML  
Technology Jobs  

   Developer.com Webcasts:
  The Impact of Coding Standards and Code Reviews

  Project Management for the Developer

  Defining Your Own Software Development Methodology

  more Webcasts...




See the Winners!


Developer Jobs

Be a Commerce Partner
Best Price
Online Shopping
KVM Switches
Domain registration
Condos For Sale
Remote Online Backup
Calling Cards
Imprinted Promotions
Memory
GPS
Logo Design
Promotional Golf
Phone Cards
Computer Deals

 
Biz Resources
Technology Asset Management Software
Information Technology Services
ecommerce solutions


Developer News -
Red Hat Heads For The JON 2.0    May 7, 2008
Out with the Old, in with the New at JavaOne    May 7, 2008
Trolltech Expands WebKit Footprint    May 6, 2008
Oracle: Eating its Own Open Source Food    May 6, 2008
Free Tech Newsletter -

Best Practices for Developing a Web Site: Checklists, Tips, Strategies & More. Download Exclusive eBook Now.

An Introduction to the ebXML CPP
By Benoît Marchal

This is the fourth article in the ebXML series here at developer.com. The first 2 articles introduced the organizations and history behind ebXML. The last article introduced a typical ebXML transaction.

This article follows up on the typical transaction aspect by taking a closer look at business processes and the Collaboration Protocol Profile (CPP), two of the cornerstones of ebXML.

Building a framework

As the ebXML transaction example from last month made clear, the focus of ebXML is on building a framework that makes it possible to automate the creation and the configuration of electronic relationships. If you missed last month's article, I suggest you have a look now.

This special focus of ebXML is in sharp contrast with previous electronic business standards, such as ANSI X12 and UN/EDIFACT, that would concentrate on the electronic transaction itself and left the configuration as an exercise to the user. Unfortunately the exercise proved to be an expensive one.

To achieve its goal of simplifying the configuration of electronic relationships, ebXML focuses on describing transactions through business processes and on describing an organization capabilities through the CPP.

On the CPP

The CPP is a formal description file that lists what an organization can do in terms of ebXML operations. Formal is the operative word because it means that software can decode it. More specifically, the CPP contains:

  • the organization's name and contact information;
  • the transport and security protocols it recognizes;
  • the messaging protocols it recognizes;
  • the business processes (and therefore ultimately the XML schemas) that the organization recognizes;
  • all kind of technical information such as URLs, time-out, certificates, and more that are necessary to setup an ebXML relationship.

Since the CPP describes all the capabilities of an organization, it tends to be a fairly long document (20 pages or more). The CPP is written in XML and follows very strict conventions.

Listing 1 is a tiny excerpt from Coyote's CPP (following on last month example). This excerpt deals with the transport protocols that an organization supports. It contains two tp:Transport elements to indicate that the organization accepts messages either via HTTP (web) or via SMTP.

Listing 1: an excerpt from a CPP

<tp:Transport tp:transportId="http_connection">
  <tp:TransportReceiver>
    <tp:TransportProtocol tp:version="1.1">HTTP</tp:Protocol>
    <tp:Endpoint tp:uri="https://www.coyote.com/ebxml"
                 tp:type="allPurpose"/>
    <tp:TransportServerSecurity>
      <tp:TransportSecurityProtocol tp:version="3.0">SSL
          </tp:TransportSecurityProtocol>
      <tp:ServerCertificateRef tp:certId="server_cert"/>
      <tp:ClientSecurityDetailsRef tp:securityId="tp_security"/>
    </tp:TransportServerSecurity>
  </tp:TransportReceiver>
</tp:Transport>
<tp:Transport tp:transportId="smtp_connection">
  <tp:TransportReceiver>
    <tp:TransportProtocol>SMTP</tp:Protocol>
    <tp:Endpoint tp:uri="mailto:ebxml@coyote.com"
                 tp:type="allPurpose"/>
  </tp:TransportReceiver>
</tp:Transport>

The transport elements specify the protocol in use (tp:TransportProtocol), the address of the server (tp:Endpoint) and optionally security information (tp:TransportServerSecurity). In the above example, the HTTP connection is secured through SSL, the SMPT connection is not.

The virtues of a formal description

Every organization has a CPP. Coyote has one but its business partner, ACME Manufacturing also has one. To establish the electronic relationship between the two, it suffices to look up the commonalities in the two CPP. Software can very easily establish the match.

Suppose ACME's CPP states that ACME supports HTTP, then the software has found a match and it can configure itself for HTTP. Since the CPP contains the address of the server and the security parameter, the configuration requires no human intervention.

Thanks to this level of automation, Coyote and ACME are in business in minutes instead of days. Also the relationship was very cheap to setup.

For simplicity, the above example has concentrated on transport protocols because that's where you need the fewest parameters. Bear in mind that the CPP lists every possible option, including which XML schemas to use (through the business process). A complete CPP is a very long document.

Yes but...

One question that often arises at this point in the discussion is: it all sounds great but what the ACME's CPP is incompatible with Coyote. Say ACME supports FTP only. As we have seen, Coyote does not support FTP.

Should that happen, it means that two parties cannot establish an electronic relationship. At least one of the two must upgrade its system to make it compatible with the other.

Unfortunately software does not magically grow capabilities. That was true before ebXML and that very much remains true.

Still the benefits of ebXML remains. Look at this analogy: I recently upgraded to a new laptop. The old laptop connected to my mobile phone (and ultimately to the Internet) through an IrDA port. The new laptop has no such IrDA port. Not willing to loose Internet access, I bought a Bluetooth dongle for the laptop.

What matters is that, thanks to plug-and-play, the laptop was reconnected within minutes of receiving the Bluetooth package.

Likewise with ebXML. If ACME buys an HTTP package, it will only take minutes to establish the connection with Coyote.

What's next

The next article will feature an interview with David Webber, chair of the CEFACT/OASIS Joint Marketing Team for ebXML. Benoît Marchal is a Belgian developer. He is the author of XML by Example and other XML books. Benoît is available to help you with your projects.

Previous article: ebXML: An Electronic Business Scenario


Tools:
Add www.developer.com to your favorites
Add www.developer.com to your browser search box
IE 7 | Firefox 2.0 | Firefox 1.5.x
Receive news via our XML/RSS feed


XML Archives

Work With InterSystems. Not Separate Systems. Rapidly develop and deploy connectable applications.
Five Trends for Application Development. Download Your Complimentary Report. Exclusive. Act Now.
Flash Demo: Learn how IBM Information Server Blade is easy to manage, highly scalable and efficient.
Developing Intelligent Communications? Visit the Avaya DevConnect Center on DevX.
Data Sheet: IBM Information Server Blade



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Microsoft Article: HyperV-The Killer Feature in WinServer ‘08
Avaya Article: How to Feed Data into the Avaya Event Processor
Microsoft Article: Install What You Need with Win Server ‘08
HP eBook: Putting the Green into IT
Whitepaper: HP Integrated Citrix XenServer for HP ProLiant Servers
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 1
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 2--The Future of Concurrency
Avaya Article: Setting Up a SIP A/S Development Environment
IBM Article: How Cool Is Your Data Center?
Microsoft Article: Managing Virtual Machines with Microsoft System Center
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Intel Video: Are Multi-core Processors Here to Stay?
On-Demand Webcast: Five Virtualization Trends to Watch
HP Video: Page Cost Calculator
Intel Video: APIs for Parallel Programming
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Sun Download: Solaris 8 Migration Assistant
Sybase Download: SQL Anywhere Developer Edition
Red Gate Download: SQL Backup Pro and free DBA Best Practices eBook
Red Gate Download: SQL Compare Pro 6
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
How-to-Article: Preparing for Hyper-Threading Technology and Dual Core Technology
eTouch PDF: Conquering the Tyranny of E-Mail and Word Processors
IBM Article: Collaborating in the High-Performance Workplace
HP Demo: StorageWorks EVA4400
Intel Featured Algorhythm: Intel Threading Building Blocks--The Pipeline Class
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES