Ebms v3 Part2
Ebms v3 Part2
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 1 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 2 of 126
Notices
Copyright OASIS Open 2011. All Rights Reserved.
All capitalized terms in the following text have the meanings assigned to them in the OASIS
Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS
website.
This document and translations of it may be copied and furnished to others, and derivative works that
comment on or otherwise explain it or assist in its implementation may be prepared, copied, published,
and distributed, in whole or in part, without restriction of any kind, provided that the above copyright
notice and this section are included on all such copies and derivative works. However, this document
itself may not be modified in any way, including by removing the copyright notice or references to
OASIS, except as needed for the purpose of developing any document or deliverable produced by an
OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the
OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by OASIS or its
successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and OASIS
DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE.
OASIS requests that any OASIS Party or any other party that believes it has patent claims that would
necessarily be infringed by implementations of this OASIS Committee Specification or OASIS
Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent
licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical
Committee that produced this specification.
OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of
any patent claims that would necessarily be infringed by implementations of this specification by a
patent holder that is not willing to provide a license to such patent claims in a manner consistent with
the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include
such claims on its website, but disclaims any obligation to do so.
OASIS takes no position regarding the validity or scope of any intellectual property or other rights that
might be claimed to pertain to the implementation or use of the technology described in this document
or the extent to which any license under such rights might or might not be available; neither does it
represent that it has made any effort to identify any such rights. Information on OASIS' procedures
with respect to rights in any document or deliverable produced by an OASIS Technical Committee can
be found on the OASIS website. Copies of claims of rights made available for publication and any
assurances of licenses to be made available, or the result of an attempt made to obtain a general
license or permission for the use of such proprietary rights by implementers or users of this OASIS
Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator.
OASIS makes no representation that any information or list of intellectual property rights will at any
time be complete, or that any claims in such list are, in fact, Essential Claims.
The name "OASIS" is a trademark of OASIS, the owner and developer of this specification, and
should be used only to refer to the organization and its official outputs. OASIS welcomes reference to,
and implementation and use of, specifications, while reserving the right to enforce its marks against
misleading uses. Please see http://www.oasis-open.org/who/trademark.php for above guidance.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 3 of 126
Table of Contents
1 Introduction......................................................................................................................................... 7
1.1 Terminology................................................................................................................................. 7
1.2 Normative References................................................................................................................. 7
1.3 Non-normative References.......................................................................................................... 8
1.4 Namespaces................................................................................................................................ 9
2 Multi-hop Messaging......................................................................................................................... 11
2.1 Introduction................................................................................................................................ 11
2.2 Terminology............................................................................................................................... 11
2.3 Multi-hop Topologies................................................................................................................. 12
2.3.1 Assumptions about Multi-hop Topologies...........................................................................12
2.3.2 Hub-and-Spoke.................................................................................................................. 13
2.3.3 Interconnected Hubs.......................................................................................................... 13
2.4 Usage Requirements................................................................................................................ 14
2.4.1 Operation Assumptions..................................................................................................... 14
2.4.2 Connectivity and Addressability constraints .......................................................................15
2.4.3 QoS of Message Exchanges..............................................................................................15
2.4.4 Intermediary Configuration and Change management ......................................................15
2.4.5 Compliance with the SOAP Processing Model...................................................................16
2.4.6 MEPs and Channel Bindings..............................................................................................16
2.4.7 Edge-bindings for Multi-hop One-Way................................................................................18
2.4.7.1 Pushing Messages from the Sender Endpoint............................................................18
2.4.7.2 Pulling Messages from the Sender Endpoint...............................................................18
2.4.8 Edge-bindings for Multi-hop Two-Way................................................................................20
2.4.8.1 Asynchronous Edge-bindings......................................................................................20
2.4.8.2 Synchronous Edge-bindings........................................................................................22
2.5 The Intermediary MSH............................................................................................................... 23
2.5.1 Intermediary Functions....................................................................................................... 23
2.5.2 Message Forwarding Models..............................................................................................24
2.5.3 MEP Bridging...................................................................................................................... 26
2.5.4 Sub-channels...................................................................................................................... 27
2.5.5 The Routing Function ........................................................................................................ 28
2.5.6 Error Handling and Multi-Hop Messaging...........................................................................30
2.6 Endpoint requirements .............................................................................................................. 32
2.6.1 Routing Support for Initiating Messages ............................................................................33
2.6.2 Routing Support for Response Messages .........................................................................33
2.6.3 WS-Addressing Support..................................................................................................... 35
2.6.3.1 WS-Addressing Endpoint References.........................................................................35
2.6.3.2 Use of WS-Addressing Headers.................................................................................36
2.7 P-Modes for multi-hop............................................................................................................... 37
2.7.1 P-Mode Extension for Web Services Addressing...............................................................37
2.7.1.1 Addressing.Address.................................................................................................... 37
2.7.1.2 Addressing.EPR.......................................................................................................... 37
2.7.1.3 WS-Addressing Action................................................................................................38
2.7.1.4 P-Mode extensions...................................................................................................... 39
2.7.2 P-Mode units ..................................................................................................................... 40
2.7.3 Migrating P-Modes from point-to-point to multi-hop............................................................41
2.8 Details of Reliable and Secure Multi-hop..................................................................................41
2.8.1 Controlling Sequencing and Grouping................................................................................42
2.8.2 Configuring Secure Conversations.....................................................................................43
2.8.3 Reliable Message Pulling................................................................................................... 43
2.8.4 Considerations about Reliable Messaging Specifications...................................................44
3 Message Bundling............................................................................................................................. 45
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 4 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 5 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 6 of 126
1 Introduction
This specification complements the ebMS 3.0 Core Specification by specifying advanced messaging
functionality for:
message bundling,
1.1 Terminology
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD
NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this specification are to be interpreted as
described in [RFC2119].
IETF Informational Document. T. Harding, ed. AS2 Restart for Very Large
Messages. January 2011. http://tools.ietf.org/html/draft-harding-as2-restart-02
[EBMS3CORE]
[EBBPSIG]
[HTTP11]
[RFC2119]
[RFC2392]
[RFC3987]
[RFC5246]
[MTOM]
[SOAP11]
[SOAP12]
[SOAPATTACH]
[WSADDRCORE]
[WSADDRSOAP]
[WSIAP10]
WS-I Final Material. Chris Ferris, et al, eds, Attachments Profile Version 1.0,
2004. http://www.ws-i.org/Profiles/AttachmentsProfile-1.0-2004-08-24.html
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 7 of 126
[WSIBP12]
[WSIBP20]
[WSIBSP10]
[WSIBSP11]
[WSIRSP10]
WS-I Final Material. Basic Profile Version 1.2. November 2010. http://wsi.org/Profiles/BasicProfile-1.2-2010-11-09.html
WS-I Final Material. Basic Profile Version 2.0. November 2010.
http://ws-i.org/Profiles/BasicProfile-2.0-2010-11-09.html
WS-I Final Material. Abbie Barbir, et al, eds, Basic Security Profile Version
1.0, 2005. http://www.ws-i.org/Profiles/BasicSecurityProfile-1.0.html
WS-I Final Material. Basic Security Profile Version 1.1. January 2010.
http://www.ws-i.org/Profiles/BasicSecurityProfile-1.1.html
WS-I Final Material. Reliable Secure Profile Version 1.0. Working Group
Approval Draft. November 2010. http://www.wsi.org/Profiles/ReliableSecureProfile-1.0-2010-11-09.html
[WSR11]
[WSRM12]
OASIS Standard, Web Services Reliable Messaging (WSReliableMessaging) Version 1.2, February 2009, http://docs.oasisopen.org/ws-rx/wsrm/200702/wsrm-1.2-spec-os.html
OASIS Standard, WS-SecureConversation 1.4, February 2009.
http://docs.oasis-open.org/ws-sx/ws-secureconversation/v1.4/os/wssecureconversation-1.4-spec-os.doc
[WSSC14]
[WSS10]
[WSS11]
[WST14]
[XDM]
W3C Recommendation. Mary Fernndez, et al, eds. XQuery 1.0 and XPath
2.0 Data Model (XDM). January 2007. http://www.w3.org/TR/xpathdatamodel/
W3C Recommendation. Tim Bray, et al, eds., Extensible Markup Language
(XML) 1.0 (Third Edition), February 2004. http://www.w3.org/TR/2004/RECxml-20040204/
[XML10]
[XMLDSIG]
[XMLENC]
[XMLNS]
[XMLSCHEMA-P1] W3C Recommendation. Henry S. Thompson, et al, eds., XML Schema Part
1: Structures Second Edition, October 2004.
http://www.w3.org/TR/xmlschema-1/
[XMLSCHEMA-P2] W3C Recommendation. Paul Biron and Ashok Malhotra, eds. XML Schema
Part 2: Datatypes Second Edition, October 2004.
http://www.w3.org/TR/xmlschema-2/
OASIS Committee Specification 01, AS4 Profile of ebMS V3 Version 1.0, April
2010, http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/profiles/200707/AS4profile.pdf
[ebCPPA 3.0]
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 8 of 126
[HL7ebMSv3]
[PARTYIDTYPE]
[RFC4130]
[WSMC11]
[XPATH]
[XSLT]
open.org/committees/download.php/31996/ebcppa-v3.0-Spec-wd-r01-enpete4.pdf
P. Knapp. HL7 Version 3 Standard: Transport Specification - ebXML, Release
2. July 2007.
http://www.hl7.org/v3ballot2007sep/html/infrastructure/transport/transportebxml.htm.
OASIS Committee Specification, ebCore Party Id Type Technical
Specification Version 1.0, April 2010, http://docs.oasisopen.org/ebcore/PartyIdType/v1.0/PartyIdType-1.0.odt
IETF RFC. D. Moberg and R. Drummond. MIME-Based Secure Peer-to-Peer
Business Data Interchange Using HTTP, Applicability Statement 2 (AS2).
IETF, July 2005. http://www.ietf.org/rfc/rfc4130.txt.
OASIS Standard, Web Services MakeConnection (WS-MakeConnection)
Version 1.1. February 2009. http://docs.oasis-open.org/wsrx/wsmc/v1.1/wsmc.doc
W3C Recommendation. James Clark, et al, eds., XML Path Language (XPath)
Version 1.0, November, 1999. http://www.w3.org/TR/xpath
W3C Recommendation. M. Kay. XSL Transformations (XSLT). Version 2.0.
January 2007. http://www.w3.org/TR/xslt20/.
1.4 Namespaces
Prefix
Namespace
Specification
ds
http://www.w3.org/2000/09/xmldsig#
[XMLDSIG]
eb3
http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/core/200704/
[EBMS3CORE]
ebint
http://docs.oasis-open.org/ebxmlmsg/ns/ebms/v3.0/multihop/200902/
ebbp
http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0
[EBBPSIG]
mf
S11
http://schemas.xmlsoap.org/soap/envelope
[SOAP11]
S12
http://www.w3.org/2003/05/soap-envelope
[SOAP12]
wsa
http://www.w3.org/2005/08/addressing
[WSADDRCORE]
wsmc
http://docs.oasis-open.org/ws-rx/wsmc/200702
[WSMC11]
wsr
http://docs.oasis-open.org/wsrm/2004/06/ws-reliability1.1.xsd
[WSR11]
wsrm
http://schemas.xmlsoap.org/soap/envelope/
[WSRM12]
wssc
http://docs.oasis-open.org/ws-sx/wssecureconversation/200512
[WSSC14]
wsse
http://docs.oasis-open.org/wss/oasis-wss-wssecuritysecext-1.1.xsd
[WSS11]
wst
http://docs.oasis-open.org/ws-sx/ws-trust/200512
[WST14]
wsu
http://docs.oasis-open.org/wss/2004/01/oasis-200401wss-wssecurity-utility-1.0.xsd
[WSS10]
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 9 of 126
2 Multi-hop Messaging
2.1 Introduction
The OASIS ebXML Messaging Services (ebMS) Version 3.0 core specification [EBMS3CORE] defines
an advanced Web Services-based message protocol that leverages standards for SOAP-based
security and reliability. It supports and extends the core functionality of version 2.0 of ebMS. The core
specification is focused on point-to-point exchange of messages between two ebMS message service
handlers. It does not explicitly consider multi-hop messaging. Messaging across intermediaries is a
common requirement in many e-business and e-government communities and is functionality provided
by many messaging protocols, including the version 2.0 of ebXML Messaging.
This chapter defines a multi-hop profile of ebMS 3.0 that extends the functionality of the version 3.0
ebMS core specification to multi-hop messaging across ebMS intermediaries. The main function of
intermediaries as defined in this specification is to provide message routing and forwarding based on
standardized SOAP message headers, allowing a sending MSH to ignore the ultimate message
destination and abstract away from lower-level transport parameters such as the URL of the ultimate
receiving MSH and message exchange pattern bindings. The intermediary functionality defined here
supports message relaying across segmented networks, synchronous and asynchronous bindings and
both active (push) and passive (pull message stores) forwarding styles. Multi-hop paths may consist of
any number of intermediaries.
A key end-user requirement that this specification supports is end-to-end reliable messaging and endto-end security and compliance with Web Services interoperability profiles.
2.2 Terminology
The following definitions are used throughout this section:
MSH: Message Service Handler assumed here to be conforming to the ebMS V3 Core specification
as well as to this specification (Part 2).
Forwarding role: The ebMS V3 Core specification defines two roles in which a MSH can act:
Sending and Receiving. In this extension of the messaging model to multi-hop messaging, an
ebMS V3 MSH can also act in a new role called Forwarding. An MSH acting in the Forwarding role
forwards a received ebMS message based on its ebXML header content to another MSH without
modifying the SOAP message (SOAP envelope and its content) or any attached payload. Section
2.5.2 describes these message forwarding models in more detail.
Intermediary MSH (or ebMS Intermediary): An MSH acting in the new Forwarding role and
configured for doing so for at least some messages, in a network of MSHs. ebMS Intermediaries
support a routing function that maps messages based on header content to the next MSH
destination or a pull channel as described in section 2.5 .
Endpoint MSH: An MSH that is able to act either in the Sending role or in the Receiving role, and that
is configured for doing so for at least some messages, in a network of MSHs. The ability to act as a
Sender or Receiver in a multi-hop transfer imposes certain requirements on the MSH which are
detailed in section 2.6 .
NOTE: an Endpoint MSH may also act as an Intermediary MSH: Sending, Receiving and Forwarding
roles can be combined in any way, subject to configuration.
ebMS Multi-hop path: a multi-hop path is a sequence of MSHs, starting with an Endpoint MSH and
ending with an Endpoint MSH, connected via one or more ebMS Intermediaries, which are configured
to allow the end-to-end transfer of some ebMS messages from one Endpoint MSH (called path
origin) to the other Endpoint MSH (called path destination). The following figure illustrates two multihop paths between MSHs A and B: one from A to B and another one in the reverse direction from B to
A. The components I0 to IN in between MSHs A and B are ebMS Intermediaries.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 10 of 126
ebMS multi-hop topology: An ebMS multi-hop topology is a network of ebMS nodes connected via
one or more multi-hop paths. Note that not every pair of ebMS nodes in a multi-hop topology has to be
part of the same multi-hop path, i.e. the topology does not require enabling message transfer from any
ebMS node to any ebMS node. In a multi-hop topology one usually finds MSHs that are only able to
act as Endpoints on its periphery, although this is not always the case: for example, in a ring topology
all MSHs are Intermediaries but with any MSH, in the ring topology, acting as an Endpoint for some
multi-hop paths.
I-cloud (or Intermediary-cloud): The I-cloud is the network of ebMS Intermediaries that is at the core
of a multi-hop topology. The I-cloud does not comprise those Endpoint MSHs that are neither capable
nor configured to act as Intermediaries (Forwarding role). However, when considering a single multihop path, we will call I-Cloud the set of Intermediaries involved in this path at the exclusion of the
origin and destination Endpoint MSHs (even if these are able to act as Intermediaries for another
multi-hop path).
The hops that relate the Endpoint MSHs to the I-Cloud (i.e. hop: MSH A - Intermediary 0, and hop
Intermediary N MSH B) are called Edge-hops, while the hops over the I-Cloud are called I-Cloud
hops. The ebMS Intermediaries that participate in the Edge-hops (I0 and IN in the Figure) are called
Edge Intermediaries.
The topologies considered here all involve ebMS intermediaries, not exclusive of other nonebMS nodes. Other nodes (SOAP nodes, HTTP proxies, etc.) may be involved in transferring
ebMS messages over multi-hop paths, but they are not considered as ebMS intermediaries in
the sense that they are not required to understand any of the ebMS data or metadata available
in the headers and are not supposed to behave depending on this data. Their presence is
orthogonal to the definition of ebMS multi-hop topologies.
The same MSH may play different roles for different multi-hop paths: it can be an Intermediary
for some messages, a destination Endpoint for others, and an origin Endpoint for others. The
multi-hop model described here must support this, although in practice many topologies will
restrict the roles that an MSH can play. For simplicity we will assume that in a Hub-and-Spoke
model as well as in the Interconnected-Hubs model, the Endpoints are not acting as
Intermediaries.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 11 of 126
2.3.2 Hub-and-Spoke
In the Hub-and-Spoke topology, a single Intermediary MSH (called Hub) is used, to which all Endpoint
MSHs are connecting. In this configuration, every multi-hop path is actually a 2-hop path. Every
Endpoint MSH connected to the Hub is either a destination or an origin to at least one multi-hop path.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 12 of 126
Some Intermediaries may not serve any cluster of endpoint MSHs, but only act as relays between
Intermediaries.
A special case of the interconnected hubs topology is the Bridge Domains topology. In this topology
some interconnected ebMS MSHs act as gateways to sub-networks. Each sub-network is only
reachable from the outside via its Gateway and can use internal addresses that are not publicly
reachable or resolvable outside the sub-network.
The assumption is that any Gateway is reachable from any other Gateway with each Gateway
configured to route messages intended for other domains. This topology mostly departs from the
Interconnected Hub topology in its constraints about the addressing function and its partitioning into
domains bridged by these Gateways.
The multi-hop mode considered here is of type transparent multi-hop. Transparent multi-hop
is defined as involving only ebMS Intermediaries that do NOT, in any way, modify the SOAP
messages, i.e. SOAP envelope and its content or any attached payload, they are forwarding.
Signature integrity is a major reason for intermediaries to not alter SOAP content, when using
security. Other multi-hop modes are out of scope for this specification, although this
specification does not preclude them.
A multi-hop path is decomposed into (a) edge-hops, and (b) I-Cloud hops (see section 1.1 for
definitions). A different configuration construct is used to control message transfer over these
two types of hops being as follows:
1. The P-Mode deployed on each endpoint. This P-Mode controls the communication
over edge-hops (origin Endpoint to I-Cloud, or I-Cloud to destination Endpoint). These
P-Modes define the details of the intermediary that is in contact with the endpoint
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 13 of 126
MSHs, and has no bearing on how these intermediaries transfer messages over the ICloud.
2. The routing function for transfer inside the I-Cloud (ICloud hops). The Endpoint MSHs
are not aware of the way messages are transferred within the I-Cloud, and do not
control the transfer of messages within the I-Cloud besides setting header content
used as input by the routing functions.
When message forwarding does not involve pulling, and when there is no other connectivity
impediment, an Intermediary may either use streaming to forward a message without persisting any
part of it, or store the message for subsequent forwarding(see section 2.5.2 on forwarding models). An
intermediary that is capable of both streaming and store-and-forward messaging may select one or the
other option using its routing function.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 14 of 126
different paths, provided they reach the same destination. This may happen when an Intermediary is
out of order, hence requiring routing via an alternate path.
Also defined in section 2.2.3 of the Core Specification is the concept of MEP Bindings. Such a MEP
binding defines how the abstract MEP is bound to the underlying transport layer / protocol.
Although the Core Specification restricts the definition of MEP to the exchanges between two MSHs,
the above MEPs are actually independent from the network topology as the MEPs represent the
exchange pattern between the application-level Producer and Consumer of the message. Therefore
two partners evolving from a point-to-point topology toward a multi-hop topology would still use the
same message exchanges patterns (One-Way, Two-Way) as defined in the Core specification (V3).
The way these MEPs bind to the underlying transport protocol does change however, as the transfer is
now divided into multiple hops. This implies that the binding of MEPs to the underlying transport may
vary in a way that is not covered by the Core Specification.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 15 of 126
Message transfer over a multi-hop path including the way the underlying transport protocol is used, is
controlled by two different means depending on the type of hop:
For the edge hops the transfer is primarily controlled by the P-Mode deployed on the endpoint
MSHs;
Transfers within the I-Cloud, i.e. on the I-Cloud hops are controlled by the routing function
deployed on each Intermediary. The routing function of intermediaries is defined in section 2.5
The following figure illustrates the control of multi-hop transfers and the related partitioning of multihop paths.
Throughout this specification, the notion of multi-hop MEP binding will only be defined in terms of the
binding of edge hops, and will make abstraction of the binding of I-Cloud hops.
As only the channel binding of the edge hops is controlled by the P-Mode, the P-Mode MEP Binding
parameter only defines the binding of the edge hop (e.g. push or pull) between this endpoint and the
first (or last) Intermediary of the I-Cloud. These MEP bindings are therefore called edge-bindings.
The following subsections describe the most common multi-hop MEP bindings from the endpoint
perspective (edge-bindings). They remain independent from the channel binding of the multi-hop
section that occurs inside the I-Cloud.
These multi-hop MEP bindings are entirely determined by the combination of point-to-point MEP
bindings for both edge hops, as explained in sub-sections 2.4.7 and 2.4.8 . Therefore they will not be
defined by specific URI values for the PMode.MEPbinding parameter. For ease of reference they will
be given composed names like First-and-Last-Push.
While in a point-to-point context equivalent P-Modes are deployed by each endpoint to control the
point-to-point exchange, slightly different P-Modes on each endpoint may be deployed for controlling
the same exchange over a multi-hop path. Section 2.7 will describe these differences, one of them
being the PMode.MEPbinding parameter value which may now differ on both ends, as the first and
last hops (edge hops) may be channel-bound quite differently over a multi-hop path.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 16 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 17 of 126
In both Case 3a and 3b above, the edge bindings are quite similar: all of them are One-way / Pull. The
difference lies in the way the pulling is propagated across the I-Cloud, which may affect endpoints
even if this is still the same edge-binding, named here "first-and-last-pull"..
Case 3a: In this MEP binding, the eb3:PullRequest signal is generated by the Receiver endpoint
MSH, and routed all the way by the I-Cloud as any other message, to the Sender MSH. In other words,
the same eb3:PullRequest message is used in both edge-hops. The main advantage is that there
is a single authorization point for the pulling: the Sender MSH to which the Pull signal is intended. The
I-Cloud has no responsibility in authorizing the pulling and has no authorization information
(passwords or certificates) to maintain. On the other hand, the implication of such multi-hop pulling, is
that each Intermediary on the path must keep its transport connections open.
P-Mode MEP configuration:
Case 3b: In this MEP binding, the eb3:PullRequest signal is not routed, and only goes over a
single hop. The eb3:PullRequest signals over each edge-hop are different messages, which could
have different authorization credentials (the Pull signal is authorized for the next node only). These
edge pulls are relayed by the I-Cloud in unspecified ways the pulled message could be pushed
and/or pulled across the I-Cloud.
P-Mode MEP configuration: same as for Case 3.
The difference between Case 3a and Case 3b affects endpoint behavior in the way reliable messaging
is supported. In Case 3b the eb3:PullRequest from the Receiver is only sent to the Intermediary
and not routed to the Sender endpoint, so there is no use for sending the eb3:PullRequest reliably
to Sender as would be the normal way when operating in a point-to-point context (see Core
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 18 of 126
specification). See section 2.8 Details of Reliable and Secure Multi-hop for a detailed description
and a new P-Mode parameter Pmode[1].Reliability.AtleastOnce.ReliablePull
Another less common one-way edge-binding is illustrated below in Case 4:
Case 4: "First-pull-last-push". In this MEP binding, the first edge-hop is pulled, while the last edgehop is pushed. These edge pulls are relayed by the I-Cloud in unspecified ways the pulled message
could be pushed and/or pulled across the I-Cloud. The difference between Case 4 and Case 3 is in
the last edge-hop binding.
P-Mode MEP configuration:
Other combinations of edge-bindings are expected to be used and supported by Intermediaries that
are not described here although they will automatically be supported by Intermediaries that already
support the edge-binding combinations specified here.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 19 of 126
Case 2: "Request-push-last-pull and Reply-push-last-pull". This case applies when both endpoint
MSHs are not addressable: both are pulling messages from the I-Cloud.
P-Mode MEP configuration:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 20 of 126
Case 4: "First-sync-last-sync". Both endpoint MSHs interact with the I-Cloud using the same MEP
binding they would use between themselves in a direct point-to-point mode. The request Sender MSH
may be non-addressable, and will get the reply message over the same transport connection as the
request message so this connection has to be kept open on the first edge-hop.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 21 of 126
NOTE:
Although both Endpoints in this case use synchronous communication with their respective
intermediaries there is no guarantee that the response message is communicated synchronously endto-end as the I-Cloud hops might use asynchronous communication. When an I-Cloud uses
synchronous communication on the I-Cloud hops to enable end-to-end synchronous communication
this may be very resource intensive on the intermediaries because of the requirement to keep the
connections open.
NOTE: The diagram could easily be generalized for the Interconnected Hubs topology, where every
Intermediary on the multi-hop path would have to act in the Forwarding role.
Message Routing. As an intermediary is not an endpoint of the multi-hop path, every message
received MUST be forwarded to another MSH. The routing function of an intermediary defines to
which MSH a message must be forwarded to based on metadata carried by the received message.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 22 of 126
MEP bridging. Forwarding MAY also imply the ability to bridge between different MEP channel
bindings. For example, a message bound to a One-way / Push MEP when received, may be bound to
a One-way / Pull after forwarding, as illustrated in the following figure.
Message Pulling support. This implies some partial knowledge of P-Modes that determine a push
vs. a pull channel. In the case of pulling, a scalability feature like sub-channels (see section 2.5.4 )
needs to be supported and configured with authorization info. In addition to assigning
eb3:UserMessages to Pull channels, an Intermediary MUST also be able to assign
eb3:SignalMessages and non-ebMS, e.g. RM signals such as wsrm:CreateSequence or
sequence acknowledgments, to a Pull channel based on the @mpc attribute on the routing parameter
in the SOAP header so that these signals become available for pulling by the endpoint MSH. This
represents an extension to the pull protocol as defined in [EBMS3CORE]: in addition to ebMS user
messages and ebMS signal messages containing an eb3:Error element with code: EBMS:0006
(EmptyMessagePartitionChannel), a third valid response message type is: any SOAP message
containing a valid ebint:RoutingInput/ebint:UserMessage header element.
Error Handling. An Intermediary MUST be able to generate eb3:Errors as discussed in section
2.5.6 .
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 23 of 126
An alternative forwarding model is the streaming model in which both operations are executed in
parallel by the intermediary, i.e. data is directly transferred to the next hop. In this model the Send
operation starts as soon as possible after the Receive operation has started. Because the next hop will
only be known after the message header has been received the Send operation will always start some
time after the start of the Receive operation.
Depending on whether the Receive operation ends before or at the same time as the Send operation
two sub cases of the streaming model exist. In the first sub case, called asynchronous streaming, the
Receive operation completes successfully after receiving all message data, i.e. a transport channel
acknowledgment is sent to the previous hop and the channel is closed. The figure below shows the
sequence diagram for this streaming model sub case.
In the other case, called synchronous streaming, the Receive operation only ends when the Send
operation is complete successfully, i.e. the transport acknowledgment is only sent back to the previous
hop when a transport acknowledgment is received from the next hop. The sequence diagram for this
sub case of the streaming model is shown in the next figure.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 24 of 126
Note that synchronous refers to the transport acknowledgments and not the ebMS message transfer.
Even when using synchronous streaming intermediaries the ebMS MEP could be asynchronous. For
synchronous ebMS message transfers, the only option is to use the synchronous streaming model
because in this model the intermediary MSH will wait with responding to the previous hop until a
response is received from the next hop.
An advantage of both streaming models over the store-and-forward model is that they require less
storage space because there is no need to store complete messages. Also the end-to-end latency is
reduced.
The main disadvantage of both streaming models is that they require more bandwidth as the Receive
and Send operation run in parallel. Congestion on the intermediary will occur if the outgoing
connection does not have at least the same bandwidth as the incoming connection, especially in the
synchronous streaming model where the incoming connection stays open until the outgoing one is
closed.
Therefore the [synchronous] streaming model SHOULD only be used when bandwidth is known to be
available.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 25 of 126
The routing function MUST specify which forwarding pattern is in use for each MPC it handles. The
routing function MUST also specify the authorization credentials associated with pulling both inbound
and outbound when the forwarding pattern involves pulling.
This specification does not define which ones of these forwarding patterns must be supported by an
intermediary: this is to be determined by future conformance profiles.
2.5.4 Sub-channels
The nature of message partition channels (MPC) as defined in the core ebMS V3 specification is such
that an intermediary may forward the flow of user messages with the same MPC value (i.e. having the
same eb3:Messaging/eb3:UserMessage/@mpc value) to different destinations. This requires the
routing function to use other criteria than [only] the @mpc value. Indeed, an MPC is not associated with
a particular pair of Sending / Receiving MSHs.
However this forwarding of messages from the same MPC to multiple destinations requires an
additional capability when these destinations are pulling these messages, i.e. when the last
intermediary is using either "pull-on-push or "pull-on-pull" forwarding patterns.
An example of such a use case is:
A party is sending messages to a large number of recipients over the I-Cloud. These recipients are
supposed to pull these messages from their common edge-intermediary. Because each recipient is
not supposed to pull messages for other recipients', each recipient will pull from a different MPC that is
authorized differently from others. However, the sending party does not want to be aware of all the
MPCs that are associated with each recipient, and is sending all messages over the same MPC. The
last intermediary alone is aware of which message should be forwarded to which recipient.
Sub-channels are a means to support the previous use case. A sub-channel is associated with an
existing or "parent" MPC, and plays the role of a new MPC in case of a "pull" forwarding. Every ebMS
User Message is always assigned to an MPC - if only to the default one (see also chapter 3 of the
Core specification on message pulling). An Intermediary may decide to "sub-channel" this MPC, which
means it associates one or more sub-channels to this MPC, and assigns the received message to one
of these sub-channels when forwarding, based on message metadata. Now the different endpoint
MSHs can pull their messages from the specific sub-channel assigned to them instead of the general
parent channel.
In order to pull from a particular sub-channel, an MSH must use the sub-channel ID in the @mpc
attribute of the eb3:PullRequest. This pulling may be authorized differently than pulling from the
parent MPC, i.e. the eb3:PullRequest must contain authorization credentials that are specific to
this sub-channel. The same message can also by pulled directly from its parent MPC, if the
eb3:PullRequest contains the right authorization credentials (which may be different from those
associated with its sub-channels). However a message assigned to sub-channel SC1 cannot be pulled
from sub-channel SC2, even if SC1 and SC2 have same parent channel. Typically, when subchannels are associated with different recipients who need to ensure that their messages are not
pulled by others, each sub-channel needs to be authorized differently.
The identifier of a sub-channel is an extension of the identifier of the parent MPC. MPCs are identified
with URIs. Different ways to indicate hierarchy in URIs exist, which can be used to indicate a channel /
sub-channel relation. When an MPC (y) is a sub-channel of another MPC (x), the following rules apply:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 26 of 126
the URI scheme in (x) and (y) must be same (and the URI authority if used in one must also
be used in the other with same value)
the path of the URI of the sub-channel (y) must start with the path of of the URI of the parent
channel (x).
http://sender.example.com/mpc123
A sub-channel of this MPC may have an identifier of the form:
http://sender.example.com/mpc123/subc42
Because intermediaries should not modify forwarded messages, the @mpc attribute value in the
message is not altered so the message is still considered as sent over this MPC, the sub-channel
assignment is purely 'virtual'. This also implies that sub-channel assignment can only take place in the
forwarding patterns (b) (pull-on-push) and (c) (pull-on-pull). Intermediaries SHALL only forward a
message over the MPC specified in the message or a sub-channel thereof. This behavior is
determined by the routing function associated with the intermediary.
From the receiver viewpoint (in the above use case, the ultimate recipient), sub-channels are used in
the same way as normal MPCs: sub-channel identifiers are to be used in P-Modes in the same way as
other MPC identifiers. An eb3:PullRequest message for a sub-channel will specify the sub-channel
ID in its @mpc value. Because the sub-channel assignment is only virtual, the pulled message however
will still have the parent MPC identifier in its @mpc value. Therefore a receiving MSH SHOULD accept
messages from a parent MPC when pulling.
The routing function must be able to route all messages that need to be forwarded by the intermediary,
including:
1. ebMS signal messages which are not also ebMS user messages;
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 27 of 126
2. non-ebMS messages that are involved in facilitating the transfer and quality of service of
ebMS messages (such as various signals supporting reliable messaging).
Such messages however do not contain an eb3:UserMessage element with the input needed for the
routing function. In order to provide the routing function with proper routing input these messages
MUST contain a WS-Addressing endpoint reference (EPR) parameter that includes the routing input
except for PullRequest signals when the routing function can determine the destination of the
PullRequest based on the MPC alone.
This reference parameter is defined as an element named ebint:RoutingInput which contains
exactly one child ebint:UserMessage element. For non ebMS user messages like 1. and 2. above
the SOAP header must contain the following WS-A reference parameter:
<ebint:RoutingInput
wsa:IsReferenceParameter='true'
S12:role="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/part2/200811/nextmsh"
>
<ebint:UserMessage>...</ebint:UserMessage>
</ebint:RoutingInput>
The embedded ebint:UserMessage element is similar to the XML schema defined for the similar
element in the packaging section of Core V3 and reuses some of its type and element definitions,
except for the eb3:MessageInfo element which can be absent here. The schema is defined in
Appendix C Reference Parameter.
NOTE: The UserMessage element in the reference parameter is in a different namespace than the
UserMessage element from the Core V3 specification because it allows for the MessageInfo
element to be absent and therefore must be redefined for use in the reference parameter. An
Intermediary MUST NOT fault a message with an ebint:UserMessage element that does not
contain an eb3:MessageInfo element, and MUST consider such an ebint:UserMessage as a
valid input for the routing function.
In the XML Schema definition for the ebMS 3.0 Core Specification, defined in section [EBMS3CORE]
and available from http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/core/ebms-header-3_0200704.xsd, the eb3:MessageInfo, eb3:PartyInfo, eb3:CollaborationInfo,
eb3:MessageProperties and eb3:PayloadInfo elements are defined in the UserMessage
complex type. XML schemas that import the ebMS 3.0 Core Specification cannot reference these
elements. To support reuse of these elements within the ebint:UserMessage element, a
refactored version of the ebMS 3.0 schema is provided (see Appendix B ) where these elements are
defined separately. The ebint:RoutingInput schema defined in Appendix C imports this
refactored schema. Note that an eb3:Messaging rooted XML document is valid with respect to this
refactored XML schema if and only if it is valid according to the original XML schema and that
processing such a document using the refactored XML schema results in the same Post Schema
Validation Infoset as from the original ebMS 3.0 XML schema.
An ebMS Intermediary MUST be able to obtain the routing input from a message (provided that
information is targeted to it) in one of the following ways:
By parsing the eb3:Messaging header in an ebMS user message, and by extracting its
eb3:UserMessage child element.
By parsing the eb3:PullRequest header element in a PullRequest message and using the
value of its @mpc attribute;
It is possible that an ebMS user or PullRequest message also contains a WS-Addressing reference
parameter in the SOAP header. In such cases where multiple routing input options are present in the
same message, the intermediary MUST use the WS-Addressing reference parameter as input for the
routing function.
A routing function must be able to map the ebint:RoutingInput header either to a URL (for
pushing the forwarded message) or to a pull channel.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 28 of 126
A routing function will generally use only a subset of the eb3:UserMessage element or of the
ebint:RoutingInput element. This subset is called the effective routing input, as opposed to the
available routing input represented by the entire eb3:UserMessage element,
ebint:RoutingInput element or pull request.
When the effective routing input is reduced for some messages to the sole MPC value or in other
words, when the I-Cloud routing function uses only the MPC value (@mpc) for some routings then
each one of these MPC values resolved by the routing function MUST NOT be shared by different
destination endpoints. This is the case when eb3PullRequest messages that do not contain a WSAddressing reference parameter must be routed through the I-Cloud as described in case 3a in
section 2.4.7.2
(c) Synchronous reporting: in this case, the error related to the routing of a message that is sent to an
intermediary as an HTTP request and generated upon the receipt of the message by this intermediary,
is sent back as an error message over the HTTP response. This reporting mode is sufficient for huband-spoke configurations. It is of particular relevance with connected endpoints of small and medium
size enterprises or other light clients that may only connect occasionally to the network to transmit
messages to their trading partners. In case there are errors, the pattern ensures immediate feedback.
Of the errors specified in section 6.7.1 of [EBMS3CORE] at least the following errors SHOULD be
supported:
Some of the errors specified in the core specification are not relevant in the context of Intermediaries.
Therefore an intermediary:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 29 of 126
Severity: failure
Description: the Intermediary MSH was unable to route an ebMS message and stopped
processing the message.
Note that finding a match for a message in the routing function is separate from applying the
forwarding action associated with the pattern. For instance, in situations where the intermediary
operates in a store-and-forward mode (see section 2.5.2 ), the actual forwarding of a message may
take place well after the initial processing of the incoming message and after the incoming transport
connection on which it came in was closed. If synchronous reporting pattern (c) is defined for a
message pushed to an intermediary, then the intermediary SHOULD match the message, immediately
upon receiving it and before the incoming connection is closed, against its routing table, in order to
establish whether a matching rule exists. This allows the intermediary to provide immediate feedback
to the MSH that pushed the message to it.
A non-normative example of a routing error signal is provided in appendix E.5 .
Two other new ebMS error types are relevant in situations where the routing rule of the intermediary
specifies that another MSH (either the final destination or the next intermediary) is to pull the message
based on its message partition channel identifier:
2) MPCCapacityExceeded. When the intermediary attempts to store the message, it is possible that
this attempt fails due to a lack of capacity, similar to the EBMS:0005 push connection failure. In this
situation, the intermediary SHOULD generate and report the following new error type:
Severity: failure
Description: an entry in the routing function is matched that assigns the message to an MPC
for pulling, but the intermediary MSH is unable to store the message with this MPC.
This error is compatible with, and can be reported using any of the three reporting options.
3) MessagePersistenceTimeout. The intermediary MAY also impose a limit on the time it will wait for
the message to be pulled, and discard messages that have not been pulled after the time limit is
reached. If such a limit is set, the intermediary SHOULD generate and MAY report the following new
kind of error:
Severity: Failure
Description: An intermediary MSH has assigned the message to an MPC for pulling and has
successfully stored it. However the intermediary set a limit on the time it was prepared to wait
for the message to be pulled, and that limit has been reached.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 30 of 126
This error, by definition, is typically generated well after the message is submitted to the intermediary.
This error therefore in general cannot be reported using the synchronous reporting option (c).
4) MessageExpired. It is possible that delays in the forwarding of messages in the I-Cloud cause
messages to expire before they reach the destination endpoint MSH. An intermediary MAY check if
messages have expired before forwarding them. Intermediaries MAY use one or multiple mechanisms
to determine expiration. In particular, an intermediary MAY inspect message headers, even if it is not
explicitly identified as the target of those headers, or inspect message payloads. Such mechanisms
could be specified in profiles as an extension to this specification. A mechanism that an intermediary
MAY use to determine expiration for an intermediary is to interpret expiration information in the WSReliability [WSR11] header or in the WS-Security header. These headers express expiration
information as follows:
If an intermediary applies this or other expiration detection mechanisms and determines a message
has expired, it SHOULD discard the message and SHOULD generate the following error:
Severity: Warning
Description: an MSH has determined that the message is expired and will not attempt to
forward or deliver it.
The intermediary MAY generate the error silently (without any notification to any other MSH), or it
MAY report the error using one of the three error reporting mechanisms.
Note that message expiration detection at intermediaries is just an optimization to prevent
unnecessary forwarding of messages. If endpoint MSHs implement expiration checking, the end-toend exchange is not affected if intermediaries do expiration checking too.
To prevent looping of error messages, intermediaries SHOULD NOT return standalone Error
messages for messages that themselves transmit routing errors in situations where the reporting
mechanism is other than (c). Note that this does not prevent an intermediary from generating and
reporting such errors in other situations, as long as they are not sent out as error messages. In
situations where errors are piggy-backed on an ebMS user message, it is still possible to fault the
eb3:UserMessage unit and send the related error. In situations where an intermediary is operating in
streaming mode, it MAY pass on an error message received synchronously on an outgoing
connection from the next hop back on the incoming connection to the preceding hop.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 31 of 126
The P-Mode associated with the messages to be pulled (i.e. defining a One-way / Pull MEP) is
shared between partners, along with the EPR of the sender of the pulled message. From this
EPR the ebint:RoutingInput reference parameter is extracted and added as a WSAddressing header to the SOAP header and targeted to the ebMS intermediary. In this case
the signal message is targeted to the SOAP ultimate receiver and the content of the
eb3:PullRequest itself is not used for routing.
The EPR for the request signal to pull a user message can be inferred from the P-Mode as follows:
3. non-ebMS messages: Such messages are typically bound to the first leg of an underlying two-way
transport protocol (e.g. HTTP). They do not contain an eb3:Messaging header (unless they are
piggybacked on ebMS Messages in which case the routing rules for these messages apply). They
may contain a wsa:ReplyTo header. The WS-Addressing headers and reference parameters contain
all routing input. The content of these headers is determined by the P-Mode configuration of the
Sending endpoint as in (2). Such messages may be:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 32 of 126
The response message is an ebMS user message that is the second leg of an ebMS two-way
MEP, and relates to the first message using eb3:RefToMessageId
The response message is an ebMS signal message that is referring to a previous ebMS
message using eb3:RefToMessageId, regardless of the type of MEP the previous message
is involved in and its role in the MEP. This concerns eb3:Error messages and
eb3:Receipt messages.
The response message is NOT an ebMS message, but an accessory message such as an
RM signal that is responding to a previous RM message (e.g.
wsrm:CreateSequenceResponse) or to a group of such messages (e.g
wsrm:SequenceAcknowledgment message), or yet a WS-SecureConversation message
such as wst:RequestSecurityTokenResponse.
Support for response message routing falls into one of these four cases:
1. ebMS User Messages: the eb3:UserMessage header element contains all routing input. The
content of these headers is determined as for request user messages. In case the wsa:ReplyTo
header was present in the request message, and if its EPR value contains the
ebint:RoutingInput element, then the corresponding WS-Addressing reference parameter
header block MUST be present in the response message and will therefore take precedence as the
routing input for the response message. In case the wsa:To element is present in the response
message (from the wsa:Address element present in the wsa:ReplyTo EPR) it MAY be used as
routing input by an intermediary.
2. ebMS Signal Messages: These are either eb3:Error or eb3:Receipt signal messages sent in
response to a previously received ebMS message. The ebMS header of such messages does not
contain an eb3:UserMessage element. However, either one of these conditions MUST be met and
decided per agreement between communicating parties:
1. the wsa:ReplyTo header was present in the request message, and if its EPR value contains the
ebint:RoutingInput element. In that case (and unless the EPR also contains a reachable URI
see Section 2.5.6 ) this element is used to generate a corresponding WS-Addressing header
that will be used by the I-Cloud routing function. For eb3:Error, the wsa:FaultTo if present
must take precedence over wsa:ReplyTo.
2. the P-Mode associated with the request message is shared between partners, and the sender of
the response message extracts the EPR of the initial sender from this P-Mode (even if it has an
anonymous URI). It inserts the ebint:RoutingInput reference parameter obtained from this
EPR in the header of the response message. This header will be used by the I-Cloud routing
function.
3. non-ebMS messages: Such messages do not contain any eb3:Messaging header (unless they
are piggybacked on ebms Messages in which case the routing rules for these messages apply). The
same rules as for above case (2) apply: the routing is based on WS-Addressing reference parameter
header ebint:RoutingInput (unless the EPR also contains a reachable URI see Section 2.5.6 )
An exception is made for RM protocol messages (such as acknowledgments, or sequence
management messages): In that case and assuming that end-to-end reliable messaging is used the EPR of the request sender MUST be specified in the wsrm:AcksTo element provided when
requesting or accepting an RM sequence creation. Either one of the following conditions MUST be
met:
This EPR contains the ebint:RoutingInput element suitable for routing across the ICloud back to the initial message sender.
The wsa:Address element in this EPR contains a URI identifying the request message
sender so that it can be used as routing input by Intermediaries or used to directly reach the
destination MSH, bypassing the I-Cloud and not relying on any ebMS-related routing function.
This EPR has an wsa:Address element that contains a reachable URI identifying the edge
intermediary used by the request message sender, as well as an ebint:RoutingInput
containing an @mpc value, so that the message can be pulled by the request sender on this
MPC.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 33 of 126
More fine-grained variations of this scheme are possible, distinguishing different types of responses,
e.g. appending .receipt (in case an eb3:Receipt is sent back), .acknowledgment (reliable
messaging acknowledgments) or .error (eb3:Error messages).
Note that this same mechanism of inferring the ebint:RoutingInput can be applied by
intermediaries in the case of routing errors. This is important because intermediaries have no access
to P-Mode configurations at the endpoints.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 34 of 126
</ebint:RoutingInput>
/wsa:ReferenceParameters>
</wsa:EndpointReference>
The @S12:role attribute indicates the endpoint reference address and reference parameters MUST
be interpreted by ebMS routing intermediaries in the I-Cloud, as discussed in section 2.4.5 . If using
SOAP1.1 instead of SOAP 1.2, the EPR would reference the @S11:actor attribute instead.
This EPR indicates the need to rely exclusively on information in the reference parameter
ebint:RoutingInput to route the messages intended to such an endpoint. The I-cloud URI must
then appear in the wsa:To header of any message intended for this destination Endpoint, along with
the ebint:RoutingInput header block that represents the reference parameter.
The minimum set of WS-Addressing headers that must be present in a message intended for an
Endpoint described by the above EPR, is illustrated below:
<S12:Header>
<wsa:To
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh"
>http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/part2/200811/icloud</wsa:To>
<wsa:Action ></wsa:Action>
<ebint:RoutingInput wsa:IsReferenceParameter='true'
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh">
<ebint:UserMessage>...</ebint:UserMessage>
</ebint:RoutingInput>
</S12:Header>
The value of the @S12:role attribute is the value introduced in section 2.4.5 . When using SOAP 1.1
the attribute to use is @S11:actor as discussed before.
In the case of a two-way MEP, and unless otherwise specified (eg. as determined by a WSDL
definition for a back-end Service), it is RECOMMENDED to set the wsa:Action to the following default
values:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/oneWay
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/twoWay.request
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/twoWay.reply
These values indicate the ebMS MEP definition URI that the message participates in, with a suffix of
the form .request or .reply specifying the role of the message in the MEP.
In the case where the message contains an eb3:Receipt for an ebMS user message, it is
RECOMMENDED that the wsa:Action value has a similar value based on whether the received
message is a One Way message or the request or a response in a Two Way message exchange,
again with .receipt as suffix:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 35 of 126
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/oneWay.receipt
(for the receipt of a One Way message exchange)
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/twoWay.request.receipt (for the
receipt of a request message in a Two Way message exchange)
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/twoWay.reply.receipt (for the receipt
of a response messages in a Two Way message exchange)
In the case where the message is an eb3:Error for a message containing any of the above Action
value, it is RECOMMENDED that the wsa:Action value reuses the same value, with .error as
additional suffix.
Note that the wsa:Action attribute MUST be an IRI as defined in [RFC3987]and has basically the
same structure as an URL.
If a value different from these recommended values is to be used (e.g. to target the message to a
particular Web Service), then this SHOULD be indicated using the the WS-Addressing processing
mode parameter as defined in section 2.7.1.3 . There is no S12:role="http://docs.oasisopen.org/ebxml-msg/ebms/v3.0/ns/part2/200811/nextmsh" on the wsa:Action block
as it is the ultimate receiver of the SOAP message, not ebMS intermediaries, that needs to interpret
the value of wsa:Action.
Another situation in which the default values are not to be used for wsa:Action is when the
reference parameter is used to route Web Services protocol messages that have required values. For
instance, WS-ReliableMessaging [WSRM12] reserves the value http://docs.oasis-open.org/wsrx/wsrm/200702/CreateSequence for the action of a sequence creation message.
Using wsa:ReplyTo:
Some Endpoint MSHs MAY decide to make a more advanced use of WS-Addressing, e.g. by using
the wsa:ReplyTo EPR for providing response message routing information in a two-way MEP,
instead of relying on P-Mode configuration. Reliance on wsa:ReplyTo for the routing of a response
message is neither necessary nor required, as the P-Mode associated with the MEP that describes
this response will normally contain sufficient routing information (e.g. in form of the destination EPR for
this response).
2.7.1.1 Addressing.Address
Addressing.Address indicates the address URI of the WS-Addressing endpoint reference. In a multihop context where the routing function is used, its value is expected to be: http://docs.oasisopen.org/ebxml-msg/ebms/v3.0/ns/part2/200811/icloud.
2.7.1.2 Addressing.EPR
The EPR parameter is composed of the sub-element RoutingInput. Addressing.EPR.RoutingInput
representing the value of the RoutingInput element that is used as the reference parameter of the WSAddressing EPR. The parameter is composed of the following optional sub-elements which define the
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 36 of 126
value to use in the child elements of RoutingInput. The mapping of these parameters to the child
elements is analogous to the mapping of the existing P-Mode parameters.
Addressing.EPR.RoutingInput.Initiator.Party;
Addressing.EPR.RoutingInput.Initiator.Role;
Addressing.EPR.RoutingInput.Responder.Party;
Addressing.EPR.RoutingInput.Responder.Role;
Addressing.EPR.RoutingInput.BusinessInfo.Service;
Addressing.EPR.RoutingInput.BusinessInfo.Action;
Addressing.EPR.RoutingInput.BusinessInfo.Properties[];
Addressing.EPR.RoutingInput.BusinessInfo.MPC
Notes:
The definition of the EPR parameter does not include sub-elements for all children of the
ebint:RoutingInput element. For example, there is no parameter for configuration of the
MessageInfo element. It is expected that, when used, these values will be derived in some
way from the message being sent and that the configuration of this derivation is
implementation dependent.
The content of the ebint:RoutingInput XML header in ebMS SOAP messages MUST
conform to the RoutingInput schema. This does not mean that all elements defined as
required in the RoutingInput schema must be defined in the P-Mode. An MSH SHOULD set
the values of elements not defined in the EPR based on the inferred values as described in
section 2.6 . The EPR in the P-Mode should define values for the effective routing input
elements.
For reasons of reuse of types and elements defined in the ebMS 3.0 XML schema, the
ebint:RoutingInput contains a CollaborationInfo group. This group contains a
ConversationId element. This value of this element is not set via a P-Mode parameter,
and is left to implementations. It MAY be set in ways to support monitoring:
A reverse message containing an ebMS error or receipt for an ebMS message MAY
reuse the ConversationId of that message.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 37 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 38 of 126
sending endpoint, containing an address that does not need be resolved by the I-Cloud routing
function, meaning these RM signals are directly sent back to the MSH without multi-hop routing. In this
case no value SHOULD be specified for Pmode[1].Reliability.AtLeastOnce.Contract.AcksTo.
The use of the EPR.RoutingInput extension will generally be required for non-ebMS messages (e.g.
RM protocol messages) and may be required for signals (eb3:Receipt, eb3:Error) although the
reverse routing of these messages may rely on information provided in the WS-Addressing header of
the related request message (wsa:ReplyTo) as described in section 2.6.2.
The P-Mode unit that governs the Initiator edge-hop (linking the Initiator endpoint to the first
ebMS Intermediary on a multi-hop path originating in the Initiator). The ID of this P-Mode
(PMode.ID) MUST be of the form: <ID>.init, where <ID> is a valid value for PMode.ID. This
unit is called the init P-Mode for the multi-hop MEP.
The P-Mode unit that governs the Responder edge-hop (linking the Responder endpoint to the
last ebMS Intermediary on a multi-hop path originating in the Initiator). The ID of this P-Mode
(PMode.ID) MUST be of the form: <ID>.resp, where <ID> is the same value used in the
PMode.ID for the corresponding Initiator edge-hop. This unit is called the resp P-Mode for
the multi-hop MEP.
The ebMS 3.0 Core Specification states that the optional pmode attribute of the eb3:AgreementRef
element, if used, contains the Pmode.ID parameter. In a multi-hop context, it MUST contain the
Pmode.ID parameter without the .init and .resp suffixes.
As the two edge hops of a same multi-hop path used by an MEP instance are now controlled by two
different P-Mode units, these two P-Mode units must be aligned for proper interoperability.
Some P-Mode parameters are expected to be shared between an init P-Mode and its resp
counterpart P-Mode, while other parameters are likely to be different, in order to accommodate
different MEP binding conditions on each edge-hop.
The following P-Mode parameters MUST be common between two related P-Mode units:
PMode.ID (with .init appended for the init P-Mode unit, and .resp appended for the resp
P-Mode unit.)
PMode[1].Protocol.SOAPVersion (as the SOAP envelope must not change over a multi-hop
path.)
All the Security parameters (PMode[1].Security and sub-elements), except for PMode[1].
Security.SendReceipt.ReplyPattern which may be different in the init P-Mode and the resp
P-Mode units.
Some P-Mode parameters are likely to be different between two related P-Mode units:
PMode.MEPbinding, which may vary over edge-hops for the same MEP (as shown in the
section MEPs and Channel Bindings).
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 39 of 126
In order to minimize the impact over an already deployed endpoint MSH when upgrading a
point-to-point exchange into a multi-hop exchange, the existing P-Mode model as defined in
ebMS core V3, is not extended with new MEP binding values in order to implement the new
multi-hop bindings (edge bindings) defined in 2.4.7 and 2.4.8 .
This allows each unit to have its own value for the MEPbinding parameter indicating how
messages are exchanged over the edge hop:
o
For the init unit it defines the exchange between the Initiator MSH and the first
Intermediary MSH;
For the resp unit it defines the exchange between the last Intermediary MSH and
the Responder MSH
PMode[1].Protocol.Address: The P-Mode deployed on the Initiator side will update this to
the URL of the immediate Intermediary MSH. (In case of a Pull MEP binding where the
endpoint MSH acts as Initiator, this address indicates the URL of the Intermediary to be pulled
from.) Note that in a multi-hop path, some hops may use HTTP and others SMTP transport.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 40 of 126
WS-SecureConversation messages used for establishing and managing the security context.
This routing input is obtained from Reference Parameters associated with the destination EPR. Such a
Reference Parameter value SHOULD be specified in the EPR.RoutingInput P-Mode parameter
associated with the destination.
The following rules apply when creating reliable sequences and secure conversations for multi-hop:
An end-to-end reliable (RM) sequence is always associated with a unique destination MSH,
although it MAY be used for several types of message exchanges governed by different PModes, if all these messages require the same level of reliability QoS (see the P-Mode
parameters: AtLeastOnce, AtMostOnce, ExactlyOnce). It is however RECOMMENDED that all
messages sent over the same sequence, are sent over the same MPC.
Messages with different available routing inputs (see 1.6.4) may share the same RM sequence
provided they are routed to the same destination. This routing is determined by a subset of the routing
input: the effective routing input. The routing function of the I-Cloud may be configured to route
messages with different Effective routing inputs to the same destination. However, for robustness of
the reliability mechanism it is RECOMMENDED to only send messages with same effective routing
input over the same RM sequence. The same recommendation applies for secure conversations.
The P-Mode parameter PMode[1].Reliability.Correlation can help enforce that only messages with
the same Effective routing input will be assigned to a particular RM sequence. For example, if the
routing is determined by the following Effective routing input:
1. eb3:CollaborationInfo/eb3:Service
2. eb3:CollaborationInfo/eb3:Action
3. eb3:PartyInfo/eb3:To/eb3:PartyId
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 41 of 126
Then the following P-Mode value will ensure (or specify) that only messages sharing the same values
for the above elements are assigned to the same RM sequence:
PMode[1].Reliability.Correlation =
ebint:UserMessage/eb3:CollaborationInfo/eb3:Service,
ebint:UserMessage/eb3:CollaborationInfo/eb3:Action,
ebint:UserMessage/eb3:PartyInfo/eb3:To/eb3:PartyId
if an RM sequence is intended to be shared by messages governed by different P-Modes, this will only
be possible if these P-Modes use the same Correlation expression, and if messages across these PModes share same values for these expressions.
NOTE: the Correlation expression does not have to replicate the effective Routing input elements. It
can use a different expression (e.g. an MPC value, a message property) as long as it is known that the
same value for this expression will result in the same routing destination.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 42 of 126
b. Receiving-side pulling and Sending-side pushing. This case is illustrated in Section 2.4.7.1
Pushing Messages from the Sender Endpoint (Case 2), involving pushing from the Sending
endpoint (first edge hop) and Pulling from Receiving endpoint (last edge hop).
In both cases, the routing function inside the I-Cloud may be configured for any combination of pull
and push along the multi-hop path, and any pull is only a one-hop pull (Pull may be relayed, as in the
"pull-on-pull" forwarding pattern (d), section 2.5.3 ) , For this reason, there is no use for sending
eb3:PullRequest signals reliably from the initiating endpoint, as the resending MSH is not the one
receiving the resent eb3:PullRequest. Eb3:PullRequest signals SHOULD NOT be sent reliably,
in spite of the response expected to be sent reliably. This is controlled by a new P-Mode parameter
that overrides the default behavior for One-Way / Pull MEPs:
Pmode[1].Reliability.AtleastOnce.ReliablePull: Indicates whether the eb3:PullRequest signal
must be sent reliably or not. If false, the initiating endpoint will not send eb3:PullRequest signal
messages using reliable messaging.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 43 of 126
3 Message Bundling
This specification defines a new protocol to bundle message units in ebMS messages and to submit,
send, receive, forward and deliver these units as a single SOAP message. This protocol extends the
ebMS 3.0 Core Specification and is compatible with the multi-hop profile.
3.1.2 Rationale
The main rationale for bundling is to handle situations where two endpoints exchange a large number
of small messages in a short time interval, where efficiency of message processing is an issue and
where it is acceptable that some messages submitted to an MSH are not always sent immediately.
This happens in situations such as the following:
A (legacy) batch business application is scheduled to run once every 24 hours outside office
hours to process requests. These requests have accumulated over the previous 24 hours and
many of them have the same source. The requests are processed and the responses are all
submitted to the MSH in a short period.
An application uses messaging to synchronize or replicate large sets of relatively static data
with business partners. With existing partners, only the updates need to be exchanged, so the
required bandwidth is limited. However, setting up the exchange for new partners causes a
large number of messages to be exchanged.
A system has been unavailable for some time or has been disconnected from business
partners due to network issues. Once it resumes processing its backlog, it causes a large
number of messages to be sent.
In situations like these, an MSH that sends the outgoing response messages can use bundling to
share the overhead of processing a SOAP message -including security and reliability quality of
service- across several message units. Bundling increases the processing throughput of an MSH and
allows it to scale to a higher volume of transfer without increasing processing capacity.
A major benefit of supporting bundling at the message protocol level is that it obviates the need for a
bundling or batching mechanism at the business document level. This simplifies the design and
implementation of business applications that process these documents.
3.1.3 Requirements
This specification aims to address the following requirements:
For the Producer and Consumer layers, the semantics of bundling is equivalent to sending
and receiving a sequence of distinct messages.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 44 of 126
The processing model for the bundle is similar to the model for non-bundled messages (see
section 4.1 in [EBMS3CORE]), and the order of processing headers (security, reliability, ebMS
for inbound, the reverse for outbound) is the same as for non-bundled messages.
Business partners must be able to control what message units are bundled, and to control
properties of the resulting bundle (such as its maximum size or the maximum delay) using
processing mode parameters.
There is no requirement that bundling only concerns messages that have been submitted to
the MSH in a consecutive way or as an explicit bundle. In other words, bundling may be
applied (internally in the MSH) to an arbitrary set of submitted messages, regardless of their
submission time or mode.
Implementations MAY also offer an interface to allow more explicit control over bundling or to
allow for submission of bundles, as long as the constructed bundles comply with the agreed
bundling parameters.
Errors occurring in message units affect processing of related units in the bundle, but not of
unrelated units.
SOAP header: the unique eb3:Messaging element contains the header of each message
unit - either an eb3:UserMessage element or an eb3:SignalMessage element.
SOAP Body: At most a single child element (payload of one of the bundled messages) MUST
be present in the Body, in order to comply with WS-I Basic Profile requirements. This MUST
be the payload (if any) of the primary message unit. Every other payload MUST appear as a
MIME attachment. The payload in the Body is therefore referred to by the eb3:PayloadInfo
element of the primary message unit header.
Attachments: the payloads of each message unit other than the primary unit become MIME
parts of the bundled message. As is the case for the payload included in the SOAP Body, they
are referred to by the eb3:PayloadInfo element of the related message unit header. The
relation between the payload information element and the MIME part is based on MIME
Content-ID values, which are required to be globally unique [RFC2392].
There is no requirement that the order of payloads is in any way related to the order in which the ebMS
message units are placed in the eb3:Messaging container.
When receiving a message bundle, an ebMS MSH MUST process the first child element of the
eb3:Messaging container element (in message unit order) as the designated primary message unit.
When bundling multiple message units, a sending MSH must similarly insert the intended primary
message unit as the first element. Any following message units are processed as secondary message
units.
A message bundle that contains no secondary message units is equivalent to, and indistinguishable
from, a regular ebMS message that contains only a single message unit.
The value of the eb3:MessageInfo/eb3:Timestamp element in each message unit SHOULD
reflect the time at which the message unit is created, NOT the time at which the message unit is
bundled with other message units and sent. As a consequence, the values of this element in different
units in a bundle may be different. As defined in [EBMS3CORE], these time stamps have an XML
schema dateTime type and MUST be expressed as UTC. If the SOAP message is protected using
WS-Security, and the wsse:Security header contains a wsu:Timestamp/wsu:Created element,
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 45 of 126
then that time stamp MUST be more recent than any of the eb3:MessageInfo/eb3:Timestamp
values at it reflects the time the SOAP message containing all message units is serialized for
transmission.
Message bundling applies at the level of individual message exchanges. User message units may be
one way exchanges, or the request or response messages in a two way exchange. A signal message
may pull or be a response to a user message (which, in a two way exchange, can be the business
request or a business response). As an example, subject to the bundling control mechanism of 3.3 a
one way user message unit from MSH A to MSH B can be bundled with:
request user message units from A to B that are the first half of a two way message
exchange.
In the ebMS 3.0 Core Specifications, cross-references exist at the level of message units, and
bundling does not change this. Each message unit has its own eb3:MessageId, and can refer to
another user message unit using eb3:RefToMessageId. Similarly, error messages can reference
individual message units using the eb3:Error/@refToMessageInError attribute. A bundle has no
identity and cannot be referenced.
The message security parameters of the primary message unit determine the way the entire
message bundle is processed. If the P-Mode of this unit is configured to sign ebMS SOAP
headers, body and any attached payloads, then the signature MUST also cover any header
content and payload from the other message units. This because the SOAP message has a
single wsse:Security header that contains a single ds:Signature for the SOAP
message, and not separate ds:Signature elements for each message unit. The
certificate(s) used will be the certificate(s) specified for the primary unit. If the P-Mode is
configured to encrypt the message payloads, all message payloads related to all message
units in the bundle will be encrypted using the configuration (algorithms, certificates) specified
for the primary unit.
Non-repudiation of receipt is handled at the ebMS message unit level. For each user message
that requires a receipt, a separate receipt signal is generated, configured via the
Pmode[1].Security.SendReceipt and Pmode[1].Security.SendReceipt.ReplyPattern
parameters of the received message unit. When the receipt is expressed as an
ebbp:NonRepudiationInformation element, the ds:Reference elements in the
ebbp:MessagePartNRInformation elements MUST cover all elements in the received
message that relate to the message unit. The receipt MAY cover elements related to other
message units. In particular, a reference to the eb3:Messaging container (using its id
attribute value) covers all content in that container, not just content related to the unit the
receipt is generated for. For non-repudiation of receipt, the receiving MSH MUST sign the
receipt using the configuration (algorithms, certificates) specified for the received unit.
The reliable messaging parameters of the primary unit will apply to the entire bundle.
Acknowledgments and any required resending of messages apply to the entire bundle. The
entire bundle counts as a single message in a single sequence. When InOrder delivery is
specified for the primary unit, the bundle must be sent using InOrder reliable messaging and
bundles MUST only include sub-series of message units without leaving gaps. I.e. when
message units 1-10 are submitted, it is possible to bundle 1-4 and 5-10 in two bundles, but not
to bundle 1, 2 and 4 in the first bundle and 3, 5-10 in the second bundle.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 46 of 126
Transport configuration such as the protocol, the URL or IP address of the destination or (in a
multi-hop context) the next MSH, and any transport security to be applied is based on the
configuration of the primary unit.
The message will be packaged as a SOAP 1.1 or 1.2 message based on the configuration of
the primary unit P-Mode.
Bundling is an operation in the ebMS module of an MSH. As defined in the ebMS Core Specification,
this module operates before the reliability and security module on the sender side. By definition, the
message (the bundle) must be complete on the sender side before applying any reliability and security
operations. Even if the primary message unit is known from the start, no signing is done until the
message is complete. In the WSI Reliable Secure Profile [WSIRSP10], a signature protects all the
SOAP Body, any contained payloads, and several SOAP headers. In compliance with this approach,
all message unit headers of a bundle are signed together.
The submit operation of the Sending MSH is extended to allow the Producer to submit not just
the data needed to generate a single message unit (which will become the primary message
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 47 of 126
unit), but to also provide a (possibly empty) list of such data structures, which are used to
generate a message bundle containing the primary and any secondary message units. In this
interpretation, the Producer must be aware of the constraints of the parameters defined in
section 3.3 and the Sending MSH must validate that the submitted bundle complies with its
configuration. If this is not the case, the EBMS:0030 bundling error (see 3.5 ) is generated in
the Sending MSH.
The submit operation is not modified. Instead, the Sending MSH determines (subject to the
control parameters described in section 3.3 ) whether to send a submitted user message unit
as an unbundled message, to bundle it as secondary message unit to an available primary
unit, to designate it as a primary unit that other (separately submitted) message units can be
bundled with, or to defer any decision on bundling for some specified time.
An implementation of this protocol MAY support either or both approaches. For interoperability with
other implementations, the only requirement is that the agreed values for the bundling parameters of
section 3.3 are correctly applied in the exchanged message bundle.
In the second situation, where bundling is an MSH-internal operation, more optimizations are possible.
This is because multiple business applications may submit units of different types (e.g. one application
submits invoices and the other updates catalogs) that have the same destination and can be bundled.
Another advantage is that the bundling logic is not duplicated in the various business applications.
In situations where there is more than one option for a unit (send unbundled, send as primary unit with
other secondary units attached, send as secondary), the behavior of the MSH is not specified. An
implementation MAY take factors like system or network load, number of pending message units,
connectivity to the business partner into consideration. An event (see section 3.7 for discussion) that
MAY cause a bundle to be formed and sent is an incoming pull request.
Severity: Failure
Description: a message bundle is being processed that has a structure that is not compatible
with the bundling processing mode parameters of one or more user message units in the
bundle.
While this error concerns the bundling, the bundle as such has no identity and therefore the signal
message containing the error MUST reference the primary message unit as the unit that represents
the bundle.
A receiving MSH SHOULD generate this error in the following situations:
A secondary message is present that does not have the primary message unit listed in its
Pmode[].bundling.compatibility.pmodelist list.
The message is a bundle and the overall size of the message is greater than
Pmode[].bundling.maxsize of the primary message unit.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 48 of 126
A message unit with value always for Pmode[].bundling.policy is submitted at time t, but no
message unit in its Pmode.compatibility configuration is submitted before
t+Pmode[].bundling.maxdelay.
Section 3.10.3 discusses delivery policies for bundles containing units that have errors and introduces
a second new type of error. An ebMS Intermediary is to forward message bundles transparently and
MUST NOT generate any of these errors.
3.6.1 Compatibility
First of all, Pmode[].bundling.compatibility is typically reflexive: multiple message units of the same
type can normally be bundled as the sender would process them in the same way and any
intermediaries in an I-Clode would route them (assuming no changes to the routing function) to the
same ultimate destination. However, a potential exception to this are cases where a message unit of
some type transmits very large payloads. In that situation it may be acceptable to bundle the unit with
other small units, but the message would become too big if a second unit of the same type were to be
added. (See section 4 and 6.4.3 for ebMS 3.0 support for handling large messages).
For different message unit types, the Pmode[].bundling.compatibility relation is generally
asymmetric: it is acceptable (but unnecessary) to apply stronger quality of service to a message unit
if it becomes part of a bundle that has units that require it. The reverse is not. This stronger/looser
relation depends on the exact values of processing mode parameters, or combinations of such values.
For instance, a bundle secured using a particular configuration of hashing or signing algorithms, using
other certificates, or a different key length may, in combination, provide the same or better protection
than some other combination of values for these parameters.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 49 of 126
Attention must be paid to message units that require InOrder delivery assurance. These
MUST NOT be bundled with a primary primary message unit that has a value undefined
for the processing parameter Pmode[].bundling.ordering.policy. This is because this value
means the submission order is not preserved in the bundling process.
MUST NOT be bundled with primary message units that have an incompatible value for
Pmode[].reliability.correlation. This is needed to make sure that the units are sent using
the same sequence/group as would have been applied when sent using their own P-Mode.
If no routing parameter is present, the primary user message unit determines the way the
message is processed.
This means that there is no ambiguity about which information is to be used for routing decisions.
Business partners SHOULD set up the Pmode[].bundling.compatibility in a way that makes sure
that message units are only bundled with other primary message units that will be routed to the same
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 50 of 126
ultimate destination. This assumes some knowledge of the routing functions in the I-Cloud. If the
configuration of these functions is unknown or subject to unanticipated changes, the safe option is to
only allow bundling of message units of the same type.
undefined: the order of message units in the eb3:Messaging container has no meaning.
This value means that InOrder delivery MUST NOT be specified for any secondary message
unit in the bundle.
documentorder: the document order ([XDM], section 2.4) of the message units in the
eb3:Messaging container MAY reflect the order of submission and MUST be interpreted as
the required order of delivery of these units. This means that the primary message unit is the
first submitted message and that any secondary message units have been submitted
subsequently, appended to the list of child elements in the eb3:Messaging container.
timestamp. This indicates that the sending MSH units MAY insert units in any order and that
the primary message therefore is not necessarily the oldest message in the container.
However, timestamps on message units MUST reflect their order of submission.
The default value is undefined. This processing mode parameter can be used to control the order in
which message units in a bundle are to be delivered (section 3.10.2 ) and whether units are delivered
in case of errors (section 3.10.3 ).
When using a value other than undefined, the P-Mode configuration SHOULD also specify the use
of InOrder delivery assurance at the reliable messaging level, to make sure that all message units in a
bundle are processed before all message units in a later bundle. A message unit U1 intended to be
processed before a unit U2 MUST either be:
Inserted in a bundle, or packaged as a standalone message, and sent before the message (or
message bundle) containing U2, both using an InOrder delivery assurance; or:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 51 of 126
Inserted in the same bundle as U2, but preceding it in document order (document order
ordering policy) or submitted before U2 and bearing an time stamp older than the time stamp
for U2 (time stamp ordering policy), also both using an InOrder delivery assurance.
The Pmode[].bundling.ordering.scope parameter MUST ONLY be specified when the value for
Pmode[].bundling.ordering.policy is other than undefined. Its value is a list of XPath expressions
that are applied to the message units in a bundle to select subsets of message units at which ordering
is defined. For example:
If both Pmode[].reliability.correlation and Pmode[].bundling.ordering.scope are specified for a PMode, their value MUST be identical.
A value undefined means that the order of message units has no defined meaning. A
receiving MSH MAY process and deliver in any order. It may even deliver them in parallel.
A value of documentorder means that a receiving MSH MUST process and deliver
message units in the order in the eb3:Messaging container.
A value of timestamp means that a receiving MSH MUST process and deliver message
units in the temporal order in the eb3:Messaging container. The receiving MSH MUST sort
the message units based on the value of the eb3:Timestamp in eb3:MessageInfo and
deliver the message units in temporal order, older units first. Any message units having the
exact same time stamp value MUST be delivered in the order in which they occur in the
eb3:Messaging container.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 52 of 126
These requirements only affect the processing of units in a single bundle. They do not impact the
processing of subsequent units sent in other bundles or as standalone messages.
To indicate that a message is not processed because of an error involving another related message
unit in a bundle, an MSH SHOULD generate the following warning:
Severity: Failure
Description: A message unit was not processed because a related message unit failed.
A separate error, indicating the nature of the error, MUST be generated for the unit having caused the
error.
As an example, assume a bundle is sent containing 5 message units. The primary unit specifies the
following P-Mode parameters:
Units 1, 3 and 4 are part of a conversation C1 and units 2 and 5 of conversation C2. The MSH
successfully processes units 1 and 2, but encounters an error in processing unit 3. Since unit 4 is in
the same partition as unit 3, it will not be processed. Unit 5 is processed successfully. A response
message is generated and sent on the HTTP back-channel that consists of a bundle containing
Receipts for messages 1, 2 and 5 and Errors for messages 3 and 4. The error for message 4 is of
type EBMS:0031.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 53 of 126
Large or very large transaction data sets, such as billing data in telecom industry (exchanged
between MVNO and infrastructure providers, roaming partners or telecom service providers
and corporate customers), or payment order sets in the financial services sector.
Image and other multimedia data in healthcare, media and other sectors.
Geo-spatial data.
Transmitting large messages takes time. If the transfer fails and is restarted from scratch, a
lot of data may have to be resent that was already transmitted.
Network or software components may impose limits on message size and connection
timeouts and may cause transfers to be aborted.
Section 2.5.2 defines a store-and-forward model for intermediaries. When applied to large
messages, the delays in transfer of these messages may be unacceptable.
This specification defines multiple new mechanisms to transfer large ebMS SOAP messages that
extend the ebMS 3.0 Core Specification and are compatible with the ebMS bundling and intermediary
features:
Transport restart. This is provided for the HTTP protocol and the push MEP binding using
the AS2 restart feature described in section 6.4.3 . This feature does not support pull
messaging. It is well-suited to point-to-point, push messaging. It can also be used in multi-hop
messaging to transmit (push using HTTP) large messages from an MSH to the next MSH.
Transfer of a large message by splitting the message and transmitting it as a set of smaller
SOAP messages. This is described in this chapter. This feature supports both push and pull
messaging, and limits transfer delays when using store-and-forward intermediaries.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 54 of 126
While the protocol can be used with other Web Services profiles, the main goal is to support transfer
of large ebMS messages. Its main benefits in that context are:
Support for both push and pull message exchange (the AS2 restart feature of 6.4.3 is limited
to push exchanges);
The upper bound of the delay caused by a store-and-forward intermediary and the temporary
storage space needed by such an intermediary are proportional to the fragment size, rather
than to the message size.
Fragments can be routed individually through a multi-hop network. Fragments may follow
different paths from sender to recipient. If one intermediary fails and traffic is re-routed via an
alternative route, only the undelivered fragments need to be resent.
The protocol can be used with the ebMS message bundling feature of chapter 3 .
We will refer to the input of the splitting protocol (and the output of the joining protocol) as the source
message, and to the output of the splitting protocol (and the input of the joining protocol) as the result
fragments.
The following diagram illustrates the layering of SOAP services. Some services are higher-level than
the splitting/joining protocol and some are lower-level services. Within a processing pipeline, the
splitting protocol can be positioned relative to other SOAP protocols depending on specific
requirements. For instance, if WS-Security is used as a higher level service to sign and encrypt
messages, signatures of incoming messages can only be validated when all fragments are received
and the larger message is reassembled. If WS-Security is used as the lower level service, each
fragment can be processed as it comes in, but the number of security operations to perform
increases.
When used in combination with higher level SOAP modules, these modules may require additional
binding or configuration, such as adding specific SOAP headers, in addition to the
MessageFragment header. Section 4.4.1 specifies such additional requirements for WS-Addressing,
and section 4.4.2 specifies a default binding for ebXML Messaging version 3.0. Other Web Services
protocols or profiles could similarly define such requirements as bindings.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 55 of 126
4.2.2 MessageFragment
Figure 16: MessageFragmentType shows the structure of the MessageFragment schema type
definition.
The required attribute href identifies the MIME part containing the message fragment.
The attribute groups S11atts and S12atts define the SOAP 1.1 and 1.2 attributes. These express
how SOAP processors process MessageFragment structures.
The following elements are in MessageFragment:
GroupId identifies a set of related messages and specifies that these messages are
fragments derived from the same single source message. The value of GroupId MUST be a
globally unique string.
The optional MessageSize element indicates the size (in bytes) of the message after
reassembly. An MSH can use this to compute status information about a message that is
being received, such as the percentage of data that has been received, and the amount of
storage space needed to receive the message.
FragmentCount indicates the number of fragments that a message has been split into. A
receiving MSH can use this to determine if it has received all fragments in a group. At least
one fragment must specify fragment count. This supports an implementation model where the
splitter function works in streaming mode or at the end of a pipeline, and the number of
fragments is not known until the last part of the message is processed.
Action is the value of the SOAP 1.1 SOAPAction header or the SOAP 1.2 action
parameter.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 56 of 126
Content-Type: the content type of the source message envelope. The fixed value of this
optional element is Multipart/Related.
Boundary: the boundary separating the MIME parts in the source message envelope.
Start: the value of the start parameter. This identifies the first MIME part in the MIME
envelope that contains the SOAP envelope of the source message, without the < and >
delimiters.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 57 of 126
To explain the semantics of the splitting and joining operations, we describe these operations as
format transformations. The splitting operation in the sending MSH can be viewed as an operation on
a MIME envelope that extracts values from the MIME header to build the MessageFragment
element. The joining operation in the receiving MSH can be viewed as an operation that constructs a
MIME envelope from a MessageFragment element. Note that SOAP processors may use optimized
internal data structures for messages and may not serialize messages that are exchanged between
SOAP modules for efficiency. This specification does not assume a particular processing or internal
data structures and the transformation analogy does not require implementations to use MIME
envelopes as interface formats.
As an example, we use the following example from the ebMS 3.0 Core Specification:
SOAPAction: leasing
Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;
start="<[email protected]>"
--MIME_boundary
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: <[email protected]>
<?xml version='1.0' ?>
<S11:Envelope xmlns:S11="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:eb="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/core/200704/">
<S11:Header>
<eb:Messaging S11:mustUnderstand="1">
<eb:PayloadInfo>
<eb:PartInfo href="cid:[email protected]" />
<eb:PartInfo href="#carData" />
</eb:PayloadInfo>
</eb:Messaging>
</S11:Header>
<S11:Body>
<t:Data id="carData" xmlns:t="http://cars.example.com">
<t:Mileage>20000</t:Mileage>
<t:OwnerPicture href="cid:[email protected]"/>
</t:Data>
</S11:Body>
</S11:Envelope>
--MIME_boundary
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 58 of 126
Content-Type: image/tiff
Content-Transfer-Encoding: binary
Content-ID: <[email protected]>
...binary TIFF image of the car...
--MIME_boundary
Content-Type: image/tiff
Content-Transfer-Encoding: binary
Content-ID: <[email protected]>
...binary TIFF image of the car's owner...
--MIME_boundary
Assuming the message will be split in two fragments, the first MessageFragment could look like the
following:
<mf:MessageFragment
href="cid:[email protected]">
<mf:GroupId>fa053eaf-47ed-4862-b70b-e5acbd94061a</mf:GroupId>
<mf:FragmentCount>2</mf:FragmentCount>
<mf:FragmentNum>1</mf:FragmentNum>
<mf:MessageHeader>
<mf:Content-Type>Multipart/Related</mf:Content-Type>
<mf:Boundary>MIME_boundary</mf:Boundary>
<mf:Type>text/xml</mf:Type>
<mf:Start>[email protected]</mf:Start>
</MessageHeader>
<mf:Action>leasing</mf:Action>
</mf:MessageFragment>
The element CompressedMessageSize specifies the size (in bytes) of the compressed
SOAP message.
The following summarizes the differences between the compression feature and other mechanisms to
reduce file size:
AS4 compression applies to an individual payload. The compression feature may be more
effective in case of a message containing multiple payloads.
The splitting/joining protocol requires each fragment to carry a SOAP header that contains the
MessageFragment element and possibly additional SOAP headers. This increases the
amount of data to be transmitted.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 59 of 126
Uniquely identifies the group of related message fragments and sets the GroupId element
accordingly. (Profiles MAY specify how the identification is done; section 4.4.2 describes this
for ebMS 3.0).
Removes the MIME header from the source message and extracts the relevant metadata
needed to be able to construct the MessageHeader header and Action elements as
described in section 4.2.3 .
Optionally applies compression as specified in section 4.2.4 and 4.5 and sets the
CompressionAlgorithm and CompressedMessageSize elements accordingly.
Splits the remaining message in contiguous parts. Note that this is a splitting operation that
considers the MIME envelope as a byte stream. It is unaware of the MIME structure of the
source message. A single MIME part from the source message may start in one fragment,
continue in another and end in a third part. A fragment may contain a complete MIME part,
part of one, the end of one part and the beginning of the next, etc.
If the source message is a SOAP with attachment message, the SOAP message
containing the fragment will also be a SOAP with attachments message. An MTOM
source message will result in an MTOM fragment message. The SOAP envelope versions
in the source message and the SOAP envelope for each of the fragments MUST also
match, so a SOAP 1.2 source message results in SOAP 1.2 SOAP fragment messages.
The Content-Type of the MIME part containing the SOAP envelope will be text/xml
for SOAP with attachments messages and application/xop+xml for MTOM
messages.
The MIME boundary and Content-Id of the SOAP root part in the SOAP message of
the fragment MUST be unique and MUST differ from the corresponding values in the
source message. The range of data from the source message that is included in the
fragment MUST be inserted as a single MIME part, immediately following the part
containing the SOAP envelope.
The MSH MUST NOT insert any MIME part other than these two MIME parts.
The MSH MUST provide a value for the href attribute of the MessageFragment in the
SOAP envelop that identifies the data part using its content identifier.
Additional SOAP headers MAY be added, for instance to support message routing. This
higher-level functionality is dependent on the other SOAP modules, such as WSAddressing or ebMS (see sections 4.4.1 and 4.4.2 ).
Continue, for each of these generated SOAP messages, processing them using the lower
level SOAP modules.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 60 of 126
As an example, here is a hypothetical generated first MIME part for the ebMS example message. It
contains the first part of the source message. The entire SOAP envelope, and the beginning of the first
TIFF image fit in the first fragment. Note that the MIME boundary of the source message is just text
data in the fragment.
SOAPAction: leasing
Content-Type: Multipart/Related; boundary=37b648b1-44af-459f-a533bbf8ed6a93be; type=text/xml; start="<[email protected]>"
--37b648b1-44af-459f-a533-bbf8ed6a93be
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: <[email protected]>
<?xml version='1.0' ?>
<S11:Envelope
xmlns:S11="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:mf="http://docs.oasis-open.org/ebxml-msg/ns/v3.0/mf/2010/04/">
<S11:Header>
<mf:MessageFragment
href="cid:[email protected]">
<mf:GroupId>fa053eaf-47ed-4862-b70b-e5acbd94061a</mf:GroupId>
<mf:FragmentCount>2</mf:FragmentCount>
<mf:FragmentNum>1</mf:FragmentNum>
<mf:MessageHeader>
<mf:Content-Type>Multipart/Related</mf:Content-Type>
<mf:Boundary>MIME_boundary</mf:Boundary>
<mf:Type>text/xml</mf:Type>
<mf:Start>[email protected]</mf:Start>
</mf:MessageHeader>
<mf:Action>leasing</mf:Action>
</mf:MessageFragment>
<!-- OTHER HEADERS OMITTED, SEE SECTION 4.4.2 -->
</SS:Header>
<S11:Body />
</S11:Envelope>
--37b648b1-44af-459f-a533-bbf8ed6a93be
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <[email protected]>
--MIME_boundary
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: <[email protected]>
<?xml version='1.0' ?>
<S11:Envelope xmlns:S11="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:eb="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/core/200704/">
<S11:Header>
<eb:Messaging S11:mustUnderstand="1">
<eb:PayloadInfo>
<eb:PartInfo href="cid:[email protected]" />
<eb:PartInfo href="#carData" />
</eb:PayloadInfo>
</eb:Messaging>
</S11:Header>
<S11:Body>
<t:Data id="carData" xmlns:t="http://cars.example.com">
<t:Mileage>20000</t:Mileage>
<t:OwnerPicture href="cid:[email protected]"/>
</t:Data>
</S11:Body>
</S11:Envelope>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 61 of 126
--MIME_boundary
Content-Type: image/tiff
Content-Transfer-Encoding: binary
Content-ID: <[email protected]>
... BEGINNING of the data for the binary TIFF image of the car ...
--37b648b1-44af-459f-a533-bbf8ed6a93be
Extract the value of GroupId and FragmentNum. Based on the value of GroupId, the MSH
may classify the fragment message as the first fragment for a new message transfer, or a
fragment in a group for which other fragments were previously received.
If the fragment is part of a group for which a previously received fragment was rejected,
the fragment message is rejected.
If a fragment message with the same values for GroupId and FragmentNum was
previously received, the message is rejected and all data from previously received
fragments for the group is deleted.
Otherwise, the message fragment data is extracted and stored, indexed on GroupId
and FragmentNum. A counter counting the number of received fragments is (initialized
at 0 if not yet set and) incremented. The storage in use to hold the fragment data related
to the group is (initialized at 0 if not yet set and) incremented.
If the size of the MIME data part exceeds the specified maximum, the message is rejected.
If the fragment message is accepted, the data content MIME part MUST be extracted and
persisted. The SOAP header part serves no further purpose and MAY be deleted.
If the message fragment that is received is the last fragment in a group, the message
fragments are reassembled. If the message is compressed, it MUST be decompressed
The corresponding values of the eb3:UserMessage header are compared and MUST
match.
The message is processed as if the message was received as a single large message, with
the relevant MIME parameters taken from the MessageFragment group.
In all situations where a message is rejected, an error is generated and all data related to the
GroupId is removed. The MSH MUST record the value for GroupId with status rejected and reject
any subsequent fragments with this GroupId.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 62 of 126
For security reasons the receiving MSH MAY identify fragment sets and messages on more values
than just the value of GroupId. See section 4.7 for discussion.
Any WS-Addressing headers targeted to other SOAP role that are used for routing purposes.
The wsa:MessageId MUST NOT be copied. If the source message contains a wsa:MessageId,
distinct unique WS-Addressing Message IDs MUST be generated for and inserted in all fragment
messages.
The MessageFragment element is targeted to the SOAP ultimate receiver and MUST be
understood. Intermediaries do not split messages or join fragments.
Splitting and Joining is a higher-level SOAP module than ebMS pull authorization; i.e. pull
requests MUST be properly authorized, based on P-Mode configuration, and return SOAP
message fragments.
When an ebMS message is split and separate fragment messages are sent, then the
processing mode parameters for WS-Security and reliable messaging apply at the level of
fragments, not at the level of the source message. Message fragments are individually
secured and sent reliably. Message acknowledgments, retries and duplicate elimination apply
at the level of message fragments.
The content of the eb3:Messaging MUST be copied from the source message to the SOAP
header carrying the fragment messages, with the following exceptions:
If more than one user message is present, only the first user message is used to
construct the fragment envelope, with the following exceptions:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 63 of 126
The joining protocol reassembles fragments in groups based on sequence number. It is not
needed to use InOrder delivery as the joining MSH will rearrange the data parts as
appropriate.
An MSH SHOULD use the value of eb3:MessageId as the value of GroupId to support
monitoring and message tracking.
If the channel binding of the P-Mode has the value Pull and the message is split into multiple
fragments, then each of the fragments is pulled individually. The pull request is authorized for
messages split in fragments using the same parameters as for messages that are not split.
The order in which a sending MSH releases fragments in response to pull requests is
undefined. A sending MSH MAY release the fragment messages in ascending order.
Bundling and message splitting may seem to exclude each other. After all, unbundled user
messages are smaller than bundled messages. However, there are situations where it may
make sense to first bundle and then split. For example, if in some context a message
fragment size of 500 KB is considered optimal, and there are six user messages to be sent,
one of 700 KB and five messages of 25 KB each, then these could be bundled in one large
message, then split into two fragments.
The AS4 compression feature is defined in the AS4 profile. This AS4 feature applies
compression to a single payload. The optional compression feature of the splitting/joining
protocol applies to the complete MIME envelope. So it may be more effective in situations
where the source message contains a large number of small payloads, in particular XML
documents based on a common vocabulary.
To generate a receipt acknowledgment for non-repudiation, the receiving ebMS module needs to
compute hash values for the payload parts (and sign them). This differs from regular ebMS
processing, where the NRR module can reuse the computed digests from the WS-Security module
(validated by that module).
The following diagram shows how splitting/joining fits in the SOAP protocol hierarchy with selected
ebMS functional layers, security and reliability.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 64 of 126
Other bindings to ebMS 3.0 than the binding specified in this section are conceivable and MAY be
specified in other conformance profiles.
4.5 Configuration
The following processing mode parameter control the message splitting/joining protocol:
Pmode[].Splitting: if present, indicates that messages sent using this P-Mode can be split.
4.6 Errors
An MSH MUST generate errors related to the splitting/joining of fragments in a number of situations.
The splitting/joining protocol is typically applied as part of a higher-level standard or profile like ebMS,
and any errors in the protocol are escalated to this higher level. The following table defines the errors
and maps them to ebMS 3.0 errors.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 65 of 126
Error Code
Short Description
Recommended
Severity
Category
Value
Description or Semantics
EBMS:0040
BadFragmentGroup
failure
Content
EBMS:0041
DuplicateMessageSize
failure
Content
EBMS:0042
DuplicateFragmentCount
failure
Content
EBMS:0043
DuplicateMessageHeader failure
Content
failure
Content
EBMS:0045
DuplicateCompressionInfo failure
Content
EBMS:0046
DuplicateFragment
failure
Content
EBMS:0047
BadFragmentStructure
failure
EBMS:0048
BadFragmentNum
failure
Content
EBMS:0049
BadFragmentCount
failure
Content
EBMS:0050
FragmentSizeExceeded
warning
EBMS:0051
ReceiveIntervalExceeded
failure
EBMS:0052
BadProperties
warning
EBSMS:0044 DuplicateAction
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 66 of 126
Error Code
Short Description
Recommended
Severity
Category
Value
Description or Semantics
header that were not specified
in
Pmode[].Splitting.RoutingPro
perties
EBMS:0053
HeaderMismatch
failure
EBMS:0054
OutOfStorageSpace
failure
EBMS:0055
DecompressionError
failure
Processing
Sender and Receiver SHOULD only configure Pmode[].Splitting for processing modes that
provide secure transmission of the GroupId value, by using transport level encryption,
trusted intermediaries and/or by encrypting the MessageFragment SOAP header.
The sending MSH SHOULD generate unpredictable, random, sufficiently long values for
GroupId and SHOULD prevent parties other than the receiving MSH to determine which
values are used.
The receiving MSH SHOULD use distinct value spaces for different Sender MSHs and index
and correlate message fragments on a pair <eb3:Messaging//eb3:From/eb3:PartyId,
mf:MessageFragment/GroupId> rather than on GroupId only.
Profiles of this specification MAY use WS-SecureConversation [WSSC14] to minimize the security
overhead of processing fragment messages as separate SOAP messages.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 67 of 126
The elements that can be used as children of eb3:PullRequest are called selection items. A Pull
signal containing selection items is called a selective Pull signal. Selection items are named after
corresponding message header elements. Only a subset of header elements are eligible as selection
items. Two categories of selection items are considered: (a) simple selection items: these are
elements without children, (b) complex selection items: these are elements with children.
1. Simple selection items:
eb3:RefToMessageId element
eb3:ConversationId element
eb3:AgreementRef element
eb3:Service element
eb3:Action element
The selection semantics of such items is: messages from the targeted MPC will be pulled only if they
contain a header element matching exactly the selection item. For example, the selection item:
<eb3:Service>QuoteToCollect</eb3:Service> will not select a message containing:
<eb3:Service type="MyServiceTypes">QuoteToCollect</eb3:Service> due to a
mismatch on the @type attribute.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 68 of 126
eb3:From element element: this item may contain one or more eb3:PartyId elements
and at most one eb3:Role element. The selection semantics is that only messages with
eb3:PartyInfo/eb3:From containing the same elements (including attributes values if
any) as those under this selection item - or a superset of these - will be pulled.
eb3:To element element: this item may contain one or more eb3:PartyId elements,
and at most one eb3:Role element. The selection semantics is that only messages with
eb3:PartyInfo/e3b:To containing the same elements (including attributes values if any)
as those under this selection item - or a superset of these - will be pulled.
Any combination of above selection items (complex and simple) can be used as immediate children of
eb3:PullRequest: such combination has the semantics of a boolean conjunction.
The MSH receiving a selective eb3:PullRequest MUST either:
(a) return a message assigned to the same @mpc that successfully matches the contained selection
items as described in above selection semantics, or:
(b) return error EBMS:0006 (EmptyMessagePartitionChannel ) if no message is currently assigned to
this MPC , that matches the selection items in (a).
Alternates do not modify the way the Request message is transmitted but only modify the way
the Response message is bound to the underlying channel.
Not more than one alternate MEP binding is defined in a P-Mode, besides the preferred MEP
binding.
In order to support this feature, the following new P-Mode parameters are defined:
PMode.MEPbinding.Alternate: defines the alternate transport channel binding for the MEP
defined in PMode.MEP. For example, http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/core/200704/pushAndPull is an alternate channel binding for a
Two-Way MEP where the preferred channel binding is: http://docs.oasisopen.org/ebxml-msg/ebms/v3.0/ns/core/200704/sync.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 69 of 126
parameter is optional even when an MEPbinding.Alternate has been defined: in that case, the
response is assigned to the same MPC regardless of its MEP binding (preferred MEP or
alternate MEP).
Other parameters already defined MUST be used for supporting the alternate MEP binding,
when applicable. For example, when the alternate MEP binding introduces pulling, parameters
such as PMode[].Security.PModeAuthorize and PMode.Initiator.Authorization, are to be
used for governing the authorization of pulling in the alternate MEP binding.
In order to support the alternate MEP binding feature, both an initiating MSH and a responding MSH
MUST understand these P-Mode parameters.
A Responding MSH MUST take the initiative of indicating its use of the alternate MEP binding, by
sending an Error signal with code EBMS:0060 "ResponseUsingAlternateMEP" instead of a response
message, when responding to a request message. For example, shifting from a Two-Way / Sync MEP
binding to a Two-Way / Push-and-Pull MEP binding will be indicated by sending back an EBMS:0060
Error signal synchronously referring to this request, instead of the actual response to the request. The
responding MSH MUST then transmit the actual response message on the alternate MPC (either
push or pull, depending on the alternate MEP binding definition) when this response is available from
its Producer application.
An Initiating MSH MUST accept responses over alternate MPCs when notified with EBMS:0060
"ResponseUsingAlternateMEP" signal, and MUST take the initiative of pulling these responses in case
the alternate MEP defines a Pull mode for the response. In such case, the Initiating MEP MAY pull the
response using selective pulling based on the simple selective item eb3:RefToMessageId, using
the value of eb3:MessageId in the request.
When using an alternate MEP with the same MPC as specified for the preferred MEP, the message
header eb3:Messaging will be same regardless which MEP is used.
When using an alternate MEP to send a response message, the same reliable messaging features
and security features apply as for the preferred MEP.
In case both MEP bindings use the same MPC and when reliable messaging for responses is required
by the P-Mode, a Responding MSH SHOULD send a response over the same reliable messaging
sequence regardless which MEP (preferred or alternate) is used for this P-Mode, In other words, the
entire SOAP header of a response message should not vary whether the message is sent using
preferred or alternate MEP over the same MPC.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 70 of 126
6.2 Pmode[1].Addressing
The multihop protocol uses an Addressing group containing an Endpoint Reference group, defined in
section 2.7.1
Addressing.Address
Addressing.EPR.RoutingInput
Addressing.EPR.RoutingInput.Initiator.Party
Addressing.EPR.RoutingInput.Initiator.Role
Addressing.EPR.RoutingInput.Responder.Party
Addressing.EPR.RoutingInput.Responder.Role
Addressing.EPR.RoutingInput.BusinessInfo.Service
Addressing.EPR.RoutingInput.BusinessInfo.Action
Addressing.EPR.RoutingInput.BusinessInfo.Properties
Addressing.EPR.RoutingInput.BusinessInfo.MPC
Addressing.Action
6.3 Pmode.MEPBinding
This specification defines an extension to the MEPBinding P-Mode to use HTTP pipelining.
A client must be able to send multiple requests before receiving HTTP responses for those
requests.
A server must return responses to requests in the same order that the requests have been
received.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 71 of 126
For MEPbindings involving HTTP 1.1, the default value for this parameter is false. HTTP 1.1 is
currently the only protocol binding substrate supporting pipelining semantics, though other protocols
may emerge with an option to support the basic constraints.
PMode.MEPbinding.Alternate: defines the alternate transport channel binding for the MEP
defined in PMode.MEP. It takes values similar to those in PMode.MEP. For example,
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/pushAndPull is an alternate
channel binding for a Two-Way MEP where the preferred channel binding is:
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/sync.
6.4 Pmode[1].Protocol
This specification adds P-Mode parameters for transport security, controlling the SOAP actor or role
attributes, and large file handling based on protocol restarts.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 72 of 126
agreements. They have been modeled after corresponding elements in [ebCPPA 3.0]. Conformance
profiles MAY further constrain the acceptable values of these parameters.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 73 of 126
These parameters MUST be interpreted in the context of the transport protocol that is used and the
MEP Binding. When using the [AS2-RESTART] protocol, PMode.MEPBinding MUST be set to the
value push.
6.5 Pmode[1].ErrorHandling
The following parameter allows initiators to pull errors related to messages they sent from
intermediaries.
Additional routing information can be attached to errors using the parameters introduced in section
2.7.1
Pmode[1].Errorhandling.Report.SenderErrorsTo.Addressing.EPR
PMode[1].Errorhandling.Report.ReceiverErrorsTo. Addressing.EPR
6.6 Pmode[1].Reliability
6.6.1 Reliability Protocol
Whereas some ebMS 3.0 implementations may only support one reliability protocol, some products
may support multiple protocols, or versions of protocols. An organization may use one reliability
protocol with one trading partner or service and another protocol with another. The following
parameter makes the choice of reliability protocol a configuration option.
The Pmode[1].Reliability.Protocol identifies the reliable messaging protocol, and the version of that
protocol, that is used in a particular message exchange.
Conformance profiles or implementations may limit the choice of reliability protocol or define different
values to indicate other reliability protocols.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 74 of 126
6.7 Pmode[1].Security
6.7.1 Receipts
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 75 of 126
the MPC from which the receipt can be pulled and routing information that supports I-Cloud
routing. The Pmode[1].Security.SendReceipt.Addressing.EPR MUST be specified and the
value of the routing input MUST be derived from it.
6.8 Pmode[1].PayloadService
The AS4 profile defines a payload compression service:
6.9 Pmode[1].ReceptionAwareness
Section 3.2 of the AS4 profile defines for additional P-Mode parameters for reception awareness
[AS4].
Pmode[1].ReceptionAwareness.Replay.Parameters.
Pmode[1].ReceptionAwareness.DetectDuplicates.Parameters
6.10 Pmode[1].Bundling
The following parameters are defined in section 3.3 :
Pmode[].bundling.policy
Pmode[].bundling.compatibility.pmodelist
Pmode[].bundling.maxsize
Pmode[].bundling.maxdelay
Pmode[].bundling.ordering.policy
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 76 of 126
Pmode[].bundling.ordering.scope
6.11 Pmode[].Splitting
The following parameters are defined in section 4.5
Pmode[].Splitting
Pmode[].Splitting.FragmentSize
Pmode[].Splitting.RoutingProperties.
Pmode[].Splitting.Compression.
Pmode[].Splitting.Compression.Algorithm.
Pmode[].Splitting.JoinInterval
6.12 Pmode[].BusinessInfo
When defining an alternate MEP, the following parameter MAY be added to define an alternate MPC:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 77 of 126
7 Conformance
This section defines four conformance profiles that address the four major feature sets or modules
specified here (multihop routing, message bundling, advanced interaction patterns, and message
splitting). The conformance profiles are:
1. one conformance profile for the multi-hop part of this specification called here the
simple multi-hop conformance profile,
2. one conformance profile for the message bundling part of this specification called here
the simple bundling conformance profile,
3. one conformance profile for the extended messaging features - called here the basic
messaging extensions conformance profile,
4. one conformance profile for the large message splitting and joining protocol called here
the simple fragmented message transfer profile,
These four feature sets are largely independent and can be composed in various ways.
These four simple conformance profiles are defined here as addressing the most basic of the
expected usages of this specification. They are not exclusive of other conformance profiles that may
be defined separately outside this specification to accommodate the needs of some user communities.
Such conformance profiles may require a different set of features to be implemented either more
features, or sometimes less if a particular context of use is expected that allows even simpler
implementations.
MSH conformance may be to exactly one of the profiles, or to any combination of profiles.
Each of these conformance profiles is defined by a Conformance Clause.
must support one MEP bridging model (over the four described in 2.5.3): push-on-push .
Must support a routing function as described in 2.5.5, that can process both
eb3:UserMessage header and the ebint:RoutingInput reference parameter header
block.
Must conform to the error handling requirements (2.5.6) and must support at least the
EBMS:0005 ConnectionFailure error and the new EBMS:0020 RoutingFailure.
In addition, when a conforming MSH Intermediary implements additional features specified in this
document, it must conform to all related requirements.
MSH in Endpoint role:
Must support at least the Case 1 edge binding ("first-and-last-push") for one-way MEPs
described in 2.4.7.1 (pushing messages from Sender), and at least the Case 1 edge binding
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 78 of 126
Must support the Endpoint requirements in 2.6, but is not required to support the requirements
for non-ebMS messages (case 3 in 2.6.1). In particular, it must be able to add the
ebint:RoutingInput header at least to ebMS Signal messages it generates. It must be
able to infer the value of ebint:RoutingInput for response messages (2.6.2, item 4).
Must implement all the P-Mode parameters that control the above features.
An endpoint MUST generate and process messages conforming to the CORE level of either
[WSIBP12] or [WSIBP20] depending on the SOAP version used. When using HTTP as a
transport, the requirements of these profiles tagged HTTP-TRANSPORT must also be
complied with.
In addition, when a conforming MSH endpoint implements additional features specified in this
document, it must conform to all related requirements. In particular:
If an endpoint MSH supports WS-Addressing it must then comply with all requirements related
to WS-Addressing, including implementing related P-Mode parameters such as
PMode.Addressing parameters that control the use of WS-Addressing.
If bundling is in use, endpoints and intermediaries must comply with the strict requirements in
section 3.9 (Bundling for Multi-hop section).
In case a conforming MSH receives messages that exhibit multihop features beyond those
required by this conformance profile, it SHOULD generate an EBMS:0008 error
(FeatureNotSupported).
All features referred to in this profile MUST be implemented in conformance to ebMS V3 core
specification, and messages conforming to this profile MUST also conform to the ebMS V3
core specification.
It must satisfy all packaging and bundling rules in section 3.2 that are strict requirements
(MUST or equivalent).
It must implement at least the P-Mode parameter PMode.bundling.policy (section 3.3 ) with
at least values never and always.
It must understand and handle the BundlingError error message (EBMS:0030) , although it is
not required to generate this error when in Sending role, and is only required to generate this
error in Receiving role when either one of Pmode[].bundling.maxsize,
Pmode[].bundling.compatibility or Pmode[].bundling.maxdelay parameters is
implemented and the corresponding error rule stated in 3.5 applies.
A sending MSH must implement at least one of the two ways to control bundling as described
in section 3.4 .
It must satisfy the strict requirements for bundling responses as described in 3.8 .
MUST implement all the P-Mode parameters that control the above features.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 79 of 126
MUST generate and process messages conforming to the CORE level of either [WSIBP12]
or [WSIBP20] depending on the SOAP version used. When using HTTP as a transport, the
requirements of these profiles tagged HTTP-TRANSPORT must also be complied with.
In addition, when a conforming MSH endpoint implements additional features beyond the Simple
Bundling Conformance Profile, it must conform to all related requirements. In particular:
The value Bundling delivery policies, if supported, must be controlled as described in section
3.10.
In case a conforming MSH receives messages that exhibit bundling features beyond those
required by this conformance profile, it SHOULD generate an EBMS:0008 error
(FeatureNotSupported).
All features referred to in this profile MUST be implemented in conformance to ebMS V3 core
specification, and messages conforming to this profile MUST also conform to the ebMS V3
core specification.
In the case of the selective pulling capability, support for the eb3:RefToMessageId and
eb3:ConversationId simple selection items, which MUST NOT be used together in the
same Pull request.
In the case of alternate MEPs, support Two-Way / Push-and-Pull as alternate MEP to a TwoWay / Sync preferred MEP. This means: (a) for an initiating MSH to be able to accept
responses in either mode for any exchange governed by such a P-Mode, and in particular to
pull the response from the alternate MPC in case it received the EBMS:0060
"ResponseUsingAlternateMEP" signal instead of the synchronous response, (b) for a
responding MSH to be able to dynamically re-assign responses to the alternate Pull MPC after
sending back the EBMS:0060 "messageUsingAlternateMEP" signal as synchronous response
to the request message.
MUST generate and process messages conforming to the CORE level of either [WSIBP12]
or [WSIBP20] depending on the SOAP version used. When using HTTP as a transport, the
requirements of these profiles tagged HTTP-TRANSPORT must also be complied with.
A SOAP processor implementation conforms with the simple fragmented message transfer
profile if it satisfies all the MUST and REQUIRED level requirements defined in sections 4.2
and 4.3 .
A WS-Addressing processor conforms with the simple fragmented message transfer profile if
it satisfies all the MUST and REQUIRED level requirements defined in sections 4.4.1 .
As indicated in section 4.4.2 , multiple ebMS bindings for the splitting / joining protocol are
conceivable. An ebMS MSH conforms with the simple fragmented message transfer profile if
it satisfies the MUST and REQUIRED level requirements defined in sections 4.4.2 .
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 80 of 126
version used. When using HTTP as a transport, the requirements of these profiles tagged
HTTP-TRANSPORT must also be complied with.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 81 of 126
Defining separate logical environments for development, test, acceptance and production.
These scenarios are typical of many messaging environments and have been identified in some
deployments of version 2.0 of ebXML messaging. All scenarios use routing based on pattern matching
against SOAP envelope structures, rather than target URI, IP address or content of message
payloads.
When applied to a SOAP message, this expression matches content in the first eb3:UserMessage
element only and selects the destination business partner based on the PartyID value. The restriction
to the first user message element avoids any routing ambiguity in situations where multiple
UserMessage elements are bundled in a single SOAP envelope: all but the first user message
structures are ignored by the routing function.
The second category of message patterns is needed because of the requirement to route messages
other than ebMS user messages, such as ebMS response signals (receipts and errors) and non-ebMS
messages like the sequence lifecycle management messages discussed in section 2.8 . These
messages can be routed using the ebint:RoutingInput WS-Addressing routing parameter. An
example of a pattern matching these messages using the same metadata as the previous pattern is:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 82 of 126
//
ebint:RoutingInput/ebint:UserMessage/eb3:PartyInfo/eb3:To/eb3:PartyId/tex
t()
This third case of routing is similar to a regular pull request message except that there is no periodic
or other scheduling of pull requests (the pull is triggered by an incoming pull request), that there is no
authorization done by the intermediary (this is relayed transparently) and that the incoming request
must wait for the related outgoing request to complete (no decoupling). This pattern only relies on the
mpc attribute value. (Note that it is also possible to route pull signal messages using the previous
pattern, using an appended ebint:RoutingInput header. If such a header is not present, the mpc
attribute value is the only routing input.)
EDI Value Added Networks (VANs) route messages based on partner identifiers in EDIFACT
interchange header segments or ASX X12 Interchange Control Headers.
Many messaging protocols have header elements to identify business partners using codes.
An example are the AS2-From and AS2-To system identifiers of AS2 [RFC4130].
The following expression retrieves the actual partner identifier string for the PartyId
//eb3:UserMessage[1]/eb3:PartyInfo/eb3:To/eb3:PartyId/text()
An intermediary could use this XPath expression to retrieve the transport configuration parameters for
the next node from ebXML messages.
This example adopts the OASIS ebCore Party Id Type [PARTYIDTYPE] notation where
urn:oasis:names:tc:ebcore:partyid-type:iso6523: prefix of a PartyId type attribute
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 83 of 126
value indicate that a code list agency that is registered in ISO 6523. Value 0002 in the ISO 6523
registry is assigned to SIRENE, the business registry for France.
The combination of a Push channel binding for incoming messages with a Pull channel binding for
outgoing messages and the use of PartyId for routing allows ebMS intermediaries to offer a storeand-collect functionality that replicates the mailbox functionality of EDI value-added networks and
SMTP-based message exchanges. This enables the intermediary to support situations where both
business partners have addressability and connection issues: the receiver can receive messages
even if the sender is offline or not addressable, as long as the sender has stored the message on an
intermediary accessible to both.
The routing techniques using XPath or similar pattern matching can also extend beyond the ebMS
Intermediary functions: E.g. another routing practice could be to involve Payload elements, e.g. route
based on some business document content. At the level of the intermediary information from attached
business documents will often not be available due to end-to-end payload encryption. If that is the
case, an approach is to bring-up these crucial payload elements in the header, as message
properties. If the business data is not encrypted at the payload level but available in the SOAP Body,
the type of pattern matching applied to SOAP headers here could be extended to apply to SOAP body
content.
Similarly, the intermediary in the Netherlands would have a single rule to forward messages to
businesses in France to its counterpart in France:
//eb3:UserMessage[1]/eb3:PartyInfo/eb3:To/eb3:PartyId[@type=
'urn:oasis:names:tc:ebcore:partyid-type:iso6523:0002']
A similar requirement is common in environments where multiple government sectors (e.g. healthcare,
criminal justice, social security, immigration) have sectoral (private) networks and messaging
infrastructures that are based on sector-specific identification schemas. For instance, the healthcare
system could use the urn:hl7ii type to identify HL7 V3 instances [HL7ebMSv3]. Other sectors
would use their own, distinct, organization identification mechanisms. A cross-sector routing
mechanism supports collaboration among agencies across sector boundaries without requiring a
single identification scheme.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 84 of 126
A.5 Services
The ebXML document header also supports service-oriented messaging based on the eb3:Service
and eb3:Action elements. An ebMS 3.0 intermediary can use these standard and required header
elements to route request message to services providers and reverse route the response messages to
the service consumers. Their values can be retrieved using the following XPath expressions:
//eb3:UserMessage[1]/eb3:CollaborationInfo/eb3:Service
//eb3:UserMessage[1]/eb3:CollaborationInfo/eb3:Action
As an example, the following pattern matches ebMS messages sent to a Procurement service.
//eb3:UserMessage[1]/eb3:CollaborationInfo/eb3:Service[text()='Procurem
ent']
In many larger environments there will be several (potential or competing) providers of a single
particular service. This means that in practice routing rules are likely to require both a partner identifier
(as described in A.3 ) and a service identifier.
//eb3:UserMessage[1]
[eb3:PartyInfo/eb3:To/eb3:PartyId[@type='urn:oasis:names:tc:ebcore:partyid
-type:iso6523:0002']
[text()='123456789']]/eb3:CollaborationInfo/eb3:Service[text()='Procureme
nt']
In large or distributed organizations, there may be multiple data centers hosting the business
applications that provide distinct services. Each of these data centers could have its own ebXML
message service handler endpoints. A separate rule would map messages related to this other service
to a distinct next MSH.
//eb3:UserMessage[1]
[eb3:PartyInfo/eb3:To/eb3:PartyId[@type='urn:oasis:names:tc:ebcore:partyid
-type:iso6523:0002']
[text()='123456789']]/eb3:CollaborationInfo/eb3:Service[text()='Marketing
']
Only the last intermediary delivering messages to these MSHs needs to know which data center
provides which service. When using intermediaries, services can be relocated from one data center
and MSH to another, data centers can be reorganized and consolidated, services outsourced or insourced, without the business partners using services from those data center having to reconfigure
their MSH configurations.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 85 of 126
The routing function of an ebXML intermediary supports multiple approaches to meet this requirement.
One approach is to use the ebMS concept of message partition channels to assign messages to a
Development, Test, Acceptance and Production partition. An intermediary can route messages
based on MPC using patterns like:
//eb3:UserMessage[1][@mpc='Production']
An alternative approach is to use the ebMS 3.0 feature of MessageProperties and have a
Property to classify messages according to environment.
<eb3:MessageProperties>
<eb3:Property name="Environment">Production</eb3:Property>
</eb3:MessageProperties>
This approach is more flexible as environments may be partitioned in more dimensions (e.g. for
versions of services) and additional properties could be added to reflect this.
The name and values of these properties need to be standardized and used consistently in the
community. A test MSH can be configured to always insert (or check for the presence of) this property
and the correct value in any outgoing message and validate its correct use in incoming messages.
Intermediaries can deploy routing rules that reference these properties, possibly in combination with
the other message header elements discussed in this section or other properties, to route messages
within the appropriate logical environment.
//eb3:UserMessage[1]/eb3:MessageProperties/eb3:Property[@name='Environm
ent'][text()='Production']
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 86 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 87 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 88 of 126
</xsd:sequence>
<xsd:attributeGroup ref="tns:headerExtension"/>
</xsd:complexType>
<xsd:complexType name="SignalMessage">
<xsd:annotation>
<xsd:documentation xml:lang="en"> In the core part of ebMS-3
specification, an eb:Signal
Message is allowed to contain eb:MessageInfo and at most one Receipt
Signal, at most
one eb:PullRequest element, and/or a series of eb:Error elements. In
part 2 of the
ebMS-3 specification, new signals may be introduced, and for this
reason, an
extensibility point is added here to the eb:SignalMessage element to
allow it to
contain any elements. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="MessageInfo"/>
<xsd:element name="PullRequest" type="PullRequest" minOccurs="0"/>
<xsd:element name="Receipt" type="Receipt" minOccurs="0"/>
<xsd:element name="Error" type="Error" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Error">
<xsd:sequence>
<xsd:element name="Description" type="tns:Description" minOccurs="0"/>
<xsd:element name="ErrorDetail" type="xsd:token" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="category" type="xsd:token" use="optional"/>
<xsd:attribute name="refToMessageInError" type="xsd:token" use="optional"/>
<xsd:attribute name="errorCode" type="xsd:token" use="required"/>
<xsd:attribute name="origin" type="xsd:token" use="optional"/>
<xsd:attribute name="severity" type="xsd:token" use="required"/>
<xsd:attribute name="shortDescription" type="xsd:token" use="optional"/>
</xsd:complexType>
<xsd:complexType name="PullRequest">
<xsd:sequence>
<xsd:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="pullAttributes"/>
</xsd:complexType>
<xsd:complexType name="Receipt">
<xsd:sequence>
<xsd:any namespace="##other" processContents="lax"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="UserMessage">
<xsd:sequence>
<xsd:element ref="MessageInfo"/>
<xsd:element ref="PartyInfo"/>
<xsd:element ref="CollaborationInfo"/>
<xsd:element ref="MessageProperties" minOccurs="0"/>
<xsd:element ref="PayloadInfo" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="mpc" type="xsd:anyURI" use="optional"/>
</xsd:complexType>
<xsd:element name="MessageInfo" type="MessageInfo"/>
<xsd:complexType name="MessageInfo">
<xsd:sequence>
<xsd:element name="Timestamp" type="xsd:dateTime"/>
<xsd:element name="MessageId" type="tns:non-empty-string"/>
<xsd:element name="RefToMessageId" type="tns:non-empty-string"
minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 89 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 90 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 91 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 92 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 93 of 126
Step 1: The Sending party submits a User message to its endpoint MSH A. The MSH
resolves which P-Mode / CPA is associated with this message so that it knows its processing
mode (which level of security, reliability, MEP). In this case, the PMode requires that its
related messages need be sent reliably, i.e. that an RM sequence needs be initiated for these.
Step 2: The Sending endpoint MSH A determines where to send this message here to an
ebMS Intermediary by getting the Intermediary URL from its P-Mode / CPA configuration
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 94 of 126
NOTE: because the destination URL is unknown (dynamically resolved by I-Cloud routing), the
destination EPR is set to the I-Cloud URI: http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/icloud, which has no special meaning in case of a SOAP
Request. The header wsa:To is present in the wsrm:CS message and contains the I-Cloud
URI.
Step 5: At the end of the routing path, the Last Intermediary gets the
wsrm:CreateSequence message. Two options must be supported depending on the MEP
required by the destination endpoint (MSH B):
1. Push MEP: The Last Intermediary keeps routing the wsrm:CS in a push mode to
the destination endpoint (MSH B). The content of wsrm:AcksTo will determine
how the wsrm:CSR is sent back.
2. Pull MEP: The Last Intermediary is aware that the reference parameter
associated with the wsrm:CS calls for a Pull mode. Among these parameters, is
a mention of the MPC where messages for this sequence will be pulled from. The
Intermediary MAY piggyback on the wsrm:CS a dummy eb3:Header with a noneffective Service value ( http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/core/200704/service). The intermediary MUST assign the
wsrm:CS message to the related MPC so that the message becomes subject to pulling
using eb3:PullRequest targeted to this MPC.
NOTE: an alternative could have used wsmc:MakeConnection (MC) to pull such signals.
However, the use of MC would not support the most common selective pulling cases (pulling
based on sequence ID, and pulling based on wsa:Address) due to the multi-hop context.
Consequently MC extensibility points would have to be used, to pull based on MPC. Because
of this level of customization there is little advantage in using the wsmc standard.
Step 6: The RM module in MSH B takes knowledge of the wsrm:AcksTo element contained
in the wsrm:CS message. The wsrm:AcksTo element value indicates the EPR where the
wsrm:CSR must be sent back. Indeed, in the ebMS multi-hop model, RM lifecycle response
messages such as CSR must be sent to the same destination as RM acknowledgment. The
wsrm:AcksTo element is itself an EPR that sufficiently identifies the initial Sending MSH so
that the I-Cloud can route the wsrm:CSR back to MSH A. The following cases need to be
supported, depending on how the wsrm:CS was transmitted:
Pushed wsrm:CS: The wsrm:CSR is sent back based on the wsrm:AcksTo
content. If it were an anonymous URI, the CSR is sent over the backchannel of the
wsrm:CS, from the RM module of MSH B to the Last Intermediary. In all cases, the
ebint:RoutingInput Reference Parameter, if present in the AcksTo EPR, is added to
the wsrm:CSR message. The routing of wsrm:CSR is based on this reference parameter.
In a special case where the AcksTo gives the URL of the destination (MSH A) and this
destination can directly be resolved without ebMS-level routing, the RM module of MSH B
can directly send it back to MSH A.
Pulled wsrm:CS: The wsrm:CSR is sent over a new HTTP connection to the ICloud. The ebint:RoutingInput Reference Parameter in the AcksTo EPR is added
to the wsrm:CSR for routing.
NOTE: In both cases the wsrm:CSR MAY be sent to a node of the I-Cloud other
than the last Intermediary involved in routing the wsrm:CS message. This depends on
how the AcksTo EPR is to be resolved by the I-Cloud.
Step 7: In case the routing of wsrm:CSR involves the initial First Intermediary, the latter gets
the wsrm:CSR with sequence ID. Here, the same procedure as for Step 5 takes place for
transmitting the wsrm:CSR to MSH A, allowing for both Push and Pull options.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 95 of 126
the endpoint MSHs have the ability to insert and parse WS-addressing EPRs.
The ebMS intermediary in contact with the destination endpoint MSH, must act in accordance
of the P-Mode unit that governs its edge-hop, especially in case of message pulling from the
endpoint.
Step 1: The Sending party submits a User message to its endpoint MSH A. The MSH
resolves which P-Mode / CPA is associated with this message so that it knows its processing
mode (P-Mode) In this case, the P-Mode is already associated with a Reliable Messaging
(RM) sequence.
Step 2: The Sending endpoint MSH A determines where to send this message here to an
ebMS Intermediary
Step 3: The First Intermediary receives the User message, and forwards it using a routing
function that uses ebMS header data.
Step 4: At the end of the routing path, the Last Intermediary gets the User message. Two
options must be supported depending on the MEP required by the destination endpoint (MSH
B):
1. Push MEP: The Last Intermediary keeps routing the User message in a push mode to the
destination endpoint (MSH B).
2. Pull MEP: The Last Intermediary is aware that the P-Mode associated with the User
message calls for a Pull mode. The message is assigned to a Pull channel (MPC).
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 96 of 126
This case only concerns User messages that are pushed by the Sending MSH. This flow has been
described in sufficient details in the previous sections. Routing is expected to be based on the
UserMessage content. However the presence of a RoutingInput reference parameter is not excluded,
in which case the latter takes precedence.
The routing across the I-Cloud may involve both pushing and pulling. Both push and pull cases are
illustrated on the Receiving side.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 97 of 126
The above case illustrates a Two-Way exchange with the request message being pushed by the
Sending MSH. The diagram illustrates the different ways the response (reply message in the TwoWay) can be sent back:
1. Direct addressing, by-passing the I-Cloud routing in case the response address is explicitly
provided (e.g. by wsa:ReplyTo) and can be resolved without ebMS-level routing.
2. Reply message sent back over the back-channel of the request message (case where the PMode.MEPbinding is Sync, for a request-response underlying transport such as HTTP).
3. Reply message sent back as callback (case where the P-Mode.MEPbinding is Push-and-Push,
e.g. over a new HTTP connection).
This flow has been described in sufficient details in the previous sections. Routing is expected to be
based on the UserMessage content, for both request and reply messages. However the presence of a
RoutingInput reference parameter is not excluded, in which case the latter takes precedence.The
routing across the I-Cloud may involve both pushing and pulling. On the receiving side of the reply
message as well as of the request message, both push and pull options are illustrated.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 98 of 126
The routing of ebMS signals that are responding to previous ebMS messages (i.e. eb3:Receipts,
eb3:Errors) has been described in section .1.7.3 (Routing support for Response Messages). The
options are similar to the way reply user messages are sent back, except that the routing input must
be provided as a WS-Addressing reference parameter header block.
NOTE: eb3:Error signals may also be sent back by Intermediaries (EBMS:0020 (RoutingFailure), )
which has not been illustrated here. The routing of such Intermediary errors back to the message
originator would need to be supported either by the routing function in a specific way, or by dynamic
routing input provided in wsa:ReplyTo header of the failing message.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 99 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 100 of 126
<eb3:To>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0106"
>192837465</eb3:PartyId>
<eb3:Role>Seller</eb3:Role>
</eb3:To>
</eb3:PartyInfo>
<eb3:CollaborationInfo>
<eb3:Service>Sales</eb3:Service>
<eb3:Action>ProcessPurchaseOrder</eb3:Action>
<eb3:ConversationId>ecae53d4-7473-45a6-ad7061970dd7c4b0</eb3:ConversationId>
</eb3:CollaborationInfo>
<eb3:PayloadInfo>
<eb3:PartInfo href="cid:[email protected]"
/>
</eb3:PayloadInfo>
</eb3:UserMessage>
</eb3:Messaging>
<wsse:Security S12:mustUnderStand="true">
<wsu:Timestamp wsu:Id="_476193ac-1584-48ac-9074-143a8fc13523">
<!-- details omitted -->
</wsu:Timestamp>
<wsse:BinarySecurityToken wsu:Id="_43336c8b-38bd-470d-94c1165ab96b57a5">
<!-- details omitted -->
</wsse:BinarySecurityToken>
<ds:Signature>
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_5cb44655-5720-4cf4-a772-19cd480b0ad4">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>KshAH7QFFAw2sV5LQBOUOSSrCaI=</ds:DigestValue
>
</ds:Reference>
<ds:Reference URI="#_f8aa8b55-b31c-4364-94d0-3615ca65aa40">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>l2HxWizaP7d43f4hATCD+O7it1c=</ds:DigestValue
>
</ds:Reference>
<ds:Reference URI="cid:[email protected]">
<ds:Transforms>
<ds:Transform
Algorithm="http://docs.oasis-open.org/wss/oasis-wssSwAProfile-1.1#Attachment-Content-Signature-Transform"
/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>iWNSv2W6SxbOYZliPzZDcXAxrwI=</ds:DigestValue
>
</ds:Reference>
<ds:Reference URI="#_476193ac-1584-48ac-9074-143a8fc13523">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 101 of 126
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>PreCqm0ESZqmITjf1qzrLFuOEYg=</ds:DigestValue
>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
<!-- details omitted -->
</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#_43336c8b-38bd-470d-94c1-165ab96b57a5"
ValueType="http://docs.oasisopen.org/wss/2004/01/oasis200401-wss-x509-token-profile-1.0#X509v3"
/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</S12:Header>
<S12:Body wsu:Id="_f8aa8b55-b31c-4364-94d0-3615ca65aa40"/>
</S12:Envelope>
--f1fad5ca-f6b1-4c1b-ba46-099321af7cbe
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Content-ID: <[email protected]>
Content-Length: 368
UNB+UNOA:2+ABSENDER9012345678901234567890ABCDE:CD-A:WEITERLEITNG-A+EMPFAENGER:CDE:WEITERLEITNG-E+940812:0235+T940812023504A++0026-Anwendung'
UNH+M940812023504A+ORDERS:D:93A:UN:EAN007'
BGM+220+5211229'
DTM+002:940815'
NAD+SU+4004353000000::9'
NAD+BY+4306517005214::9'
LIN+1++4004353054099:EN'
QTY+21:9'
UNS+S'
UNT+51+M940812023504A'
UNZ+3+T940812023504A'
--f1fad5ca-f6b1-4c1b-ba46-099321af7cbe
The remainder of the MIME structure is forwarded without modification. (Within the I-Cloud
intermediaries could even use SMTP instead of HTTP).
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 102 of 126
xmlns:eb3="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:ebint="http://docs.oasis-open.org/ebxmlmsg/ns/ebms/v3.0/multihop/200902/"
xmlns:ebbp="http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecuritysecext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurityutility-1.0.xsd"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" >
<S12:Header>
<wsa:To wsu:Id="_25ca74aa-0a9f-454d-a5fe-5231ba8304ed"
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh"
S12:mustUnderstand="true"
>http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/icloud</wsa:To>
<wsa:Action wsu:Id="_42924487-4099-4600-a0e7-4156022320a6"
>http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/core/200704/oneWay.receipt</wsa:Action>
<ebint:RoutingInput wsa:IsReferenceParameter="true"
id="_ccd050c7-a1a5-4c31-8c01-e3c2534609ab" S12:mustUnderstand="true"
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh">
<ebint:UserMessage mpc="e5c31ef7-d750-4db8-b4dc-13a751d80b9a.receipt">
<eb3:PartyInfo>
<eb3:From>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0106"
>192837465</eb3:PartyId>
<eb3:Role>Seller</eb3:Role>
</eb3:From>
<eb3:To>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0002"
>123456789</eb3:PartyId>
<eb3:Role>Buyer</eb3:Role>
</eb3:To>
</eb3:PartyInfo>
<eb3:CollaborationInfo>
<eb3:Service>Sales</eb3:Service>
<eb3:Action>ProcessPurchaseOrder.receipt</eb3:Action>
<eb3:ConversationId>ecae53d4-7473-45a6-ad7061970dd7c4b0</eb3:ConversationId>
</eb3:CollaborationInfo>
</ebint:UserMessage>
</ebint:RoutingInput>
<eb3:Messaging S12:mustUnderstand="true" id="_393bb2e2-df86-4b4f-b682f7a684316b3d">
<eb3:SignalMessage>
<eb3:MessageInfo>
<eb3:Timestamp>2009-05-22T14:33:11.735Z</eb3:Timestamp>
<eb3:MessageId>[email protected]</eb3:MessageId>
<eb3:RefToMessageId>[email protected]</eb3:RefToMessa
geId>
</eb3:MessageInfo>
<eb3:Receipt>
<ebbp:NonRepudiationInformation>
<ebbp:MessagePartNRInformation>
<ds:Reference URI="#_5cb44655-5720-4cf4-a77219cd480b0ad4">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>KshAH7QFFAw2sV5LQBOUOSSrCaI=</ds:Di
gestValue>
</ds:Reference>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 103 of 126
3615ca65aa40">
exc-c14n#"/>
</ebbp:MessagePartNRInformation>
<ebbp:MessagePartNRInformation>
<ds:Reference URI="#_f8aa8b55-b31c-4364-94d0<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>l2HxWizaP7d43f4hATCD+O7it1c=</ds:Di
gestValue>
</ds:Reference>
</ebbp:MessagePartNRInformation>
<ebbp:MessagePartNRInformation>
<ds:Reference
URI="cid:[email protected]">
<ds:Transforms>
<ds:Transform
Algorithm="http://docs.oasisopen.org/wss/oasis-wss-SwAProfile-1.1#Attachment-Content-Signature-Transform"
/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>iWNSv2W6SxbOYZliPzZDcXAxrwI=</ds:Di
gestValue>
</ds:Reference>
</ebbp:MessagePartNRInformation>
</ebbp:NonRepudiationInformation>
</eb3:Receipt>
</eb3:SignalMessage>
</eb3:Messaging>
<wsse:Security S12:mustUnderStand="true">
<wsu:Timestamp wsu:Id="_870532b4-2a25-4959-8d5e-029c05f5f6ee">
<!-- details omitted -->
</wsu:Timestamp>
<wsse:BinarySecurityToken wsu:Id="_dc8f9e0f-529f-47eb-b78b30ebff44f820">
<!-- details omitted -->
</wsse:BinarySecurityToken>
<ds:Signature>
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_25ca74aa-0a9f-454d-a5fe-5231ba8304ed">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>ZwNxc91tmwMBFrvVJZRTlyQUseQ=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_42924487-4099-4600-a0e7-4156022320a6">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>XlAi4OIAYdZJftFWacQAVpRDGeg=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_ccd050c7-a1a5-4c31-8c01-e3c2534609ab">
<ds:Transforms>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 104 of 126
exc-c14n#"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>h0vN6yVOXZwsaLoeLVitUdYoKlM=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_393bb2e2-df86-4b4f-b682-f7a684316b3d">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>vYPsc9BmFT8hNrlruSqDNlycZhg=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_861ff127-f930-4934-8ad0-5b91bd6dbc1e">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>3/NPWtNNuYzfWaCfV2oBdYnEDbg=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_870532b4-2a25-4959-8d5e-029c05f5f6ee">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>PreCqm0ESZqmITjf1qzrLFuOEYg=</ds:DigestValu
e>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
<!-- details omitted -->
</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#_dc8f9e0f-529f-47eb-b78b30ebff44f820"
ValueType="http://docs.oasisopen.org/wss/2004/01/oasis200401-wss-x509-token-profile-1.0#X509v3"
/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</S12:Header>
<S12:Body wsu:Id="_861ff127-f930-4934-8ad0-5b91bd6dbc1e"/>
</S12:Envelope>
The ebint:RoutingInput reference parameter is filled using the values derived from the
eb3:UserMessage structure using the recommended default values.
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 105 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 106 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 107 of 126
F.1 CreateSequence
A sending MSH is about to send a user message containing an invoice on behalf of a partner acting
as a Seller to the Buyer who previously placed an order. The MSH detects that, for this particular
message P-Mode, a reliable sequence is needed. As none is available for re-use, it sets one up. An
ebint:RoutingInput is added and constructed using the relevant P-mode parameters. One other
occurrence of the ebint:RoutingInput is present in the wsrm:AcksTo element to support
reverse routing by the recipient of the CreateSequenceResponse response message and of the
acknowledgments that will use the sequence to be established.
<S12:Envelope xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702"
xmlns:wsrmp="http://docs.oasis-open.org/ws-rx/wsrmp/200702"
xmlns:eb3="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:ebint="http://docs.oasis-open.org/ebxmlmsg/ns/ebms/v3.0/multihop/200902/"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecuritysecext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurityutility-1.0.xsd"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
>
<S12:Header>
<wsa:MessageID wsu:Id="_590ae39c-1e12-47ea-8697-fa2be482ff23"
>http://seller.example.com/b6ca4390-6694-419f-a2c5c9fa161ba0aa.wsrm.cs</wsa:MessageID>
<wsa:Action wsu:Id="_973a9035-f878-41d8-8958-c9fe20ffa820"
>http://docs.oasis-open.org/wsrx/wsrm/200702/CreateSequence</wsa:Action>
<wsa:To wsu:Id="_d5c147b8-c610-4629-85ee-8c9bfd5f49c0"
S12:mustUnderstand="true"
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh"
>http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/icloud</wsa:To>
<ebint:RoutingInput wsa:IsReferenceParameter="true"
S12:mustUnderstand="true"
id="_5d657462-b175-4657-86bf-90a231a5f495"
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh">
<ebint:UserMessage mpc="595066c0-77b6-4c0e-95db-3015e335095e">
<eb3:PartyInfo>
<eb3:From>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0106"
>192837465</eb3:PartyId>
<eb3:Role>Seller</eb3:Role>
</eb3:From>
<eb3:To>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0002"
>123456789</eb3:PartyId>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 108 of 126
<eb3:Role>Buyer</eb3:Role>
</eb3:To>
</eb3:PartyInfo>
<eb3:CollaborationInfo>
<eb3:Service>Sales</eb3:Service>
<eb3:Action>RequestForPayment</eb3:Action>
<eb3:ConversationId>b6ca4390-6694-419f-a2c5c9fa161ba0aa</eb3:ConversationId>
</eb3:CollaborationInfo>
</ebint:UserMessage>
</ebint:RoutingInput>
<wsse:Security S12:mustUnderStand="true">
<wsu:Timestamp wsu:Id="_7222f3fb-018e-4952-9511-841bbc883279">
<!-- details omitted -->
</wsu:Timestamp>
<wsse:BinarySecurityToken wsu:Id="_76d8adbc-0f19-4af3-80e1b48e25bdf02c">
<!-- details omitted -->
</wsse:BinarySecurityToken>
<ds:Signature>
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_590ae39c-1e12-47ea-8697-fa2be482ff23">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>Epfm13Uu/HIfINBz9HvvQ5pNu0E=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_973a9035-f878-41d8-8958-c9fe20ffa820">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>a/kLYjouK9ShHnQgiZz7X3/ofbk=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_d5c147b8-c610-4629-85ee-8c9bfd5f49c0">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>RgDdQIprqVHgTnjwhUAvreoy73w=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_5d657462-b175-4657-86bf-90a231a5f495">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>E71/QH3ev3JnhD4deNCr2Z76S7o=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_f8aa8b55-b31c-4364-94d0-3615ca65aa40">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 109 of 126
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>PreCqm0ESZqmITjf1qzrLFuOEYg=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_7222f3fb-018e-4952-9511-841bbc883279">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>PreCqm0ESZqmITjf1qzrLFuOEYg=</ds:DigestValu
e>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
<!-- details omitted -->
</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#_76d8adbc-0f19-4af3-80e1b48e25bdf02c"
ValueType="http://docs.oasisopen.org/wss/2004/01/oasis200401-wss-x509-token-profile-1.0#X509v3"
/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</S12:Header>
<S12:Body wsu:Id="_f8aa8b55-b31c-4364-94d0-3615ca65aa40">
<wsrm:CreateSequence>
<wsrm:AcksTo>
<wsa:Address
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh"
>http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/icloud</wsa:Address>
<wsa:ReferenceParameters>
<ebint:RoutingInput
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh">
<ebint:UserMessage mpc="595066c0-77b6-4c0e-95db3015e335095e.response">
<eb3:PartyInfo>
<eb3:From>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0002"
>123456789</eb3:PartyId>
<eb3:Role>Buyer</eb3:Role>
</eb3:From>
<eb3:To>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0106"
>192837465</eb3:PartyId>
<eb3:Role>Seller</eb3:Role>
</eb3:To>
</eb3:PartyInfo>
<eb3:CollaborationInfo>
<eb3:Service>Sales</eb3:Service>
<eb3:Action>RequestForPayment.response</eb3:Action>
<eb3:ConversationId>b6ca4390-6694-419f-a2c5c9fa161ba0aa</eb3:ConversationId>
</eb3:CollaborationInfo>
</ebint:UserMessage>
</ebint:RoutingInput>
</wsa:ReferenceParameters>
</wsrm:AcksTo>
<wsrmp:DeliveryAssurance>
<wsrmp:AtLeastOnce/>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 110 of 126
<wsrmp:InOrder/>
</wsrmp:DeliveryAssurance>
</wsrm:CreateSequence>
</S12:Body>
</S12:Envelope>
F.2 CreateSequenceResponse
Buyers MSH receives the request via the I-Cloud and produces the following response, using a
ebint:RoutingInput reference parameter derived from the AcksTo structure in the
CreateSequence message:
<?xml version="1.0" encoding="UTF-8"?>
<S12:Envelope xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702"
xmlns:eb3="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecuritysecext-1.0.xsd"
xmlns:ebint="http://docs.oasis-open.org/ebxml-msg/ns/ebms/v3.0/multihop/200902/"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurityutility-1.0.xsd"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
>
<S12:Header>
<wsa:MessageID wsu:Id="_de488ec7-e533-486e-ab16-f48889a3675a"
>http://buyer.example.com/9393b326-e9f3-4969-94bbafc525413370.wsrm.csr</wsa:MessageID>
<wsa:To wsu:Id="_256766f8-19f8-4ee1-9be6-e00c05a79c9c"
S12:mustUnderstand="true"
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh"
>http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/icloud</wsa:To>
<wsa:Action wsu:Id="_476193ac-1584-48ac-9074-143a8fc13523"
>http://docs.oasis-open.org/wsrx/wsrm/200702/CreateSequenceResponse</wsa:Action>
<wsa:RelatesTo wsu:Id="_60e8a742-50cd-4eb4-8a7c-e49a08f26372"
RelationshipType="http://www.w3.org/2005/08/addressing/reply"
>http://seller.example.com/b6ca4390-6694-419f-a2c5c9fa161ba0aa.wsrm.cs</wsa:RelatesTo>
<ebint:RoutingInput wsa:IsReferenceParameter="true"
id="_95aa453c-e68e-4365-8c3e-09c76d889e03"
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh"
S12:mustUnderstand="true">
<ebint:UserMessage mpc="595066c0-77b6-4c0e-95db-3015e335095e.response">
<eb3:PartyInfo>
<eb3:From>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0002"
>123456789</eb3:PartyId>
<eb3:Role>Buyer</eb3:Role>
</eb3:From>
<eb3:To>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0106"
>192837465</eb3:PartyId>
<eb3:Role>Seller</eb3:Role>
</eb3:To>
</eb3:PartyInfo>
<eb3:CollaborationInfo>
<eb3:Service>Sales</eb3:Service>
<eb3:Action>RequestForPayment.response</eb3:Action>
<eb3:ConversationId>b6ca4390-6694-419f-a2c5c9fa161ba0aa</eb3:ConversationId>
</eb3:CollaborationInfo>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 111 of 126
</ebint:UserMessage>
</ebint:RoutingInput>
<wsse:Security S12:mustUnderStand="true">
<wsu:Timestamp wsu:Id="_5cb44655-5720-4cf4-a772-19cd480b0ad4">
<!-- details omitted -->
</wsu:Timestamp>
<wsse:BinarySecurityToken wsu:Id="_41666e7f-facb-4f3e-86b0f6ba246e5c6a">
<!-- details omitted -->
</wsse:BinarySecurityToken>
<ds:Signature>
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_de488ec7-e533-486e-ab16-f48889a3675a">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>bgUQRNjzfnYSAh9mkq0C5+G0xaY=</ds:DigestValue
>
</ds:Reference>
<ds:Reference URI="#_256766f8-19f8-4ee1-9be6-e00c05a79c9c">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>CNfEqkxRjnXM8P/hbfe4vzsuEBs=</ds:DigestValue
>
</ds:Reference>
<ds:Reference URI="#_476193ac-1584-48ac-9074-143a8fc13523">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>kNNQkuLbjuAZaqIVlovDrIUFiLw=</ds:DigestValue
>
</ds:Reference>
<ds:Reference URI="#_60e8a742-50cd-4eb4-8a7c-e49a08f26372">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>6FWE1+iUD9UnJTbnqn/BPT9fnZw=</ds:DigestValue
>
</ds:Reference>
<ds:Reference URI="#_95aa453c-e68e-4365-8c3e-09c76d889e03">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>+AktU8cQ9k152maEKVQRZJfmLiQ=</ds:DigestValue
>
</ds:Reference>
<ds:Reference URI="#_7863066f-44bb-49d0-a7f2-8edc045b4601">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 112 of 126
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>WLKJJXX66QrUwSv0TVA+dP/EMt0=</ds:DigestValue
>
</ds:Reference>
<ds:Reference URI="_5cb44655-5720-4cf4-a772-19cd480b0ad4">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>PreCqm0ESZqmITjf1qzrLFuOEYg=</ds:DigestValue
>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
<!-- details omitted -->
</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#_41666e7f-facb-4f3e-86b0-f6ba246e5c6a"
ValueType="http://docs.oasisopen.org/wss/2004/01/oasis200401-wss-x509-token-profile-1.0#X509v3"
/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</S12:Header>
<S12:Body wsu:Id="_7863066f-44bb-49d0-a7f2-8edc045b4601">
<wsrm:CreateSequenceResponse>
<wsrm:Identifier>64331cf8-8a64-4e36-bf8e-9cbee3cf9384</wsrm:Identifier>
</wsrm:CreateSequenceResponse>
</S12:Body>
</S12:Envelope>
F.3 UserMessage
Seller can now use the sequence to send messages. The third message sent is also asking for an
acknowledgment.
<?xml version="1.0" encoding="UTF-8"?>
<S12:Envelope xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702"
xmlns:eb3="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecuritysecext-1.0.xsd"
xmlns:ebint="http://docs.oasis-open.org/ebxmlmsg/ns/ebms/v3.0/multihop/200902/"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurityutility-1.0.xsd"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
>
<S12:Header>
<eb3:Messaging
S12:mustUnderstand="true"
id="_476193ac-1584-48ac-9074-143a8fc13523">
<eb3:UserMessage mpc="595066c0-77b6-4c0e-95db-3015e335095e">
<eb3:MessageInfo>
<eb3:Timestamp>2009-06-01T13:21:55.0001Z</eb3:Timestamp>
<eb3:MessageId>[email protected]</eb3:MessageId>
</eb3:MessageInfo>
<eb3:PartyInfo>
<eb3:From>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyidtype:iso6523:0106"
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 113 of 126
>192837465</eb3:PartyId>
<eb3:Role>Seller</eb3:Role>
</eb3:From>
<eb3:To>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0002"
>123456789</eb3:PartyId>
<eb3:Role>Buyer</eb3:Role>
</eb3:To>
</eb3:PartyInfo>
<eb3:CollaborationInfo>
<eb3:Service>Sales</eb3:Service>
<eb3:Action>RequestForPayment</eb3:Action>
<eb3:ConversationId>595066c0-77b6-4c0e-95db3015e335095e</eb3:ConversationId>
</eb3:CollaborationInfo>
<eb3:PayloadInfo>
<eb3:PartInfo
href="cid:[email protected]"
/>
</eb3:PayloadInfo>
</eb3:UserMessage>
</eb3:Messaging>
<wsrm:Sequence wsu:Id="_50111bf6-cec9-4f65-9b14-d8a67473bfec"
S12:mustUnderstand='true' >
<wsrm:Identifier>64331cf8-8a64-4e36-bf8e-9cbee3cf9384</wsrm:Identifier>
<wsrm:MessageNumber>3</wsrm:MessageNumber>
</wsrm:Sequence>
<wsrm:AckRequested wsu:Id="_ce8b7adc-8299-4709-8786-7b6e47d11bfe">
<wsrm:Identifier>64331cf8-8a64-4e36-bf8e-9cbee3cf9384</wsrm:Identifier>
</wsrm:AckRequested>
<wsse:Security S12:mustUnderStand="true">
<wsu:Timestamp wsu:Id='_3f3a6960-0da8-4cfe-a558-0429da9f10f1'>
<!-- details omitted -->
</wsu:Timestamp>
<wsse:BinarySecurityToken wsu:Id="_c116daa8-2c55-4021-80909aba31306924">
<!-- details omitted -->
</wsse:BinarySecurityToken>
<ds:Signature>
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_476193ac-1584-48ac-9074-143a8fc13523">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-excc14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>G81aGuOd+yex89mdYP4yfy7zeE0=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_50111bf6-cec9-4f65-9b14-d8a67473bfec">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-excc14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>m/dQpoocYc5mDy7I5Q7BGtmCM6g=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_ce8b7adc-8299-4709-8786-7b6e47d11bfe">
<ds:Transforms>
<ds:Transform
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 114 of 126
c14n#"/>
e>
c14n#"/>
e>
Algorithm="http://www.w3.org/2001/10/xml-exc</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>BZv/Y2V6CBO5bML96vBJDB79kBk=</ds:DigestValu
</ds:Reference>
<ds:Reference URI="#_60e8a742-50cd-4eb4-8a7c-e49a08f26372">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-exc</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>LgUqGoN49jOMC8v8JAFIwFIexhg=</ds:DigestValu
</ds:Reference>
<ds:Reference
URI="cid:[email protected]">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-excc14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>Mc1tKNVmA5m/j426qwk07Nr5Ba4=</ds:DigestValu
e>
</ds:Reference>
<ds:Reference URI="#_3f3a6960-0da8-4cfe-a558-0429da9f10f1">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmlds#sha1"/>
<ds:DigestValue>PreCqm0ESZqmITjf1qzrLFuOEYg=</ds:DigestValu
e>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
<!-- details omitted -->
</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#_c116daa8-2c55-4021-80909aba31306924"
ValueType="http://docs.oasisopen.org/wss/2004/01/oasis200401-wss-x509-token-profile-1.0#X509v3"
/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</S12:Header>
<S12:Body wsu:Id="_60e8a742-50cd-4eb4-8a7c-e49a08f26372"/>
</S12:Envelope>
F.4 Acknowledgment
The following acknowledgment is returned. It contains a ebint:RoutingInput that was specified
as the wsrm:AcksTo in the message that established the sequence.
<?xml version="1.0" encoding="UTF-8"?>
<S12:Envelope xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 115 of 126
xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702"
xmlns:eb3="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecuritysecext-1.0.xsd"
xmlns:ebint="http://docs.oasis-open.org/ebxmlmsg/ns/ebms/v3.0/multihop/200902/"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurityutility-1.0.xsd"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<S12:Header>
<wsa:To wsu:Id="_95aa453c-e68e-4365-8c3e-09c76d889e03"
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh"
S12:mustUnderstand="true"
>http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/icloud</wsa:To>
<wsa:Action wsu:Id="_7863066f-44bb-49d0-a7f2-8edc045b4601"
>http://docs.oasis-open.org/wsrx/wsrm/200702/SequenceAcknowledgement</wsa:Action>
<ebint:RoutingInput wsa:IsReferenceParameter="true"
S12:role="http://docs.oasis-open.org/ebxmlmsg/ebms/v3.0/ns/part2/200811/nextmsh"
id="_a83cb2ba-956c-4b46-b6d3-cd8edd98b32e" S12:mustUnderstand="true">
<ebint:UserMessage mpc="595066c0-77b6-4c0e-95db-3015e335095e.response">
<eb3:PartyInfo>
<eb3:From>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0002"
>123456789</eb3:PartyId>
<eb3:Role>Buyer</eb3:Role>
</eb3:From>
<eb3:To>
<eb3:PartyId
type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0106"
>192837465</eb3:PartyId>
<eb3:Role>Seller</eb3:Role>
</eb3:To>
</eb3:PartyInfo>
<eb3:CollaborationInfo>
<eb3:Service>Sales</eb3:Service>
<eb3:Action>RequestForPayment.response</eb3:Action>
<eb3:ConversationId>b6ca4390-6694-419f-a2c5c9fa161ba0aa</eb3:ConversationId>
</eb3:CollaborationInfo>
</ebint:UserMessage>
</ebint:RoutingInput>
<wsrm:SequenceAcknowledgement wsu:Id="_02b17eed-be4f-4483-af2655a3e2412bb3"
S12:ackRequested="true" S12:mustUnderstand="true">
<wsrm:Identifier>64331cf8-8a64-4e36-bf8e-9cbee3cf9384</wsrm:Identifier>
<wsrm:AcknowledgementRange Upper="1" Lower="1"/>
<wsrm:AcknowledgementRange Upper="3" Lower="3"/>
</wsrm:SequenceAcknowledgement>
<wsse:Security S12:mustUnderStand="true">
<!-- Omitted -->
</wsse:Security>
</S12:Header>
<S12:Body wsu:Id="_98825416-7b3d-4aba-85c5-089fd22f07d4"/>
</S12:Envelope>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 116 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 117 of 126
Error Code
Short Description
Recommended
Severity
Category
Value
Description or Semantics
EBMS:0020
RoutingFailure
failure
Processing
EBMS:0021
MPCCapacityExceeded failure
Processing
EBMS:0022
MessagePersistenceTi failure
meout
Processing
EBMS:0023
MessageExpired
Processing
warning
Error Code
Short Description
Recommended
Severity
EBMS:0030
BundlingError
EBMS:0031
RelatedMessageFailed failure
failure
Category
Value
Description or Semantics
Content
Processing
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 118 of 126
Error Code
EBMS:0040
Short Description
BadFragmentGroup
Recommended
Severity
failure
Category
Value
Content
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
Description or Semantics
A fragment is received that
relates to a group that was
previously rejected.
19 May 2011
Page 119 of 126
Error Code
Short Description
Recommended
Severity
Category
Value
Description or Semantics
EBMS:0041
DuplicateMessageSize
failure
Content
EBMS:0042
DuplicateFragmentCount
failure
Content
EBMS:0043
DuplicateMessageHeader failure
Content
failure
Content
EBMS:0045
DuplicateCompressionInfo failure
Content
EBMS:0046
DuplicateFragment
failure
Content
EBMS:0047
BadFragmentStructure
failure
EBMS:0048
BadFragmentNum
failure
Content
EBMS:0049
BadFragmentCount
failure
Content
EBMS:0050
FragmentSizeExceeded
warning
EBMS:0051
ReceiveIntervalExceeded
failure
EBMS:0052
BadProperties
warning
EBSMS:0044 DuplicateAction
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 120 of 126
Error Code
Short Description
Recommended
Severity
Category
Value
Description or Semantics
EBMS:0053
HeaderMismatch
failure
EBMS:0054
OutOfStorageSpace
failure
EBMS:0055
DecompressionError
failure
Processing
Error Code
EBMS:0060
Short Description
ResponseUsingAlternateMEP
Recommended
Severity
Warning
Category
Value
Processing
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
Description or Semantics
19 May 2011
Page 121 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 122 of 126
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 123 of 126
<xsd:annotation>
<xsd:documentation>SOAP with attachments </xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="HTTPCompressionAlgorithmType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="gzip"/>
<xsd:enumeration value="compress"/>
<xsd:enumeration value="deflate"/>
<xsd:enumeration value="identity"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="CompressionAlgorithmType">
<xsd:union memberTypes="mf:non-empty-string
mf:HTTPCompressionAlgorithmType"/>
</xsd:simpleType>
<xsd:attributeGroup name="S12atts">
<xsd:attribute ref="S12:mustUnderstand" use="optional">
<xsd:annotation>
<xsd:documentation> if SOAP 1.2 is being used, this attribute is
required, other
attributes in the S12atts group are allowed and attributes in
the S11atts group
are prohibited.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute ref="S12:encodingStyle"/>
<xsd:attribute ref="S12:relay"/>
<xsd:attribute ref="S12:role"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="S11atts">
<xsd:attribute ref="S11:mustUnderstand" use="optional">
<xsd:annotation>
<xsd:documentation> if SOAP 1.1 is being used, this attribute is
required, other
attributes in the S11atts group are allowed and attributes in
the S12atts group
are prohibited.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute ref="S11:encodingStyle"/>
<xsd:attribute ref="S11:actor"/>
</xsd:attributeGroup>
</xsd:schema>
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 124 of 126
Appendix J Acknowledgments
The editors would also like to acknowledge the contributions of the OASIS ebXML Messaging
Services TC, whose members at the time of publication were:
The following former TC member contributed to chapter 2 of this specification and his contribution is
gratefully acknowledged:
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 125 of 126
Date
By Whom
What
06/30/10 J. Durand / P.
van der Eijk
CD 1 draft for PR
WD 66
10/25/10 S. Fieten
WD 67
CSD 02
WD 68
WD 69
WD 70
02/11/11 J. Durand / P.
van der Eijk
WD 72
02/15/11 T. Kramer /
Updated Appendix J
ebms-v3.0-part2-cs01
Copyright OASIS Open 2011. All Rights Reserved. Standards Track Work Product
19 May 2011
Page 126 of 126