WS-Reliability Pattern Ingrid Buckley Dept. of Computer Science and Engineering Florida Atlantic University Boca Raton, FL, USA July 24, 2008. 1 Secure Systems Research Group - FAU Agenda • • • • • • Motivation Objective Introduction WS-Reliability Pattern Questions Recommendations 2 Secure Systems Research Group - FAU Motivation • SOAP over HTTP is not sufficient when an applicationlevel messaging protocol must also guarantee some level of reliability and security. • Providing a convenient means to achieve reliable messaging in web services. • To write a pattern that is helpful to programmers to aid them in designing and implementing WS-Reliability in a web service application. 3 Secure Systems Research Group - FAU Objective To write a pattern that describes the WS-Reliability Standard. 4 Secure Systems Research Group - FAU Introduction… • WS-Reliability is a SOAP-based ([SOAP 1.1] and [SOAP 1.2 Part 1]) specification that fulfills reliable messaging requirements critical to some applications of Web Services. • The WS-Reliability Standard has been defined by OASIS and has borrowed from the ebXML Message Service Specification 2.0 technology. • SOAP over HTTP is not sufficient when an applicationlevel messaging protocol must also guarantee some level of reliability and security. This specification defines reliability in the context of current Web Services standards. 5 Secure Systems Research Group - FAU Introduction • The WS-Reliability standard utilizes quality of service (QOS) contracts, and uses conditions attached to the invocation of a set of operations; namely deliver, submit, respond and notify[Oas04]. • This specification has been designed for use in combination with other complementary protocols : – ebXML – SOAP – Message Security – WS-I Basic Profile 1.1 6 Secure Systems Research Group - FAU WS-Reliability Pattern • WS-Reliability • Intent : WS-Reliability ensures that a notification is always sent in response to a failure, it also fulfils message ordering and duplicate elimination and guaranteed delivery, whenever messages are sent from one entity to another. This is done using Sending and Receiving Messaging Processors that send, receive, orders’ and eliminate duplicate messages. • Context: Due to the widespread use of the internet by many companies conducting business transactions, it becomes necessary to ensure reliable communication between them. It is important that messages don’t get lost or delayed, especially in time-critical transactions. 7 Secure Systems Research Group - FAU WS-Reliability Pattern … • Problem: Some applications need to have reliable messaging in order to fulfill their business operations effectively and successfully. Many companies offer services to consumers across the internet, which give rise to bandwidth, availability and reliability issues which can negatively affect the services being offered. How do we ensure that messages which are sent are acknowledged, delivered, sent in order, and without any duplication? • The solution to this problem is affected by the following forces: – Network traffic across the internet affects the time it takes a message to reach a recipient; this may increase the delay time for the messages. – The receiving or sending parties may not be available and messages may not be sent or received. – The Internet connection speed used by both receiving and the sending party, this affects how quickly messages are sent and received. – The Internet may crash causing messages en route to either the sender or receiver to get lost. 8 Secure Systems Research Group - FAU WS-Reliability Pattern … • Solution : Use a protocol that performs guaranteed message delivery with acknowledgement of failure, ordering and duplicate elimination. This can be achieved by first having an enforced agreement (a contract) between the sending and receiving parties, and the use of a sending and receiving messaging processor that sends, delivers, orders and eliminate duplicate messages. • Structure: Figure 1 describes the structure of this pattern. 9 Secure Systems Research Group - FAU Figure 1: Class Diagram for the WS-Reliability pattern 10 Secure Systems Research Group - FAU WS-Reliability Pattern … Structure: A contract is defined which enforces the quality of service expected between the sending and receiving RMP as well as the terms of the relationship between the producer and the consumer. The contract includes a specification of the expected quality of service (QoS), which determines the quality of messaging service to the communicating parties, and also includes the features which define the operations and rules which are expected. The ReliableMessagingProcessor (RMP) [Oas04] handles messages that are sent between a producer and a consumer and performs reliable messaging as outlined in the contract in the form of requirements such as guaranteed delivery, duplicate message elimination, and message ordering. 11 Secure Systems Research Group - FAU WS-Reliability Pattern … • Structure: The Producer creates messages and sends them to the Sending RMP. The Consumer consumes messages that have been processed by the Receiving RMP. A Message can be Group Message or an Individual Message which contains a <wsrm:Request> header block with varying attributes depending on the message used. The MessageExchangeProtocol defines different modes of response which can be sent from the Consumer to the Receiving RMP in response to a previously received message. 12 Secure Systems Research Group - FAU WS-Reliability Pattern … • Dynamics: We described the dynamics aspects of the WS-Reliability using a sequence diagram for the use case “Sending a reliable message”. Sending a reliable message (Figure 2): Summary: A producer wishes to send a message to a consumer. Actors: Producer, Consumer. Precondition: The producer and the consumer must have a defined contract/agreement prior to communicating with each other. 13 Secure Systems Research Group - FAU WS-Reliability Pattern … • Dynamics: Description: 1. The producer creates and sends one or more messages (group messages) as required to the Sending RMP for it to submit to a consumer. 2. The Receiving-RMP accepts the message from the Sending RMP and forwards it to the consumer. 3. The consumer acknowledges reception of the message by sending a response back to the Receiving RMP. 4. This response is sent to the sending-RMP who notifies the producer of the response sent from the consumer. Post-condition: An acknowledgement must be sent to the producer every time a message failure occurs. 14 Secure Systems Research Group - FAU Figure 2: Sequence Diagram illustrating the sending and receiving of a Reliable message 15 Secure Systems Research Group - FAU WS-Reliability Pattern … • Implementation : To implement the WS-Reliability, the following is required: 1. Have a mechanism that can enforce a contract defined by both communicating parties. 2. The RMP processor has to be a SOAP processor, which is a processor which specializes in handling soap messages, and any other infrastructure capable of performing the reliable messaging requirements discussed earlier. 16 Secure Systems Research Group - FAU WS-Reliability Pattern … • Consequences: The WS- Reliable pattern presents the following advantages: • Messages sent between companies can be governed by means of the protocol which ensure delivery by an acknowledgment, ordering and duplicate elimination of messages. • Enterprises are able to yield a higher degree of reliability for communication sent through the internet, because both parties confirm reception by some repsonse each time they communicate via a message. • Quality of service can be maintained between businesses. Policies can be attached to the contracts that govern the modus operandi agreed to by all communicating parties. • This protocol supports several complementary protocols such as SOAP 1.1/1.2, thus leveraging the use of standards that can be adopted by companies. By using more standards this helps an enterprise to conform to current industry protocols and may help them to partner with other companies that use the same standards. • The messaging components can be implemented in different ways, as an application, a queuing or logging system, or a database or soap node. In addition they can be designed using different frameworks such as .NET, and JAVA. 17 Secure Systems Research Group - FAU WS-Reliability Pattern … • Consequences: The pattern also has some possible liabilities: • Depending on how the messaging components are implemented, there could result, a longer turnaround time to acknowledge a message. • The framework used to implement and design the message components affect the efficiency of the messaging features discussed earlier, because some frameworks are more powerful than others. 18 Secure Systems Research Group - FAU WS-Reliability Pattern • Known Uses : This pattern is utilized in Reliable Messaging for Grid Services (RM4GS) [Fuj04], this is middleware open source application produced by Fujitsu Limited, Hitachi, Ltd., and NEC Corporation. • Related patterns: The WS-Reliability sends Acknowledgements to confirm receipt of a message as apart of its solution, this can be done using the Acknowledgment pattern in [Buc08]. 19 Secure Systems Research Group - FAU References [Buc08] I. Buckley, E.B Fernandez, “A Survey of Fault Tolerance Patterns”, Department of Computer Science and Engineering Florida Atlantic University, 2007. [Oas04] OASIS, “Web Services Reliable Messaging TC WSReliability 1.1”,http://docs.oasis-open.org/wsrm/w reliability/v1.1/wsrmws_reliability-1.1-spec-os.pdf, 2004. [For08] Forum Systems Inc., “Introduction to SOA Gateways: Best Practices. Benefits & Requirements”, May, 2008. [Fuj04] Fujitsu Limited, Hitachi, Ltd., NEC Corporation, “RM4GS Overview”, http://xml.coverpages.org/RM4GS-Overview20040305.pdf, March, 2004 20 Secure Systems Research Group - FAU Recommendations and Questions Feedback: 21 Secure Systems Research Group - FAU