- Forward


Web Services Reliable Messaging (WS-RM)
An Introduction


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

Motivation
Back SMYC Forward
  • Observations About TCP:
    • Limited definition of "reliable"
    • Does not know about the application protocol (e.g., whether a request must always result in a response)
  • Delivery Assurances Required by Some Applications:
    • At most once/At least once/Exactly once
    • In order
Objectives of WS-RM
Back SMYC Forward
  • Reliability:
    • Ensure messages are delivered even in the event of failures of software components, the network, etc...
  • Independence from Transport Protocol:
    • Should be implementable using different network transport technologies
Mechanisms
Back SMYC Forward
  • Sequences:
    • Each message is part of a (monotonically increasing) sequence that has a unique URI
    • Each message has a unique number in the sequence
  • Acknowledgements:
    • Each message that is successfully transferred (though not necessarily processed) is acknowledged
    • Negative acknowledgements are allowed
  • Persistance:
    • Optional
    • If provided, acknowledgements are only sent after the message was "saved"
The Process
Back SMYC Forward
  1. Establish Preconditions:
    • Policies, trust, ...
  2. Create Sequence Identifier:
    • Either source-side creation or destination-side creation
  3. Communication:
    • Source sends messages in sequence
    • Destination sends acknowledgements (perhaps consolidating them before sending)
    • Source re-sends if necessary...
  4. Sequence Termination:
    • Explicit for destination-side creation
Sequence Faults
Back SMYC Forward
  • Mechanism:
    • Using the SOAP fault mechanism
  • Types:
    • Sequence Terminated
    • Unknown Sequence
    • Invalid Acknowledgement
    • Message Number Rollover (i.e., out of numbers)
    • Last Message Number Exceeded
The wsrm:Sequence Element
Back SMYC Forward
  • Content:
    • wsrm:Identifier (required)
    • wsrm:MessageNumber (required)
    • wsrm:LastMessage (required in last message)
  • Requirements:
    • Must be exactly one such element
The wsrm:Acknowledgement Element
Back SMYC Forward
  • Content:
    • wsrm:Identifier (required)
    • wsrm:AcknowledgementRange (optional)
    • wsrm:Nack (optional)
  • Requirements:
    • Ranges must not overlap
    • AcknowledgementRange and Nack can not both appear
The wsrm:CreateSequence Element
Back SMYC Forward
  • Content:
    • wsrm:AcksTo (required)
    • wsrm:Expires (optional)
    • wsrm:Offer (optional offer of a corresponding sequence)
  • Issues:
    • May contain security tokens
The wsrm:AckRequested Element
Back SMYC Forward
  • Content:
    • wsrm:Identifier (required)
    • wsrm:MessageNumber (required)
  • Issues:
    • May be sent at any time
There's Always More to Learn
Back -