ebXML is a family of XML standards developed by OASIS (the Organisation for the Advancement of Structured Information Standards) and UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business) to provide an interoperable, secure an open XML based infrastructure that enables the global use of electronic business information for all the trading partners. It enables traders to implement e-business solutions for exchanging data in an agreeable format with others.
HL7 uses ebXML message package to provide a secure, flexible transport for exchanging HL7 messages and other content. For exchanging ebXML message packages, both the sender and receiver have to implement interface handlers (MSH) for ebMS (ebXML Messenger Service) with agreed communication protocols such as HTTP, SMTP and others. ebMS is just an abstraction of process rather than a physical component and providers facilities such as message packaging, routing and transports for the ebXML infrastructure.
By default security and reliability features are not included in the base SOAP and SOAPAttach specifications due to their limitations. ebMS extends SOAP and SOAPAttach specifications with a set of layered extensions to address specifically the security and reliability features based on WSS security and WS reliability for support international electronic businesses and are approved as ISO 5000-2 standards . The message package which contains the message enveloping and header document schema along with their behaviors to transfer ebXML messages over communications protocols.
The message package structure supports two types Simple Soap Style and Multipart Mime Style
Simple Soap Style contains a simple SOAP Envelope with SOAP Header and SOAP Body elements. The message payload is placed in the SOAP Body element. However, Multipart Mime Styles contains contains MIME headers with multiple mime parts where SOAP headers are placed in first mime part and message payload placed in one or more MIME parts following first MIME part. Multipart Mime Style is more specifically used for SOAP messages with Attachments i,e. SOAPAttach.
Simple Soap Style
Multipart Mime Style
Message exchange patterns
ebMS supports two message exchange patterns to exchange message reliably based on WS-Reliability.
1) Notify – Sender MSH just sends a payload to the receiver MSH and doesn’t expect any response.
2) Request/Response – Sender MSH sends a payload to the receiver MSH and expects a response. The errors during exchange if any may be reported back through a HTTP Response code, a WSR response message, an ebXML Signal Message or User Message.
ebMS specifications for HL7 has following restrictions
1) MSH supports different types of messaging patterns. However, for HL7 only two message exchange patterns supported One-Way/Push Notification style messages and Two-Way/Sync for Request-Response exchange.
2) SOAP message MUST have an XML Prolog and UTF-8 encoding.
3) For all Request-Response synchronous exchange messages requires HTTP(s) transport protocol.
4) No Schema hints are allowed in the wire format of messages. They will be ignored if included.
5) Only default Message Partition Flows(MPF) is allowed for exchanging all the User Messages.
6) Only SOAP 1.1 is allowed. In future SOAP 1.2 may be allowed in later versions.
Duplicate Message Handling
To handle duplicate messages, all the nodes engaged from originator to the receiver SHALL implement a persistent storage mechanism to detect and supress forwarding of duplicate messages if suppression is requested. The suppression request is included with DuplicateElimination of Request element in SOAP header. Duplication is detected by comparing ebXML SOAP headers or message id’s or message data timestamps.