- From: David Booth <dbooth@w3.org>
- Date: Thu, 27 Feb 2003 19:19:30 -0500
- To: www-ws-arch@w3.org
Folks, In an attempt to bring this thread to closure and fruition, I've tried to summarize the main points I've seen regarding the definition of "synchronous" (though I may have missed a few details). I've tried to take these into account in reworking my proposed definition. The points below are in no particular order. If I've missed any, it was due to the sheer difficulty of summarizing so many messages -- not due to any desire to slight anyone. ---- Blocking The word "blocking" has strong programming language connotations, and should be avoided in our definition. Different levels/contexts "Synchronous" can mean different things at different levels or contexts, for example, at the wire transmission level, at the message acknowledgement level, and at the operation, interaction or conversation level. A protocol that is synchronous at one level can be implemented by a lower level protocol that is asynchronous. A message can be synchronously acknowledged, but the processing of that message might be asynchronous. Same communication channel Some have suggested that "synchronous" implies that the "reply is on the same communication channel". Although this is often the case, others have pointed out that an interaction can still be synchronous even if the request is on one channel and the response is on another. Same time Some have suggested that an operation is synchronous if it involves the initiator and respondent "at the same time". This naturally led to the question of what "the same time" means, and some formal definitions were proposed. However, several others talked about synchronous operations involving the requester waiting for the provider to respond Sending party waits The sending party waits for the receiving party to do something before the sending party continues. Thus, they are "synchronized". This also means that there is an expectation of immediate processing. This seemed to be the strongest common theme I saw. Speed Someone suggested that an interaction is synchronous if "things happening in a timely manner". Others pointed out that synchronous interaction doesn't have to be fast, even though asynchronous is usually preferred for interactions that are "slow". Request/response Someone mentioned that synchronous protocols require request/response. Someone else pointed out that asynchronous may also have request/response. Thus, although request/response may be a necessary condition, it isn't sufficient. Correlation information Someone suggested that synchronous exchanges do not require correlation information in the message, whereas asynchronous exchanges do. Timing out Someone suggested that synchronous operations "time out" if they take too long. Someone else pointed out that "timing out" implies that one party is waiting for the other and that the "timing out" is more about how the initiator deals with the situation than a defining characteristic. -- David Booth W3C Fellow / Hewlett-Packard Telephone: +1.617.253.1273
Received on Thursday, 27 February 2003 19:59:45 UTC