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

RE: Definition of Choreography

From: Assaf Arkin <arkin@intalio.com>
Date: Tue, 22 Oct 2002 10:53:17 -0700
To: "Ugo Corda" <UCorda@SeeBeyond.com>
Cc: <www-ws-arch@w3.org>
Message-ID: <IGEJLEPAJBPHKACOOKHNGEACCMAA.arkin@intalio.com>

I am not assuming that the protocol is synchronous. I perfectly accept the
case that the request-response operation will occur over an asynchronous
protocol.

If you are using an asynchronous protocol, then you can perform two
interactions:

1) Service X can start both interactions one after the other, but not expect
one interaction to end before the second one begins. In this case, service X
can receive the response of the second interaction before the response of
the first interaction.

2) Service X can start the second interaction after it receives the response
to the first interaction, in which case it knows that the first operation
has completed before the second one starts.

However, if service X performs the interactions in the second manner, if can
deduct the order in which operations are performed by service Y. That means
that if service X orders the interactions to occur sequentially, waiting for
one to complete (response received) before beginning the second one, it
observes a synchronous pattern.

You can also deduct that by performing two asynchronous operations, e.g.
service X performs one-way interaction followed by notification interaction.
In this case, you use to asynchronous operations to compose a synchronous
pattern.

To be more precise, the synchronous nature of the operation from the
perspective of the service is a matter of whether the operation involves
two-way message exchange, or one-way message exchange. The synchronous
nature of the operation from the perspective of the protocol (e.g. SOAP), is
a matter of whether the operation is composed into a single two-way
communication, or performed over two one-way communications.

Two asynchronous communications (message exchange at wire level) can be used
to create a synchronous operation (interaction at service level). To add
even more confusion, a synchronous communication (message exchange at wire
level) can be used to create an asynchronous operation (interaction at
service level).

arkin


It looks like you are assuming that the Request/Response MEP is only
synchronous, which is not the case. (In particular, in a sequence of two
such interactions between X and Y, the second response can get back to X
before the first response).

Ugo

-----Original Message-----
From: Assaf Arkin [mailto:arkin@intalio.com]
Sent: Tuesday, October 22, 2002 10:25 AM
To: Ugo Corda
Cc: www-ws-arch@w3.org
Subject: RE: Definition of Choreography


Just my $0.2c

You have service X and service Y. Service Y defines a request-response
operation. Service X sends the input message to service Y and receives the
output message. That entails, as far as I understand it, that service Y
receives the input message and produces the output message. Once service X
has received the output message, service Y has completed the operation
(strictly concerning what WSDL defines of it).

Given a sequence of two such interactions, once service X has received the
second response message, it knows that service Y has performed both
operations.

>From the interaction, service X can infer what service Y is doing at a
particular point in time. That is a synchronous operation.

You have service X and service Y. Service Y defines a one-way operation.
Service X sends the input message to service Y over high latency protocol.
Service X does not wait for a response message, it goes on to do the next
thing. Later on, service Y receives the input message and completes the
operation (again, strictly concerning what WSDL defines of it).

Given a sequence of two such interactions, once service X has sent the
second message, it has no guarantee that service Y has performed the
operation twice, or even once.

>From this interaction, service X cannot infer what service Y is doing at a
particular point in time, and assuming the message is never lost, it can
only tell what Y will do at a future point in time. That is asynchronous.

arkin



Arkin,

>WSDL defines an abstract message as a container of multiple message parts.
>That message can be used in multiple operations. The operation definition
>gives it the proper semantics and also indicates the direction of the
>message flow, and whether it completes synchronously or asynchronously.

I don't see where WSDL says anything about the fact that an operation is
synchronous or asynchronous. Could you please clarify?

Thank you,
Ugo
Received on Tuesday, 22 October 2002 13:52:28 GMT

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