W3C home > Mailing lists > Public > public-ws-chor@w3.org > July 2003

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

From: Assaf Arkin <arkin@intalio.com>
Date: Wed, 23 Jul 2003 09:16:52 -0700
Message-ID: <3F1EB4F4.8080406@intalio.com>
To: Andrew Berry <andyb@whyanbeel.net>
CC: Francis McCabe <fgm@fla.fujitsu.com>, public-ws-chor@w3.org

Andrew Berry wrote:

> Arkin,
> I think we are talking about similar things but from different 
> viewpoints.  Let me try to clarify.

I actualy think we're talking about the same thing from the same 
viewpoint ;-)

> Getting back to the original reason for this thread, a message has at 
> least two viewpoints (sender and receiver) and they differ because the 
> viewpoints are phyically distributed and autonomous.  Modelling a 
> message as an atomic entity is therefore misleading, somewhat complex 
> and potentially incorrect.  This was my primary reason for suggesting 
> caution and also suggesting an alternative: modelling all interactions 
> as local behaviour (e.g. send@X, receive@Y) with causal relationship 
> specifications used to imply messaging (e.g. send@X -> receive@Y).

Which is precisely my point. Or at least what I think I was arguing for, 
which is modeling activities that are local (send/receive), and looking 
at the relationship which is a non-local causal one (send@X precedes 
receive@Y). So the causality relationship is across all interacting 
systems, but each interacting system is modeled as an autonomous system.

I was agreeing with everything you said in the original e-mail, only 
trying to point out that the causality relationship spans the different 
localities. If the specification implies that send@X -> receive@Y, then 
that's exactly what it does.

> It was my understanding that multi-party interaction was one of the 
> desired outcomes of this work, so please correct me if I have 
> misinterpreted.  The approach I'm suggesting is a single choreography 
> between one or more service providers and a service consumer.  If the 
> service consumer requires that the request be satisfied by a single 
> service provider (which is my interpretation of "between two services" 
> above), then you effectively force the service consumer and providers 
> to change their "published" behaviour to interact with a multi-party 
> choreography, even though their actual behaviour is unchanged.  I 
> don't think this is what you meant so I would appreciate further 
> clarification of your intent.

Multi-party interaction is the desired outcome. But bi-party is also a 
form of multi-party, where n=2. I wasn't trying to restrict the example 
to just two parties, I just used two parties for a specific example. The 
model we are talking about - and I'm pretty sure we're talking about 
exactly the same thing - extends well from 2 to any arbitrary number of 

> It's quite some time since I looked at the mobile process calculus and 
> I should probably brush up.  Can you suggest some relevant reading 
> material?

Following the discussion so far, I think you got all the points 
correctly. There's a published list of resources, specifically 
pi-calculus, somewhere in the archive. SRT can probably point you to 
that list. To summarize the important points:

1. You express the behavior of each autonomous entity (e.g. the 
traveller, or the airline)
2. The behavior is expressed in terms of activities you would perform 
around messages (e.g. send requestX, receive response Y, ...)
3. By virtual of using the same channel/port/name you implicitly express 
causality across localities (send request@X->receive request@Y)
4. While pi-calculus calls it a port, it does not need to represent an 
actual service address but can be an abstract service type (e.g. airline 
not united, car rental not avis)
5. The combination of these autonomous processes is a process in itself 
(the choreography) but they can be combined into any number of 
choreographies (reuse)

Mobility is the fact that a process can reside at any location and you 
don't need to know the location upfront. So you can express an 
interaction with some process representing an airline. It can be a 
different airline at different times. To get the stuff to work you need 
to pick some airline and interact with it, but you don't need to write a 
choreography for the specific airline.

>> But that model does also point out to the fact that causality does 
>> extend across two or more interacting processes, since by defining 
>> their interactions you are extending the casuality model across the 
>> chain of interactions.
> This is exactly the point: in a multi-party choreography, you do not 
> need to explicitly specify or implement direct interactions (messages) 
> between parties, rather, you can deterministically imply those 
> interactions through a specification of cause/effect relationships 
> between visible local behaviours.  By using specification of 
> cause/effect relationships, you capture the more abstract 
> business-level interactions without constraining how they are realised 
> (i.e. you can use any messaging technology you like).  There are a 
> number of examples of this in my thesis and papers.  In particular, 
> chapter 8 section 8.3 of the thesis has a purchase order "binding" 
> (binding == choreography to a large extent) describing a purchasing 
> interaction involving a purchaser, supplier, bank and freight provider.


As a side point, my presentation during the F2F meeting was all about 
causality. I think this is what we should focus about in a choreography 
language, and if we pick an adequate model for expressing the 
cause/effect relationship that is abstracted from the messaging 
technology, combined with WSDL which allows us to abstract and then 
combine messaging/endpoints, we would end up with a powerful solution.


> Ciao,
> AndyB

Received on Wednesday, 23 July 2003 12:17:26 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:01:00 UTC