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 14:06:20 -0800
To: <jdart@tibco.com>
Cc: "Cutler Roger \(RogerCutler\)" <RogerCutler@ChevronTexaco.com>, <www-ws-arch@w3.org>
Message-ID: <IGEJLEPAJBPHKACOOKHNIEMPDEAA.arkin@intalio.com>



> -----Original Message-----
> From: Jon Dart [mailto:jdart@tibco.com]
> Sent: Wednesday, March 05, 2003 12:51 PM
> To: Assaf Arkin
> Cc: Cutler Roger (RogerCutler); www-ws-arch@w3.org
> Subject: Re: Reliable Messaging Summary
>
>
> I'd like to point out that a truly asynchronous protocol, such as JMS,
> doesn't easily fit into the web service reliability models I've seen so
> far. JMS producers and consumers are decoupled. Message persistence is
> under control of the producer. "Durability" -- the ability to receive
> messages that have arrived while disconnected -- is a consumer-side
> option. Duplicate detection is also a feature you turn on or off at the
> consumer end. Acknowledgement is yet another option. Neither end can
> dictate the full spectrum of reliability options for the interaction.
> Exactly which flavor and degree of reliabiliy you get depends on the
> combination of options selected.

Can we say that the JMS API should be used with some JMS provider in a
manner that is required to support the protocol?

For example, if the communication requires durability at the consumer side,
then this would be expressed in generic terms (protocol/API independent) but
the implementation using JMS would have to use the API by setting specific
fields, e.g. creating or using a durable queue?

arkin

> You can design a protocol that enables end to end reliability, in some
> sense, using an inherently unreliable transport. IMO this effort should
> also be able to map to an inherently reliable transport if such is
> available. But those transports have restrictions and peculiarities that
> then need to be respected: otherwise the binding will not work. I am
> concerned that the modelling to date has been a bit too HTTP-centric.
>
> --Jon
>
> Assaf Arkin wrote:
> >
> >
> >     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 17:12:01 GMT

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