- 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>
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 UTC