A clarification on the meaning of "initial message".

Since there is going to be a confcall today, it is worth clarifying why 
I am positive
about the previous proposal about having an explicit "initiation" 
message, in spite
of its apparent unpopularity.

Currently when a participant, say Alice, starts a conversation with 
another, say Bob,
and if this is part of choreography, the only way to say this is 
invocation of the same
service as before (suppose you repeatedly interact with a directory 
server during your
main conversation) is to use perform and subchoreography.

The type structure as used in the working note, especially how endpoint 
projection is
performed, uses this idea crucially. (I gave examples in my previous mail).

I once thought of allowing users to specify this initial message, but at 
that time we
have not finished the theory in the working note: so I was not too sure 
to boldly
present this idea.

However I now have a stronger reason to have a notion of session in 
global descriptions,
to do a good EPP.  Then Gary mentioned this previous proposal (which may 
be based
on a similar operational understanding, if not about types): I found it 
great.

Here are my practical assessments.

(1) We cannot make explicit interleaving of sub-conversations 
(sub-choreographies) 
with "perform": but if subchoreographies are self-contained (i.e. until 
it returns, no
interleaving of communication exist) then it is enough just to have a 
subchoreography.

(2) I think interleaving cases will arise rather often (such as using 
directory services
several times and you need another series of conversation for refining a 
query in the
same conversation with that directory service). In such cases having an 
initiating
message gives a clearer structure, just as perform gives a clearer 
structure to description.
In other words this gives a more flexible version of perform.

(3) However if we forget structuring, the sequences (traces) of 
interaction can still
be represented without this initiation message specified.

(4) For EPP of the cases of (2), one measure is to use XML's (or CDL's?) 
comments
for specifying  additional information to say some interaction is initial.

(5) Having this may be convenient for having correspondence with e.g. 
BPEL, via 
EPP or its converse.

One reason I wish to put it is that, with this, we have all information 
necessary to
embed the theory in the working note in CDL. However there are a lot to 
discuss here,
for example whether EPP is a must for CDL (which we believe: however we 
do need
more discussions on the engineering positioning of EPP). 

All in all,  I think it may be harmless to have "initial". At the same 
time, I can see
Monica and Yves and Martin also found this an alien element in the present
CDL description disciplines and styles. That is also important 
observations for this
version of the language.

The rest, therefore, I wish to leave to your discussions, today or 
later. A fully fledged
global language was first given in the form of CDL 1.0, as far as I 
know: it is natural
many important design choices and features still remain to be discussed 
and examined,
including its theoretical basis and execution models. In the coming 
years, we shall
learn many things about the design and use of global languages.

kohei

Received on Wednesday, 1 November 2006 15:19:31 UTC