W3C home > Mailing lists > Public > www-ws-arch@w3.org > October 2002

RE: How to determine if an operation is synchronous

From: Ugo Corda <UCorda@SeeBeyond.com>
Date: Tue, 22 Oct 2002 17:14:01 -0700
Message-ID: <C513FB68F8200244B570543EF3FC65370A855BDC@MAIL1.stc.com>
To: "'Assaf Arkin'" <arkin@intalio.com>
Cc: www-ws-arch@w3.org

Arkin,
Your definition of synchronous/asynchronous does not seem to be the same as
the commonly used one for Web services operations (see for example [1]).
This commonly used definition is basically about the client blocking or not
after submitting a SOAP request (and such behavior is not described by WSDL,
as far as I can see).

Assuming we adopt your definition, could you please explain how WSDL
provides the information that would allow me to tell a synchronous operation
from an asynchronous one (according to your definition)?

Thank you,
Ugo


[1] http://www-106.ibm.com/developerworks/webservices/library/ws-asynch1/

-----Original Message-----
From: Assaf Arkin [mailto:arkin@intalio.com]
Sent: Tuesday, October 22, 2002 4:20 PM
To: Ugo Corda
Cc: www-ws-arch@w3.org
Subject: How to determine if an operation is synchronous


Let's assume two nodes, A and B, that exchange a message through some
protocol(s) of unknown latency L.


Asynchronous:

A sends a message M1 at time T1, B receives the message M1 at time T2. T2 =
T1+L.

Since neither A nor B know what L is, A cannot determine when B received the
message, nor can B determine when A sent the message.

(The message may contain a time stamp equal to T1, but it's possible that
A's clock is off compared to B's clock, and so the time reading is not
reliable)


Synchronous:

A sends a message M1 at time T1, B receives the message M1 at time T2. Again
T2 = T1+L. B processes the message, the processing time P is unknown as
well. B sends back the message M2 at time T3. T3 = T2+P = T1+L+P. A receives
the message M2 at time T4. T4 = T3+L = T1+2*L+P.

Since A and B do not know L, A cannot determine when B received M1 or sent
M2, nor can B determine when A send M1 or received M2.

A knows that its operation occurred around the time instant Ta. Ta is
calculated from the mean time of the operation. Ta =
(T1+T4)/2.

B knows that its operation occurred around the time instant Tb. Tb is
calculated from the mean time of the operation. Tb = (T2+T3)/2.

Ta = (T1+T4)/2 = (T1+T1+2*L+P)/2 = T1+L+P/2 =(T1+L+T1+L+P)/2 = (T2+T3)/2 =
Tb

So, whatever L and P are, both operations occur at the same time instant. We
say that A and B are synchronized.

Now, if A included a time stamp in the message M1 (T1), and B included two
time stamps in the message M2 (T2, T3), then A could synchronize it's clock
against B. A can't just use the values T2 or T3, because A's clock can be
off compared to B's.

But A knows that it's operation occurred at Ta (it's clock), and knows that
Ta=Tb+offset, and knows that Tb=(T2+T3)/2 (T2,T3 given from B's clock), so
it knows the offset is Ta-(T2+T3)/2. A can now synchronize it's clock with
B's.

arkin
Received on Tuesday, 22 October 2002 20:14:32 GMT

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