WS-Reliability pattern - FAU College of Engineering

advertisement
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
Download