- From: Cutler, Roger (RogerCutler) <RogerCutler@ChevronTexaco.com>
- Date: Mon, 23 Sep 2002 13:46:40 -0700
- To: www-ws-arch@w3.org
- Message-ID: <7FCB5A9F010AAE419A79A54B44F3718E2EAEFF@bocnte2k3.boc.chevrontexaco.net>
I believe that one of the actions that came out of the F2F as generally desirable was to agree on a definition of reliable messaging. There were some threads on this subject a couple months ago, and I did not see a consensus emerging at that time. Following I document the "end points" I can find from these threads, along with some personal comments in [brackets]. I start with the definition that seemed to come closest to generating consensus and work downward according to my personal perception of how much consensus was achieved. One overall comment: None of these definitions seem to recognize explicitly that the degree of certainty achieved by reliable messaging is, in practice, a matter of balancing cost and benefit. Definition I - (Amalgamation of two) http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0283.html <http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0283.html> http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0290.html <http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0290.html> Reliable messaging refers to: 1) the ability of a sender 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 2) the ability of the intended receiver to be assured that it receives and processes a given message once and only once 3) the ability of both sender and receiver to carry out 1 & 2 with a high probability of success in the face of inevitable, yet often unpredictable, network, system, and software failures. [This one was the result of the longest thread and seemed to be the one closest to having some consensus. I personally think that it needs restating to say positively what reliable messaging "is", not what it "refers to", and at that point the choice of verbs is likely to be tricky in order to avoid appearing to guarantee that which cannot be done.] Definition I(a) - (Addition to Definition I) http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0290.html <http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0290.html> 4) The ability of a participating web services to coordinate and align their transaction-related operations such that they can either commit or roll back updates to their respective resources (e.g., application database and transactional objects, persistent queues, etc.) used in the end-to-end web service transaction. [I personally think that this issue is outside the scope of what people are generally talking about when they use the term reliable messaging, and I am not in favor of going in this direction.] Definition II - http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0281.html <http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0281.html> I was involved in ebXML Messaging from the early days, so how about this as a statement of the requirement from an ebXML perspective ... Reliable Messaging is the ability for one service to use a protocol to send a message to another so that: 1. The sender of the message is provided with positive confirmation that the message was successfully delivered 2. The probability of successful delivery of the message is very high 3. The recipient of the message can identify and, if required, ignore any duplicates of the message 4. The sender of the message is notified if, for some reason, delivery of the message was not possible or is uncertain [I personally like this one, except that I'm not sure if 4 is possible to guarantee and I would be happier if the verbiage was wordsmithed to make it seem less like a sure thing that these things are going to happen every time]. Definition III - http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0218.html <http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0218.html> Reliable messaging is a protocol for sending and receiving messages over the web which, if followed by all participants in the messaging, will reduce the uncertainty of the message transmission to a practically acceptable level. More specifically, if A sends a "reliable message" to B, who is not necessarily expecting a message at a particular time, A may be assured that the process will terminate (usually after a known time interval) in one of three states. The reliable messaging protocol attempts to maximize the probability of the first state and minimize that of the third state. State 1: The message has been received by B and a confirmation has been sent back to A. Both A and B agree that the message has been successfully received. (An elaboration of this is that B may send a confirmation message back to A that the message has been received but that it was "damaged in transit"). State 2: The message has not been received by B. Both A and B agree that no message has been successfully received. [This was my stab at a definition that started the threads. I personally like it because I understand it and I think it is reasonably accurate, but it did not seem to gather a lot of support.] Definition IV - http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0277.html <http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0277.html> Here is a quote from the ebXML Message Service Specification v2.0 [1], p. 35: "Reliable Messaging defines an interoperable protocol such that two Message Service handlers (MSH) can reliably exchange messages, using acknowledgement, retry and duplicate detection and elimination mechanisms, resulting in the To Party receiving the message Once-And-Only-Once. The protocol is flexible, allowing for both store-and-forward and end-to-end-messaging." [I personally feel that this definition is flawed because it seems to promise something that probably cannot be done and certainly is not done by the ebXML messaging spec. The ebXML messaging spec does not guarantee that the To Party will receive a message once and only once, and I believe that it does not recognize adequately the possibility that Sender and Receiver will disagree at the end of the process about whether the message has been delivered.]
Received on Monday, 23 September 2002 16:47:17 UTC