ebXML Transport, Routing & Packaging
Overview and Requirements
Working Draft
This version:
ebXML TR&P Overview & Requirements (v 0-96).doc
Latest version:
(URL to latest version)
Previous version:
(URL to previous version)
Editor:
David Burdett <
david.burdett@commerceone.com>
Authors:
David Burdett
Contributors:
ebXML Transport, Routing & Packaging team members.
See Acknowledgements
Abstract
This paper provides an overview of the ebXML Transport Routing and Packaging and a description of the requirements that have been identified.
It describes:
- an overview and description of the scope of the group's work
- the objectives of the group
- a draft diagram that outlines the relationship of the group to other groups within ebXML
- the requirements for Transport, Routing and Packaging
- a definition of the terms used in the description of the requirements, and
- some examples of how the different sequences in which message can be exchanged
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Status of this Document
This document is a draft for Public Comment. The document represents work in progress and no reliance should be made. It has been updated to reflect the results of the ebXML Transport, Routing and Packaging project team's meeting during the ebXML conference in Brussels in early May 2000. Most changes have been made to section 4. Requirements.
Table of Contents
1 Introduction
*
2 Objectives
*
3 Relationships with other ebXML activities
*
4 Requirements
*
4.1 Envelope and headers for business documents
*
4.2 Reliable Messaging and Error Handling
*
4.3 Message Routing
*
4.4 Security Requirements
*
4.5 Audit Trails
*
4.6 Quality of service
*
4.7 Platform Independent Interoperability
*
4.8 Restart and recovery
*
4.9 Protocol Extensibility
*
5 Definitions
*
5.1 Documents, Parties, Messages and Document Exchanges
*
5.2 Services and Message Sets
*
5.3 Miscellaneous
*
6 Examples of Document Exchanges
*
7 References
*
8 Acknowledgements
*
Introduction
In outline the working group will develop deliverables that:
- provide an envelope and header for routing of message content
- define template sequences for the exchange of messages
- provide support for payloads of any type of digital data
- adopt security protocols that enable:
- non repudiation of sending of messages and acknowledgements
- privacy and integrity of communications between parties
- authentication of senders of messages
- control over access to services
- support verifiable audit trails
- provide mechanisms for reporting on errors or other problems
- support a messaging protocol for reliable message delivery
- define the information required that describes how to interact with a service
- provide a default method of usage that enables bootstrapping of services
Objectives
The objectives of the working group are:
- to enable any party to carry out integrated eCommerce
transaction with any other party anywhere in the world using their hardware and software vendor of choice
to persuade a wide variety of vendors to implement the approach
to not reinvent the wheel - re-use where possible
to enable existing "messaging" solutions to "bridge" to the ebXML solution
to scale from SMEs to large companies
to scale from low power to high end solutions
Relationships with other ebXML activities
This section contains a number of diagrams that explain the relationship between the Transport, Routing and Packaging Group and other activities within ebXML. Definitions of words or phrases in italics may be found in section 5 Definitions.

Figure 1 Relationship between ebXML activities
This diagram illustrates the relationship between the work of the Transport Routing and Packaging group (TR&P) and the other groups of ebXML. A more detailed description of the scope of the TR&P group is shown by the diagram below.

Figure 2 Scope of Transport, Routing and Packaging Activities
The scope of the Transport, Routing and Packaging group is defined by the items colored red in the diagram above. All specifications will be produced initially in a syntax neutral and/or language independent way.
The intention is that representations of this information in specific languages or syntax are then separately developed. For example the message wrapper, header, etc could be rendered in XML or perhaps as name-value pair extensions to MIME. Similarly the Service Interface could be rendered as Corba, Java, Com, etc.
Note that the definition of the XML or other documents that are transported using the Messaging System as specifically out of scope.

Figure 3 Typical use of Messaging System
Enterprise Systems are applications such as accounting systems, ERP systems or other systems that contain data that needs to be communicated with other parties over the Internet.
Messaging Systems are applications that manage the exchange of messages between the two parties. It is agnostic as far as the content or payload within the message is concerned.
Messaging Systems use a Messaging Policy Repository to control the behavior of the Messaging System. This contains parameter and other information about how to send messages to the other parties that the need to be sent messages.
Integration Systems are applications that communicate with the Enterprise system and the Messaging System and effectively enables the Enterprise System to exchange data over the Internet. Integration Systems will be required in the short term to integrate existing Enterprise Systems to the Messaging System. Over time, it is probable that Enterprise Systems will be developed or enhanced that can talk natively to the Messaging and other systems such as the system that provides access to data held in the Repository.
Integration Systems use Integration System Repositories that contain information on how to format documents and generally communicate between the Messaging System and the Enterprise System

Figure 4 Repositories - Logical Flows of Information
The diagram above illustrates the types of data flow required in order to keep the various repositories in step.
Each of the items marked with an asterisk in the diagram above need Business Processes defined that enable the data in the various repositories to be kept in step.

Figure 5 Repository - Physical Flows of Information
The Repository Management System is no more than just another "System that needs to send/receive data over the Internet" and uses the Messaging System to send receive messages in the same way.
The "Messaging System" provides a Service that reliably exchanges messages over the Internet between any two parties. It is completely independent of the content or the payload of the message
The "Repository Management System" provides a Service that can be used to read/update the content of the repository. It would:
- have a Service Interface so that the content of the data in a repository held locally could be maintained, and
- use the Service Interface of the Messaging Service to access the content of repositories held remotely.
Note that the Repository Management System for the Master Repository would also work in the same way.
The Repository Systems used to maintain each of the repositories (Integration, Messaging and Master) may be different from each other and be provided by different vendors. However they should all use the same basic set of documents and document choreography to enable interoperable communication.
The rationale is that the Repository Management Service is really nothing more than a distributed system that reads or updates data on local or remote repositories that has a Service Interface to manage/access the repository content.
This type of "layering" can be used to describe a number of other Service Interfaces that will use the basic messaging service interface, for example:
- a Publish & Subscribe Interface
- a Large Document Transfer Service, for example, to transport multi-MB files reliably by splitting them into several smaller parts that are each transported separately
Requirements
This section describes the requirements that the working group aims to meet. They are divided into the following sections:
- Envelope and headers for business documents
- Reliable Messaging and Error Handling
- Messaging Routing
- Security Requirements
- Audit Trails
- Quality of Service
- Platform Independent Interoperability
- Restart and Recovery
Envelope and headers for business documents
Documents, expressed either in XML or other electronic formats, shall be able to be wrapped inside a message envelope for transporting between the parties involved in eCommerce.
Multiple documents, whether related or not, may be transportable within a single message envelope
Both the sending and receiving parties on a message header shall be expressible as:
- a physical address (e.g. a URL or an email address) or a logical address (e.g. a DUNS number or EAN) and,
- optionally, an address in a human-readable form
Messages may be transported over many network protocols (e.g. HTTP, SMTP, CORBA, JMQ, MQSeries, MSMQ, etc)
Messages containing documents shall be capable of being globally uniquely identified
A Message shall identify the Message for which it is a response (if one exists).
Message headers shall contain a timestamp that indicates when the Message Header was created
Message headers may contain a 'maximum lifetime' indicator that specifies that maximum amount of time that a message should be considered 'alive' after it is sent.
Message headers may contain an address to which response messages can be routed; actual use of this property by sending and receiving services is optional
Message headers may contain an indication of the priority of a message
Message headers may contain the name of an administrative address to which acknowledgement messages can be routed.
Message headers should allow application specific routing headers in the message.
A Message Manifest shall detail all parts contained in the envelope and references to external document sources if required.
Reliable Messaging and Error Handling
Messages shall be capable of being delivered from a sending party's Service to a receiving party's Service so that:
- delivery occurs at most once.
- failure to deliver shall be reported, if the sending party requires it.
- inability to send a document may be notified to the party that sent the document
- if an application/business level response message is not received within expected timescales then there shall be mechanisms that support recovery
- the correct sequence in which related messages are sent can be identified
- recovery from failure to receive a response message should include:
- how the "expected timescales" after which recovery starts are specified
- descriptions of the messages sent to carry out the recovery
- Error messages
should be capable of reporting on:
- errors associated with the underlying transport protocol, e.g. HTTP
- errors in the message wrapper, message header or message routing information
- errors with the way documents are wrapped inside their message envelopes
- errors associated with failed attempts at reliable once-only delivery of messages
- errors in the documents that are being transported
- errors in the sequence in which messages are exchanged
- abnormal errors with the services that processed the documents (e.g. the service crashed) and
- business failures where the service completed but did not realize its hoped for outcome (e.g. out-of-stock)
- Inquiries should be possible to determine why Message Sets failed, (see Message Set Status Inquiry below).
- Message Routing
- Messages
may be sent using a variety of methods:
- to a single party, e.g. by specifying a URL
- to multiple parties, either by:
- specifying a list of URIs in the Message Header, or
- a distribution list held separately from the header
- to an agent or intermediary for forwarding to the next party
- Individual messages shall be capable of routing serially or in parallel with other related messages
- Publish and Subscribe
- Messages
may be distributed to the members of a list of parties using a "Publish and Subscribe" mechanism
- the anonymity of the subscriber may optionally be maintained
- Security Requirements
- For non-repudiation, message integrity and authentication purposes, the following are requirements:
- Documents
and/or message headers may be digitally signed
- The signature over the documents or message headers shall be independent of the transport protocol used
- A single digital signature may be used to bind together documents either:
- within the same message
- in another message
- somewhere else (for example the content at a URL)
- Signatures on digitally signed documents may be used to:
- verify the authenticity of the party that is the sender,
- provide non-repudiation of origin or receipt, and
- ensure that the content of the message has not changed
- For privacy and confidentiality purposes:
- All or part of the documents in a message may be encrypted prior to sending
- messages
may be encrypted during transportation using a transport protocol
- Secure timestamps:
- documents
or messages may be time stamped securely with a digital signature
- secure time stamps may be generated by a trusted third party
- timestamps shall be recorded in a location independent way (e.g. UTC).
- Audit Trails
- The set of
related documents and messages that are contained within a Message Set, shall be::
- globally uniquely identified,
- related to one another.
- Two or more Message Sets that are related to one another should be capable of being linked together by enabling one Message Set to refer to another Message Set's Message Set identifier.
- A trace or path through the services and parties through which documents have passed should be identifiable and analyzable after the event
- Digital signatures may be used to bind the documents and Message Sets in the sequence in which they were used.
- Quality of service
The Quality of Service of the interaction between two Services is defined in a Transport Service Level Agreement (TSLA). The parameters in a TSLA vary depending on the nature of the Service.
Parameters must be present in every TSLA that: .
- support Session based and Long Term Transactions
- enable recovery from failure to receive an anticipated response(s) to a message
- enable a Receiving Service to inform a sender of a message of the Receiving Service's expected maximum Response Time(s)
- enable a sender of a message to inform the recipient of a message, of the Response Time(s) that the sender expects
- enable a sender of a message to discover if a Receiving Service is operational and therfore able to receive messages
- enable a sender of a message to discover the hours of operation of a Receiving Service The hours of operation is the period of time that the service is available to process the message
- enable a Receiving Service to indicate to the sender of a message that it is too busy to process a message within expected timeframes. This supports congestion management
- enable a sender of a message to discover from a Receiving Service the current status of a Message Set. This is Message Set Status Inquiry.
- enable the Sending and Receiving Parties to discover and agree:
- the document choreographies that can support their processing requirements
- the parameters that control how the parties will use cryptography
- how they will achieve reliable messaging and error handling when required
- the transport protocols to be used
- TSLAs may be negotiated between two Parties that apply to:
- an individual message
- an individual message set
- all messages associated with one or more services
- all interactions between two parties
Platform Independent Interoperability
Servers/systems that support the exchange of documents shall be treated as "black boxes"
The method used to transport documents shall be completely independent of:
- the hardware used by the server/services at each end
- the software or systems architecture of the server/services at each
- the language used for implementation of systems and applications.
Support for a service shall be expressible solely in terms of the type and sequence in which documents (and their message envelopes) are to be exchanged
The ebXML Transport, Routing and Packaging specifications shall be suitable for implementation on hardware that varies from a very simple device to a large multi-processor/system complex
Restart and recovery
If a service that accepts messages becomes temporarily unavailable after starting a Message Set it shall be possible to recover from the failure and deliver the message once the service is available
If a service that accepts messages is temporarily unavailable before starting a Message Set then it shall be possible to recover from the failure and deliver the message once the service is available
If the delivery of a message is considered not possible by the originally intended method, then
- alternative methods of delivering the message may be used if available, and/or
- the end state of the Message Set shall be capable of rollback to a consistent state.
Protocol Extensibility
The protocol shall be extensible to support (by use of protocol versioning):
- additional types of data in message headers and message routing information
- new values for codes
- new ways and methods of exchanging data
Definitions
The following are a list of definitions of the terms associated with the transport of messages over the Internet. They are derived initially from work being done within the IETF.
It is split into two sections:
- Documents, Parties, Messages and Document Exchanges, and
- Services and Message Sets
Words or phrases that are defined elsewhere are highlighted in italics.
Documents, Parties, Messages and Document Exchanges
Overview
This section describes how Parties, such as buyers and suppliers, customers and merchants, can transmit Documents contained in Messages in order to request execution of Services.
All the Documents and other data in a Message are contained within an outermost Message Envelope.
A Message can optionally include Digital Signatures so that:
- the identity of the Party sending the Message can be authenticated
- any changes to the message and the documents they contain can be detected.
Services are requested by sending one or more Documents in a Request Message to a Party who then:
- processes the Request Message by carrying out a Service and
- optionally generates a Response Message indicateing result.
At a minimum a Document Exchange consists of a Request Message and an optional Response Message although there might be additional Exchange Messages between the Request Message and the Response Message.
Error Messages are used to report permanent or transient problems or errors in a Message.
More detail is provided below.
A Document
A Document is any data that can be represented in a digital form.
Examples of Documents include:
- a set of XML Elements
- an XML Document
- an HTML Document
- a word processing file
- an Adobe Acrobat PDF file
- a binary file
- part of larger document.
Party
A Party is a company, organization or individual or other entity that can generate, receive or relay Documents.
Examples of a Party include:
- a Merchant
- a Customer
- a Lawyer
- a Bank
- a government department or agency
- an intermediary or agent
- a software agent
A Party is also used to refer to systems or servers that are carrying out Services or processes on behalf of a Party.
Message
A Message is data that is sent from one Party to another. A Message consists of information such as:
- a Message Header that indicates who sent, who should receive and the context for sending the message
- Message Routing Information
, that indicates how the message should be / was delivered
- Digital Signatures
to:
- bind the data in the message, or elsewhere, together, and
- ensure that changes to the data can be detected
- enable authentication of the sender of the message
- Documents
which are the business data that actually needs to be sent
All the data in a Message is contained within a Message Envelope.
Examples of a Message include:
- a Purchase Order that is sent by a buyer to a supplier
- an Invoice that is sent by the supplier back to the buyer
- a request to make a payment of $50 sent to a Credit Card acquirer
- the authorization received from a Credit Card acquirer as a result of making a payment
- Status Data indicating the success or failure of a Service
Message Header
A Message Header is an XML construct that contains the additional data that needs to be associated with the Documents in a message so that they can be sent to and successfully processed by a Party. It can contain information such as:
- Message Set Identity data to identify the set of Messages that are related to one another through one or more Document Exchanges
- Message Identity data to enable the Message to be identified and referenced within the Message Set
- a Message Manifest to identify the documents, other than the Message Header, that are contained within the same Message Envelope
- Action Data to indicate the Service that is being sent the message and the reason for sending
- Organization Data that describes one or more of:
- the Sender organization that sent the Message
- the Recipient organization(s) that ought to receive the Message
- the Authorizing organization(s) that provide evidence that a requested Service should be carried out.
- Status Data that describes the results of carrying out a Service.
Message Manifest
The Message Manifest contains references to the other documents, apart from the Message Routing Information document, that are contained within the same Message Envelope.
The purpose of the Message Manifest is to facilitate locating and validating that all required Documents contained within the Message Envelope are present.
Examples of the types of documents that might be referenced by a Message Manifest include:
- a Purchase Order
- a Purchase Order and a picture of the requested goods
- a Purchase Order and a digital signature
Message Routing Information
Message Routing Information
contains data that indicates the path that should be or was taken by a Message in reaching its ultimate destination.
Digital Signature
A Digital Signature is a cryptographic signature over data contained in a Message, or elsewhere that are addressable via URIs, that permits the authenticity of the signer of the data to be determined, and helps detect if the data in the Message has changed.
Message Envelope
A Message Envelope is the outermost container for a Message. It can be such things as:
- an XML Document, or
- a multi-part MIME message
Request Message
A Request Message is a Message sent from one Party to another Party's Service with the intent that the other Party act upon the data in the Request Message by carrying out the Service.
Acknowledgement Message
An Acknowledgement Message may sent as a response to any Message (apart from an Acknowledgement Message) to indicate that the Message has been received.
Checked OK Message
A Checked OK Message may be sent in response to a Request Message to indicate that the content of the message has been validated and no errors were found
Response Message
A Response Message is a Message that is generated by the Service that received a Request Message. It is produced as a result of carrying out the requested Service. It is the last Message in a Document Exchange unless the Message contains errors.
Response Messages are sent back to the sender of the Request Message.
Document Exchange
A Document Exchange is a generic term for either a Simple Document Exchange or a Multiple Round Trip Document Exchange. Examples of Document Exchanges are contained in section 6 Examples of Document Exchanges
Simple Document Exchange
A Simple Document Exchange consists of:
- a Request Message sent from one Party to a second Party, followed by
- an optional Acknowledgement Message sent by the second party back to the first party, followed by
- an optional Checked OK Message sent by the second party back to the first party followed by
- an optional Response Message that is returned as a result of processing the Request Message.
Examples of instances of a Simple Document Exchange include:
- a Purchase Order sent by a buyer to a seller and the acknowledgement from the seller of its receipt
- a Purchase Order sent by a buyer to a seller and the Invoice that is sent back as a result of fulfilling the order
- sending a document for review by a lawyer followed by the legal opinion that is sent back as a result
Multiple Round Trip Document Exchange
A Multiple Round Trip Document Exchange consists of:
- a Request Message sent from one Party to a second Party, followed by
- a series of Exchange Messages that are exchanged between the two Parties until finally
- the second Party generates and sends a Response Message back to the first Party.
Examples of Multiple Round Trip Document Exchanges include:
- the exchange of messages required to make a payment using payment method protocols such as [SET] or [Mondex]
- the exchange of messages required to negotiate an agreement on terms and conditions.
Exchange Message
An Exchange Message is a Message that is sent between one Party and another after the sending of the initial Request Message and before the sending of the final Response Message.
Examples of Exchange Messages include:
- intermediate messages that are part of a Payment Protocol
- a counter offer to an offer made as part of a negotiation.
Error Message
An Error Message is a Message that reports on a problem in an earlier Message that prevents the earlier Message from being processed in a normal way.
Examples of an Error Message include:
- an Error Message reporting that an XML document was invalid or did not conform to its XML schema
- an Error Message reporting a Transient Error that the Server processing a Message is busy and therefore the original Message should be resent at a later point in time
- an Error Message that reports on an error in the underlying transport protocol.
Services and Message Sets
Overview
A Service Definition describes a process that can be carried out by a Party. It consists of either a Document Exchange or a set of Sub-Services. Each Sub-Service is a Service in its own right. So, at the lowest level, all Service Definitions are described in terms of a Document Exchange.
The dependencies between the Sub-Services in a Service is described in a Sub-Service Choreography.
An instance of the execution of a Service Definition is called a Message Set.
The parameters that define how the transport of messages is managed and controlled is specified in a Transport Service Level Agreement (TSLA)
More detail is provided below.
Service Definition
A Service Definition describes a process that can be carried out by a Party as a result of receiving a Request Message that requests the execution of that Service.
A Service Definition can consist of either:
- a Document Exchange, or
- a set of Sub-Services
Examples of Service Definitions include descriptions of:
- a Purchasing Service that enables a customer to purchase goods on-line
- an Order Processing Service that processes an Order and generates a response as a result
- a Payment Service that accepts a payment and provides a receipt
- a Fulfillment Service that fulfills an order at the request of a Merchant.
Sub-Service
A Sub-Service is a Service that is executed at the request of and as part of another Service.
Examples of Sub-Services include:
- a payment service that occurs as part of a purchase
- a tax calculation service that calculates the tax due as part of an order processing service.
An example of how services, sub-services and document exchanges relate to one another is illustrated by the diagram below.

Figure 6 Services and Sub Services
Sub-Service Choreography
A Sub-Service Choreography is a description of the dependencies that control the sequence and choices that determine which Sub-Services are executed when carrying out a Message Set.
The Sub-Services in a Service will have dependencies between them. Dependencies can be:
- Serial. One Sub-Service shall start only after the completion of another Sub-Service
- Alternative. One Sub-Service may be executed as an alternative to another
- Iterative Loop. A Sub-Service may be repeated a variable number of times
- Conditional. The execution of a Sub-Service is conditional on the state of another Service. This may be used in conjunction with Serial, Alternative and Iterative Loop dependencies.
- Parallel. A Sub-Service may execute in Parallel with another Service
- Concurrent. A Sub-Service shall Execute at the same time as another Sub-Service.
An example of a simple Sub-Service Choreography is a Purchase Service that consists of three Sub-Services:
- an Offer Service that conveys an Offer for sale of goods. This Sub-Service has no dependencies and therefore starts first
- a Payment Service that carries out the Payment which has a Serial dependency on the Offer Service
- a Delivery Service that delivers the Digital Goods, that has a Serial Dependency on the Payment Service
Application
An Application is software that may implement a service by processing one or more of the messages in the document exchanges associated with the service.
Message Set
A Message Set is an instance of the execution of a Service.
Examples of a Message Set include:
- a Purchase Message Set that buys a Company Report for $20. It consists of three Sub-Service instances:
- an Offer Service instance to buy the Company Report for $20
- a Payment Service instance that accepts a Payment for $20 using a credit card, and finally
- a Delivery Service instance that delivers the Company Report as an HTML web page.
- a Buying Service that consists of the following Sub-Services:
- three Price Negotiation Service instances that negotiate the price of a Photocopier
- a Purchase Order Service instance that places the order for the Photocopier.
Transport Service Level Agreement
Transport Service Level Agreement (TSLA)
consists of information mutually agreed between two paties that manages and controls the ebXML "transport" software that sends and receives messages.
Transport software is software that is constructed according to the specifications produced by the ebXML Transport, Routing and Packaging Project Team.
Examples of information in a TSLA include:
- timeout parameters
- retry counts
- security parameters
- respponse addresses
- Miscellaneous
- A Session based Message Set is where a Document is sent to a Party which results in an immediate response of another Document. These are synchronous in nature.
- A long term Message Set is where a Document is sent to a party and, possibly, a simple acknowledgement is sent back immediately. The Document that is the "business" response to the original Document is then sent some time later
- Response Time
is the time taken by a Service to process a Message and generate a response.
- Examples of Document Exchanges
The following diagrams provide an non-exhaustive list of the different types of template sequences in which messages can be exchanged.

Figure 7 Simple Request

Figure 8 Simple Request with Save

Figure 9 Simple Request and Checked OK, No Response required

Figure 10 Simple Request Response

Figure 11 Simple Request with Acknowledgement and Response

Figure 12 Simple Request Response - both with Acknowledgement

Figure 13 Request with Acknowledgement, Checked OK and Response

Figure 14 Acknowledgements with Everything

Figure 15 Request Message with Error
References
No references.
Acknowledgements
This document is a collective development effort of all the members of the Transport, Routing and Packaging project team.