Re: "Message" semantics and composition -- WAS Grounding Choreographies (the atoms)

On Tuesday, July 22, 2003, at 05:57  AM, Assaf Arkin wrote:
> Andrew Berry wrote:
>
>>
>> This approach has many advantages.  In particular, when speaking of a 
>> set of autonomous participants in a choreography, the behaviour of 
>> each participant will be based entirely on what they are able to 
>> observe from their locality.  This protects their interests and 
>> ensures their autonomy.  The choreography should respect their 
>> autonomy and explicitly specify the behaviour of participants based 
>> on what they are able to observe locally.  The causal relationships 
>> defined by the choreography then specify the expectations of other 
>> participants resulting from local behaviour of a participant.
>
> +1
>
>> Explicitly separating the local behaviour from causal relationships 
>> also has considerable advantages for composition.  Consider Arkin's 
>> example in 
>> http://lists.w3.org/Archives/Public/public-ws-chor/2003Jul/0134.html: 
>> we want to re-use the "message" interaction in many choreographies.  
>> If a message is specified from a senders perspective as a send 
>> followed by an acknowledgement, we can use this sender behaviour in a 
>> number of different scenarios, including a simple message, a 
>> delegated message or even a multicast message (e.g. for high 
>> availability).  If we "bind" the sender's message semantics to a 
>> particular interaction model then we significantly reduce the 
>> possible compositions of this behaviour.
>
> I am less in agreement on this point. While I perfectly understand the 
> premise and agree with it from one specific perspective, it is not 
> clear why there would be a constrast since causality can both occur 
> inside a locality, and can depend on things that may be true 
> regardless of autonomy or locality.
>
> For example, if we know that a service receives X and replies with Y, 
> as a requestor of that service, without violating my autonomy and 
> regardless of my location, if I send X I expect to receive Y. I am 
> fully autonomous in every respect, and my locality can change, but 
> that causality is something I expect to happen, hence define an 
> interaction around it.

The fact that the service user explicitly identifies a single service 
as receiving the X and replying with the Y restricts your options with 
respect to composition.  Extending your example, let us say that 'X' is 
a request for a flight, car, and accomodation and the 'Y' response is 
booking references for each of them.  Distinguishing between the local 
behaviour (requesting X and receiving Y) and the way it is bound to one 
or more service providers allows us to satisfy the request for X using 
a choreography involving distinct airline, car hire and accomodation 
providers without changing the behaviour of the requestor.  We only 
have to change the way that behaviour is bound to one or more providers.

In other words, local behaviour defines your service expectations, and 
the interaction behaviour defines how those expectations are met by a 
particular choreography of service providers.  Note that the service 
providers themselves have a similar view of the interactions, meaning 
they are also able to participate in different choreographies.  For 
example, it would be possible for the airline identified above to sell 
airline tickets with an adventure holiday package using the same 
service interface as that used above.

Ciao,

AndyB

>
> arkin

Received on Tuesday, 22 July 2003 10:05:56 UTC