Reliable Messaging for
Grids and Web Services
Geoffrey Fox, Shrideep Pallickara, Damodar Yemme, Hasan Bulut and Sima Patel
(gcf, spallick, dyemme, hbulut and skpatel)@indiana.edu Community Grids Lab
Message-Based Reliability
n
Web Services exchange messages and interact
with resources that produce and absorb
messages
n
Action and state (if exists) of a service defined by
messages
n
Our approach to Reliability is based on a building
a messaging infrastructure that is intrinsically
reliable and high performance
q WS-RM and WS-Reliability for web services
Database
S S
S
S SS SS SS SS SS SS SS SS F S F S F S F S F S F S F S F
S SF
F S F S F S F S F S F S F S F S F S F S F
S Portal
F S O S O S O S O S O S O S O S O S O S O S O S O S MD MD MD MD MD MD MD MD MD
MetaData Filter Service Sensor Service Other Service Anothe Grid
Raw Data Data Information Knowledge Wisdom Decisions S S S S Anothe Service Anothe Service S S Anothe
Grid S S
Applications of our Technology
n
1) Point-to-point generic linkage of services using
WSRM with messages saved in databases as
required in specification
n
2) Scalable Management Architecture to support
dynamic robust collections of entities
q Applied first to the brokers used in distributed
messaging of NaradaBrokering
n
3) Management of the streams of data from
sensors and web-cams
q Allow time replay and annotation based on
WSRM and WS-Reliability
n WSRM describes a protocol that facilitates the reliable
delivery of messages between two web service
endpoints in the presence of component, system or network failures.
n WSRM facilitates the reliable delivery of messages
from the source (or originator) of messages to the sink (or destination) of messages.
n The delivery (and ordering) guarantees are valid over
a group of messages, which is referred to as a
Publishing Messages in WSRM
n
Every message from the source contains two
pieces of information ─
q The Sequence that this message is a part of and
q A monotonically increasing Message Number within
this Sequence.
n
These Message Numbers enable the tracking
of problems, if any, in the intended message
delivery at a sink.
q Message Numbers enable the determination of out
of order receipt of messages as well as message losses.
n
Protocol has acknowledgements and negative
Typical Processing
Acknowledgments
n
Upon receipt of acknowledgements a source
can determine which messages might have
been lost in transit and proceed to retransmit
the
missed
messages.
n
Thus if a sink has acknowledged the receipt of
messages 1 ─ 10 and 13 ─ 18.
q The source can conclude that messages with
Notification of Errors
n
WSRM provides for notification of errors in
processing between the endpoints involved in
reliable delivery.
q These are routed back as SOAP Faults.
n
The range of errors can vary from an inability to
decipher a message’s content to complex
errors pertaining to violations in implied
agreements between the interacting source
and sink.
n
All errors are reported as faults with the
Comments on WSRM Implementation
n We are delivering this to the UK Open Middleware
Infrastructure Institute
n We built WS-Eventing that is available in OMII 2.3.3
http://www.omii.ac.uk/news/newsdetail.jsp?id=25 in FINS Project
n WS-RM is currently being tested in OMII container
(FIRMS Project) and is expected to be finished in a month and released by OMII in approximately June 2006
n WS-RM and WS-Eventing use SOAP handlers that
61024 4573 645 74. 730. 1220.
Parse an EnvelopeDocument to retrieve Wsa Message Info Headers
13880 2123 344 35. 350. 538.
Create an Envelope targeted to a specific WSA EPR with most WSA message information headers
7184 1276 267 21. 200. 397.
Create an Envelope targeted to a specific WSA EPR
2648 705 112 9.9 97. 151.
Create a WS-Addressing EPR
(Contains WSA ReferenceProperties)
2072 465 71 6.0 58. 87.6
Create a WS-Addressing EPR (Contains just a URL address)
34424 2802 325 60. 590. 828.
Convert SOAPMessage to EnvelopeDocument 60816 5350 1722 94. 910. 2630.
Convert an EnvelopeDocument to a SOAPMessage 1824 1183 34 19. 188. 117
Create an Axis based SOAPMessage
2192 424 108 5.0 49. 127
Create an XMLBeans based Envelope Document Memory Use (Bytes) Max Val Min Val Stand Error Stand Dev Mean Operation
18096 1619 347 30. 294.69 9 520. CreateWsrmFault 2072 380 19 3.6 36.203 24.7 CreateTerminateSequence 20624 1514 335 25. 250. 516.
Create a WSRM
SequenceAcknowledgement based on a set of message numbers
464 14 12 0.05 0.49 12.7
Add a WsrmSequenceDocument to an existing envelope. (Contains sequence identifier and message number)
2424 75 42 0.48 4.7 45. CreateWsrmSequenceDocument 18160 1174 224 23. 226. 335. CreateWsrmSequenceResponse 16392 1568 229 26. 261 352. CreateWsrmSequenceRequest Memory Util (Bytes) Max Val Min Val Stand Error Stand Dev Mean Operation
NaradaBrokering
Management of services
n
We prefer to build Grids (collections of web
services) that use distributed publish-subscribe
message-oriented middleware to transport all
messages.
q Our publish-subscribe software is called
NaradaBrokering (NB) and one can bind SOAP to NB transport (very different from
WS-Notification/Eventing) building a handler for this
n
NB will guarantee message delivery and its
distributed nature has implicit reliability
q However we need to maximize reliability of this
NaradaBrokering
Stream
NB supports messages and streams
NB role for Grid is Similar to
MPI role for MPP
NaradaBrokering 2003-2006
n Messaging infrastructure for collaboration, peer-to-peer and Grids
Implements JMS and native high-performance protocols (message transit time of 1 to 2 ms per hop)
n Order-preserving message transport with QoS and security profiles n Support for different underlying transport such as TCP, UDP,
Multicast, RTP
n SOAP message support and WS-Eventing, WS-RM and WS-Reliability.
• WS-Notification when specification agreed
n Active replay support: Pause and Replay live streams.
n Stream Linkage: can link permanently multiple streams – using in
annotation of real-time video streams
n Replicated storage support for fault tolerance and resiliency to storage
failures.
n Management: HPSearch Scripting Interface to streams and brokers
(uses WS-Management)
n Broker Topics and Message Discovery: Locate appropriate n Integration with Axis2 Web Service Container (?)
Management Architecture
Multiple Distribute Manager Instances
Features of the Managee Service
n
The distributed managers use
NaradaBrokering itself for robust messaging
with the “Managees” (Web Service adaptors or
proxies to each broker in NaradaBroker
Features of the Manager Service
n
WS-Management used for communicating
between Managers and Managees
n
Managers implement policy and user instructions
e - Annotation Playe
r
Archived stream playe
r
Annotatio
nplaye / WB r
Archieved stream
list
Real time stream
list
e -Annotation Whiteboar
d
Real time stream playe
r
Archived Real Time Real Tim Stream List Stream List Player
e-Annotation Archived Stream Annotated e-Annotation
Generic Recording and Replay
Framework
n A generic framework for recording and replay of any
type of streaming event or data.
n Active replay of streams: Real-time (live) streams
can be replayed, paused and rewound while streams are being recorded.
q Fast forward is available for the duration of the recorded
stream.
n Note streams are collections of events and events
are essentially messages
n Rewind is same as undo (as in Office)
q Go back N messages in stream
n Replay is same as redo i.e. re-apply sequence of
messages to a Web service ports
Generic Recording and Replay Framework
n Stream linkage: Multiple streams are linked together to
construct a session.
q A collaboration session can be recorded and replayed within
this framework. Examples;
n Anabas – Uses JMS events to transport data such as
whiteboard, shared display, audio, etc.
n GlobalMMCS – Uses NaradaBrokering RTP Events to
transport audio and video data.
n Streams can be added/removed to/from session
dynamically while the session is being recorded.
n Maintains metadata information for recorded sessions
and their streams.
q Dynamic metadata stored in high performance light weight
Uniform Event Type For Generic Framework
n Received events are wrapped inside NaradaBrokering
native events (NBEvent) with additional event specific information.
q Received event is placed to the payload of the NBEvent to
preserve original data and related information.
q NBEvent also contains timestamp information to timespace
original events during replay and event type to initiate appropriate player for that event type.
n Events and related metadata are stored in database
Session Recorders
n Session recorder includes topicrecorders that subscribe to each topic defined in that session.
n Topic recorders are like
subscribing clients receiving the streaming events. Topic
recorders are specialized for
event types. i.e. JMS events need JMS topic recorder to receive
those type of events.
n Event types for those streams are
Time Differential Service (TDS)
n Replay of events rely on one critical service: Time differential service.
n Each replay session has one dedicated TDS to achieve replay, pause, rewinding and fast forwarding of the streams in the
session in one operation.
n Achieves synchronization of multiple streams in the same session by maintaining a shared buffer for those streams.
n Maintains the timespace between the replay events equal to the timespace between the original received events .
n Resolution of this timespacing is one millisecond; events can be timespaced with one millisecond accuracy.
n TDS can be maintained on robust node (NaradaBrokering node
that provides stable storage) or on client side.
Session Players
n The primary purpose of session player is to simulate
clients in the original session.
n To achieve this;
q Each recorded topic (or stream) is mapped to a new topic
and events of the same original topic are released to the mapped topic.
q While releasing the events, timespacing between events are
preserved.
q Utilizes Time Differential Service to timespace events
n Recording of live streams are available for replay as
soon as they are stored to the reliable storage.
n Session players support replay, pause, rewind and
fast forward operations. When one of those
Session Players II
n Figure on the left
depicts a scenario for playing a session with multiple streams (NB RTPEvent or JMS