W3C home > Mailing lists > Public > www-ws-arch@w3.org > August 2003

RE: Issue: Synch/Asynch Web services

From: He, Hao <Hao.He@thomson.com.au>
Date: Mon, 25 Aug 2003 08:40:46 +1000
Message-ID: <686B9E7C8AA57A45AE8DDCC5A81596AB046AE757@sydthqems01.int.tisa.com.au>
To: "'Sai Surya Kiran Evani'" <evani@informatik.uni-freiburg.de>
Cc: "'Cutler, Roger (RogerCutler)'" <RogerCutler@chevrontexaco.com>, www-ws-arch@w3.org
What I tried to do is to define a really simple situation, as simple as a
request-response. No, Agent B cannot hold any number of m1 messages, it can
only hold one because of restriction 2.  Agent A cannot send next request
neither because of restriction 2. 

-----Original Message-----
From: Sai Surya Kiran Evani [mailto:evani@informatik.uni-freiburg.de]
Sent: Tuesday, August 12, 2003 5:35 PM
To: He, Hao
Cc: 'Cutler, Roger (RogerCutler)'; www-ws-arch@w3.org
Subject: Re: Issue: Synch/Asynch Web services


Comments inline...

He, Hao wrote:

Hi, Roger,
Here is my understanding about Synch/Asynch Web services.  Is it over
Suppose we have two agents in a well-controlled environment (super fast,
reliable network). Agent A sends a message m1 to Agent B and expects Agent B
to return a message m2, however long it may take. This scenario seems to me,
is a typical case of sync Web services. The essences of this process are:
1. that Agent A can relate m1 and m2 by sequence  (sending m1 to B is prior
to receiving m2 from B). 
2. that there can be no other messages between two related messages.
If we remove those two constraints, the process becomes async. Agent A can
send a number of messages to Agent B after sending m1.  When it receives m2
from Agent B, it can relate m1 and m2 together using other mechanism,
however that mechanism may be.

I guess the above sequence of messages - say, a sequence of "n"(n>=1) m1s
are sent first to Agent B and then all the replies of "n" m2s are processed
later  by Agent A  - is possible because

1. Agent B can hold any number of m1 messages
2. There is no restriction on Agent A from the above description that he
should send the next request i.e. m1 "depending" on the requests and
responses that he has already made and received. If there exists such a
restriction, then the service is synchronous because for every action taken
by one agent there is an "immediate"  matching action taken by the other
agent. Otherwise, the service becomes asynchronous where the matching action
is taken "eventually".

As you point out, there should be a way to "relate" messages in the above
asynchronous case. Above that, it seems to me that there should be a way of
expressing dependencies among sequences of messages based on which the
service and the invoker may behave synchornously or asynchronously with
above meaning. In the above case, the restriction is that a request m1 is
either the first request or dependent on the requests(m1s) and
responses(m2s) that have already transited. 

Interestingly, a process can be sync at the infrastructure level but be
async at the application level. For example, m2 can be a receipt rather than
final results an application intends to get. 


WARNING- This e-mail including any attachments, is for the 
personal use of the recipient(s) only.
Republication and re-dissemination, including posting to news
groups or web pages, is strictly prohibited without the express
prior consent of Thomson legal & Regulatory Limited
ABN 64 058 914 668

Received on Sunday, 24 August 2003 18:41:38 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:41:08 UTC