- From: Assaf Arkin <arkin@intalio.com>
- Date: Mon, 16 Dec 2002 14:38:03 -0800
- To: "Cutler, Roger \(RogerCutler\)" <RogerCutler@ChevronTexaco.com>, <www-ws-arch@w3.org>
- Message-ID: <IGEJLEPAJBPHKACOOKHNCEAHCPAA.arkin@intalio.com>
Reliable Messaging Summary - ContThere are typically three problems that need to be addressed: Layer 1: How to get a message from sender to receiver Layer 2: How to improve the reliability of the delivery Layer 3: How to synchronize the work performed using such a delivery mechanism You want to be able to use a protocol that is efficient in order to allow a scalable solution. Several protocols come to mind, like UDP (exteremly low latency, low reliability), HTTP (low latency, high reliability), SMTP (high latency, medium reliability). An optimal solution would work equally well for all these protocols and additional protocols. (Perhaps you are using a proprietary protocol since both sender and receiver happen to be hosted by the same system) If the medium you use is extremely reliable you will typically not consider a solution for layer 2. For example, if you need to deliver a message and can tolerate significant delay, SMTP will work for you (SMTP actually does layer 2 for you). However, you may not consider delays acceptable, in which case you need improved reliability through resending. You may also want protection from a possible modification of the message by intermediary, again something that layer 2 would offer. Layer 2 works to eliminate message loss as much as possible. It does so in several ways: - Using signatures it can prevent an attacker changing the message en route, so the message recevied is always the message sent - Using persistence it can assure that a message received will be available for processing - Using resend it will increase the likelihood that a message reaches its destination to the point where costly solution to message loss (handling it at the application level, human intervention) are acceptable Even if you have an extremley reliable medium you would still want to have layer 2 in there so you never end up processing the wrong message or losing a message that you acknowledged. Layer 2 will never guarantee that the message is processed, processes as was intended by the sender, or provide the sender with information about the processing of the message. So if two systems need to synchronize the work they are doing, they need to resort to layer 3. I would not call layer 3 reliable messaging. Even though it improves reliability by extending layer 2, what it tries to address is actually coordination. TCP/IP works at layer 3 since it attempts to allow two nodes to synchronize with each other. Since it is based on IP, it must be able to address layer 2 in one way or another, and I guess the decision was to implement layer 2 as part of TCP/IP instead of relaying on a separate protocol that does "reliable IP". Actually, I can think of a benefit for doing both layer 2 and layer 3 inside TCP/IP, but I don't think that benefit extends to WS. ebXML also works at layer 3 since it tries to address interactions that are part of a business transaction. So it actually does the work of layer 2 and layer 3, simplifying the development of the business application by placing as much of the workload on top of the RM. In effect it is trying to go beyond reliable messaging and into coordination (asking what the state of the transaction is, asking to cancel it, etc). I think ebXML offers a very coherent approach to the problem of reliable messaging and coordination in a single specification. The WS Architecture working group needs to decide whether that should be addressed by a single specification, or a combination of specification. A possible solution would be to address reliable messaging at the protocol layer (XMLP and SOAP), provide additional synchronization capabilities at the coordination layer (BTP, WS-Transaction) and allow the applications to define a synchronized protocol on top of these two layers (choreography). arkin -----Original Message----- From: www-ws-arch-request@w3.org [mailto:www-ws-arch-request@w3.org]On Behalf Of Cutler, Roger (RogerCutler) Sent: Monday, December 16, 2002 11:54 AM To: www-ws-arch@w3.org Subject: Reliable Messaging Summary - Cont Let me try to add to the summmary I posted earlier of the Reliable Messaging threads to cover the more recent activity. Again, I may get this wrong, but if I do please help out. It seems to me that in the recent, sometimes very detailed, threads we are now seeing a second model for Reliable Messaging. That is, the first more or less takes the ebXML spec as the starting point, the second pretty much builds on the concepts embodied by TCP/IP. These approaches appear to have many features in common, but I do not think that they are identical. I am, unfortunately, unable to select a representative set of references on the TCP/IP-like thread, other than the already referenced "six level" starting point. Perhaps the experts would care to summarize where it stands? It seems to me that it would make sense, in a potential handoff to XMLP, to make them aware of both approaches and let them reconcile them or whatever.
Received on Monday, 16 December 2002 17:38:35 UTC