WS-ReliableMessaging describes a protocol that allows SOAP messages to be reliably delivered between distributed applications in the presence of software component, system, or network failures.
An Application Source wishes to reliably send messages to an Application2 (destination) over an unreliable infrastructure. Then to accomplish this they make use of a Reliable Messaging Source and a Reliable Messaging Destination The Application Source sends a message to the Reliable Messaging Source. The Reliable Messaging Source ( RMS) uses the WS-ReliableMessaging (WS-RM) protocol to transmit the message to the Reliable Messaging Desitination (RMD). The RMD delivers the message to the Application2 Destination. If for somereason that the RMS can’t transmit the message to the RMD for some reason, it raises an exception or otherwise indicate to the Application (Source) that the message was not transmitted.
The WS-RM protocol defines and supports a number of Delivery Assurances. These are:
- AtLeastOnce – Each message will be delivered to the Application (Destination) at least once. If a message cannot be delivered, an error always will be raised by the RMS or RMD.
- Messages may be delivered to the Application (Destination) more than once
- AtMostOnce – Each message will be delivered to the Application (Destination) at most once.
- ExactlyOnce – Each message will be delivered to the Application (Destionation) exactly once. If a message cannot be delivered, an error will be raised by the RMS or RMD.
- InOrder – Messages will be delivered from the RMD to the Application (Destination) in the order that they are sent from the Application Source to the RMS. This assurance can be combined with any of the above assurances.