350 likes | 461 Views
FIRMS: Federation & Implementation of Reliable Messaging Specifications for Web Services. Geoffrey Fox (managerial contact) Shrideep Pallickara (technical contact) October 21 2004 Southampton. Staffing and Contract Update. Contract still waiting negotiation of terms and conditions
E N D
FIRMS: Federation & Implementation of Reliable Messaging Specifications for Web Services Geoffrey Fox (managerial contact) Shrideep Pallickara (technical contact) October 21 2004 Southampton
Staffing and Contract Update • Contract still waiting negotiation of terms and conditions • e.g. is the State of Indiana part of British Empire and subject to its laws • Have interviewed two good software engineers • Shrideep gave them each a one day exam
Broker Broker Broker Broker Service NB as Appl. Logic Handler NB as Service Handler Appl. Logic FIRMS and FINS • Are built on NaradaBrokering Software with a different leaner deployment • Can use original deployment if need additional features Original Subscriber Publisher Subscriber Subscriber FIRMS
Forthcoming Features • Production implementations of WS-Eventing, WS-Notification, WS-RM and WS-Reliability. • Time Differential Services: Preserve time spacing between events, that are time-stamped using high-resolution timers. • Active replay support: Pause and Replay live streams. • Replicated storage support for fault tolerance and resiliency to storage failures.
WS-Reliable Messaging • Specification from IBM, and Microsoft • Leverages the WS-Addressing and WS-Policy specifications. • Provides support for both positive and negative acknowledgements. • Provides operations for explicit creation and termination of sequences. • Delivery assurance mode supported: at-least-once, at-most-once, exactly-once, and ordered delivery
WS-Reliability • Specification from Fujitsu, Oracle, and Sun • Provides support for positive acknowledgements. • Provides support for a variety of message-exchange patterns. • Request/Response, One-way, Polling • Delivery assurance mode supported • Unreliable, at-least-once, ordered-and-exactly-once • Under consideration by the OASIS to be a standard
M(n) M(n+1) Service B Service A Mechanisms for Reliable Messaging I • There are essentially sequence numbers on each message • Unreliable transmission detected by non-arrival of a message with a particular sequence number • This is “just some TCP reliability” built at application level (Service level Internet) • One can either use ACK’s – Receiver (service B) positively acknowledges messages when received • Service A fully responsible for reliability • Or NAK’s – Service B is partially responsible and tracks message numbers – sends a NAK if sequence number missing
Mechanisms for Reliable Messaging II • Each message has a retransmission time; messages are retransmitted if ACK’s not received in time • Uses some increasing time delay if retransmit fails • Note need to be informed (eventually) that OK to throw away messages at sender; pure NAK insufficient • Note this is reliability from final end-point to beginning end-point: TCP reliability is for each link and has different grain size and less flexible reliability mechanisms • There are several efficiency issues • Divide messages into groups and sequence within groups • Do not ACK each message but rather sequences of messages • NAK based system attractive if high latency (some mobile devices) on messaging from receiver back to sender
Filter 2 NaradaBroker Filter 1 Custom Message Reliability 2 second PDA reply latency! Different endpoints may well need different reliability schemes. Another reason to use application layer. Need to define easy touse “standard reliabilityprofiles Wireless Optimized WS-RM WS-RM WS-Reliability
Handlers and Filters in-memory Processing Built-in Handlers ProcessWS-RM
WS-……..Handler WS-RMHandler Deployment Issues for “System Services” • “System Services” are ones that act before the real application logic of a service • They gobble up part of the SOAP header identified by the namespace they care about and possibly part or all of the SOAP body • e.g. the XML elements in header from the WS-RM namespace • They return a modified SOAP header and body to next handler in chain Header Body e.g. ……. Could be WS-Eventing WS-Transfer ….
Legacy Service WS-RMService WS-RM removed from SOAP Header WS-RM enabledSOAP Proxy Distributed WS-RM Processing • A handler is like an in memory “service” so one can build handlers that can alternatively be deployed “outside” application service and look like a WS-RM service. • Comments on handlers as services paradigm? • Will capture this as a deployment memo • Handlers could be just part of application logic – more natural for WS-Eventing than WS-RM
Stable Storage • This is where messages are stored until receiver indicates that message has been successfully processed • In memory, Flat Files, MySQL supported • In memory (default?) or Flat File is sufficient for WS-RM messages that do not require sophisticated search • Can store messages at one or more distributed NaradaBrokering sites • Could keep messages for a long time! • All “new” communication will be done using SOAP and WSDL defined ports
Complicated NaradaBrokering • NaradaBrokering has more capabilities than OMII needs • We will make them optional to reduce code bloat • NaradaBrokering could implement Handler chains for protocols and WSDL bindings not supported by AXIS • UDP plus WS-RM (or equivalent) has been shown to outperform traditional TCP over high bandwidth high latency links • Also supports parallel TCP and GridFTP
WSRM/WSR Similarities • Messages are part of a sequence/group of messages. • Addresses issues pertaining to ordering and duplicate detection. • Quality of service constraints are applied to groups of messages. • Recommends message-level security: specifically WS-Security for secure delivery of messages. • Provides framework for reporting faults/errors in processing between endpoints involved in reliable delivery • Provide support for acknowledging multiple range of messages received within a group/sequence.
WSRM/WSR Differences • WSR has no support for negative acknowledgements. Retransmissions are always initiated by the source of messages. WSRM supports negative acknowledgements. • WSRM has an explicit operation for the creation of sequence and associated sequence identifier. WSR has no such operation, a new group begins when a receiver has encountered a new groupID. • disadvantage: difficult to resolve collisions in group id namespace • WSRM uses WS-Policy for specifying and exchanging featured info. WSR does not advocate any specification though it alludes to an abstract concept of agreements. • Order is always tied to duplication elimination in WSR. WSRM allows order and duplication detection to exist independent of each other • WSR incorporates a HTTP binding for its specification. WSRM currently does not have one; though one can simply use SOAP’s HTTP binding. • WSRM has explicit termination of sequences. WSR groups cannot be terminated. They are first closed and then removed.
Federation, Why? • WSRM being supported by powerful group: IBM/Microsoft. • WSR being actively considered for recommendation as a standard by OASIS • It is quite possible that these specification may continue to co-exist for a while. • Federation would allow end-points belonging to different specifications to communicate with each other.
Federation, How? • Mapping of physical (XML) elements and semantics associated with these specifications. • Mapping of sequence numbering. WSRM starts numbering at 1, WSR starts at 0. • NAKs in WSRM messages will simply be ignored, since WSR does not support it. • Mapping of policy elements and rules associated with where/when and the combination in which multiple policy/agreement elements may occur. • Enforcing constraints on delivery. WSR provides a subset of the delivery modes available in WSRM • Mapping of faults/error reporting • Creation/Termination of sequence in WSRM have no equivalents in WSR. • So terminate-sequence in WSRM will trigger multiple requests/retransmission to ensure WSR has received everything. Group expiry time then needs to be updated at the WSR side.
FINS: Federation & Implementation of Notification Specifications for Web Services Geoffrey Fox (managerial contact) Shrideep Pallickara (technical contact)
WS-Eventing • Delivery Modes: Push • Pull and Trap (UDP Notifications) through WS-Management • Subscription Manager can be a separate Web service or part of handler bundled with Source Web Service when it gives as in OGSI special ports for each Source service
WS-Notification • WS-BaseNotification, WS-BrokeredNotification, WS-Topics, WS-ResourceProperties and WS-ResourceLifetime
WS-Eventing/Notification Issues • IBM (Sun ..) joined Microsoft (BEA. Tibco) in new August 2004 specification • WS-Eventing will presumably replace WS-BaseNotification as core of WS-BrokeredNotification • We made WS-Eventing as our highest priority • Eventually support WS-Eventing, WS-Notification and JMS (Java Message Service) in a federated model • WS-Metadata needed to query WS-Eventing sources • Not in current OMII plans but clear how to add • Note FINS will use FIRMS in all messages if desired