W3C home > Mailing lists > Public > www-ws-arch@w3.org > March 2003

RE: Reliable Messaging Summary

From: Assaf Arkin <arkin@intalio.com>
Date: Wed, 5 Mar 2003 11:30:06 -0800
To: "Cutler, Roger \(RogerCutler\)" <RogerCutler@ChevronTexaco.com>, <www-ws-arch@w3.org>
Message-ID: <IGEJLEPAJBPHKACOOKHNCEMKDEAA.arkin@intalio.com>
FW: Reliable Messaging Summary
  Reliability:  A predictable quality of service. This is a separate issue
from fault tolerance, availability, or security.

  +1

  Reliable Messaging:  1) The ability: (a)of a sender of a message to be
able to determine whether a given message has been received by its intended
receiver and to take compensating action in the event a given message has
been determined not to have been received. (b)of the intended receiver of
the message to be assured that it receives and processes a given message
once and only once. of both sender and receiver of a message to carry out
(a) and (b) with a high probability of success in the face of inevitable,
yet often unpredictable, network, system, and software failures. 2) Common
Usage: An acknowledgement infrastructure between application and transport
layers intended to improve messaging reliability as described above.

  +1 with one change.

  The word 'whether' implies possibilities. It's not possible to know if the
message has not been received, but it's possible to determine that it has
been received (e.g. by receiving an ack). So I would suggest a minor
rephrase:

  "sender of a message to be able to determine that a given message has been
received by its intended receiver and to take compensating action if it
determined that the given message has not been received."

  I would also like to add two other point which I think should be covered
in the text to remove confusion.

  The term 'reliable messaging' is used to refer to a certain form of
messaging which is used to build reliable systems, but in itself is not a
solution for building reliable system. Whether we're talking about formal
models such as reaching concensus in face of failure, or about practical
implementations such as using coordination protocols and persistent queues:
these are all solutions for addressing reliability which tend to rely on
reliable messaging in one form or another.

  So my first suggestion is for the text addressing the issue of reliability
to indicate that solutions for addressing reliability (coordination,
persistence, etc) tend to rely on a messaing framework that provides
reliable messaging, and not suggest that RM is a solution for reliability.

  Reliable messaging can be addressed by various solutions depending on the
medium being used. If the communication is fully encapsulated in HTTP
request response, then the medium is IP and RM is actually addressed by TCP
(which has an ack infrastructure on top of TCP). If the communication is
encapsulated as a sequence of HTTP exchanges, then the medium is HTTP, and
RM is addressed by something on top of RM (WS-RM, or the recent specs
released by BEA, both address that).

  So my second suggestion is to somehow indicate that solutions are required
for different protocols, some of which are already available and others
which are being defined. Which solution is used depends on which protocol is
used, and solutions need to be offered for protocols which do not already
offer RM. For example, a synchronous request/response over a single HTTP
connection does not require any additional layer. BEA's specs give a good
example for a protocol built on top of HTTP which does require RM and
provide the minimal specification for addressing that. WS-RM also
illustrates such scenarios where WS-RM should be used.

  arkin



   Ac  knowledgement Infrastrucure - A set of rules defining how the parties
to a message should subsequently communicate with each other concerning the
receipt of that message and its validity.

  Message Validity: Three questions may be asked, in the order given below:
  1 - Was the message received the same as the one sent? Typically
determined by byte counts, check sums or other techniques that assure the
message is in the same as sent.

  2 - Does the message conform to the formats specified by the agreed upon
protocol for the message? typically determined by automatic systems against
syntax constraints (eg xml well formed) and structural constraints (validate
against one or more xml schemas or WSDL message definitions).

  3 - Does the message conform to the business rules expected by the
receiver? Additional constraints and validity checks performed by a business
process, typically checked by application logic and/or human process
managers.

  Thoughts on RM from Anne Thomas Manes:
http://lists.w3.org/Archives/Public/www-ws-arch/2003Feb/0425.html
  RM Breakout Notes:
http://lists.w3.org/Archives/Member/w3c-ws-arch/2003Jan/0085.html
  From Roger Cutler:
http://lists.w3.org/Archives/Member/w3c-ws-arch/2003Jan/0086.html
     and http://lists.w3.org/Archives/Member/w3c-ws-arch/2003Jan/0087.html
  From Dave Hollander:
http://lists.w3.org/Archives/Member/w3c-ws-arch/2003Jan/0088.html
Received on Wednesday, 5 March 2003 14:33:11 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:16 GMT