Print Page

Wednesday, March 19, 2008

Ping Pong In EBMS

It is a popular practice in EBMS world to exchange the ping-pong messages to ensure that the remote Messange Handler Service which is essentially a remote trading partner in B2B world is up and functioning well.This is done by sending a PING message and the remote MSH responds it with a PONG message.

A Message Service Handler Ping (MSH Ping) message consists of an ebXML Message containing no ebXML Payload and the following elements in the SOAP Header:

MessageHeader element
TraceHeaderList element
ds:Signature element

The TraceHeaderList and the ds:Signature elements MAY be omitted.

The MessageHeader element MUST contain the following:

a. From element that identifies the Party creating the MSH Ping message
b. To element that identifies the Party that is being sent the MSH Ping message
c. CPAId element
d· ConversationId element
e· Service element that contains: uri:www.ebxml.org/messageService/
f· an Action element that contains Ping

The message is then sent to the To Party.

Once the To Party receives the MSH Ping message, it MAY generate a Message Service Handler Pong (MSH Pong)message consisting of an ebXML Message containing no ebXML Payload and the following elements in the SOAP Header:

MessageHeader element
TraceHeaderList element
An Acknowledgment element
An OPTIONAL ds:Signature element

The TraceHeaderList, Acknowledgment and ds:Signature elements MAY be omitted.

The MessageHeader element MUST contain the following:

a. From element that identifies the creator of the MSH Pong message
b· To element that identifies a Party that generated the MSH Ping message
c· CPAId element
d· ConversationId element
e· Service element that contains the value: uri:www.ebxml.org/messageService/
f· An Action element that contains the value Pong
g· RefToMessageId that identifies the MSH Ping message.

Parties who receive a MSH Ping message SHOULD always respond to the message. However, there is a risk that some parties might use the MSH Ping message to determine the existence of a Message Service Handler as part of a security attack on that MSH. Therefore, recipients of a MSH Ping MAY ignore the message if
they consider that the sender of the message received is unauthorized or part of some attack.The decision process that results in this course of action is implementation dependent.


Implementation of Ping-pong in Oracle B2B.

1. Create a business action and Document Type as Ping.
2. While creating the Document type use the following parameter.

Document Routing ID: "EBMS_PO"
Service: "urn:oasis:names:tc:ebxml-msg:service"
Identification Expression (XPath) for XML Document: "/*[local-name()='Ping']"

3. Create an Agreement after creating Operational Capability corresponding
to Ping.

4. Enque the message with doc type and revision as Ping and 1.0.

5. The responding pong message is found in the wiremessage-report.



No comments: