A view on Participants and Roles

Dear Colleagues,
 
I have been tempted to respond to a number of postings over the last couple
of months or so, but other factors have conspired against me.  So I have
decided to make a special effort this evening and I hope this gets to the
list before this evening's meeting.  I am writing this before I have looked
at today's emails, so I may have 'crossed' with others.
 
One of the messages I would have liked to responded to was the Matthew
Rawlings one on Participants without any roles.  I essentially agreed with
Gary's response, but would like to emphasise that, in my current view, a
role models the ability to send and receive messages (amongst other things).
Thus a participant without a role can neither send nor receive messages and
thus has no way of participating in the choreography beings described.  This
is language is all about choreography and that is the practical reason why
this does not make sense.
 
I know that I have presented my views on participant and role types several
times before, and particularly at a Face-to Face meeting as I recall, and
been beaten down, but I would like to have one more go!  (From beyond the
standards grave so to speak!)
 
A participant type has one or more role types.  The role type references a
WSDL (currently) specification for the messages that that roles of that type
are able to send and able to receive.  The participant type, and hence the
role type, is just an artefact of the specification.
 
A participant is of a participant type and contains one, or more, more roles
of role type specified to be included in that participant type.  (A point
for discussion could be as to whether to allow zero roles of an included
role type, that is effectively sub-typing, or leave that for a latter
version of the CDL spec.)  The roles model the sending and receiving of
messages according to the specified choreography.
 
So an CDL document would contain one, or more participant type definitions,
which would include (or reference) one, or more, role type definitions.
Perhaps the simplest CDL document would then have a single participant type
(Ptype A) definition with one role type (Rtype G) that could both send and
receive the same message type (Mtype 1).  The choreography would consist of
a participant (p1) of type Ptype A using a role (r1) of type Rtype G sending
a message of type Mtype 1 to another role (r2 of type Rtype G) in another
participant (p2) of type Ptype A.
 
Note that I have focussed on the message aspects of participants and roles
and their types.  I do not mean to exclude other aspects of their
specification and utility, especially variable types and variables and the
use of participants as a scoping for variable value sharing.
 
I hope this is clear and that I have not added to the confusion in what is
usually a confusing topic!!
 
Best Regards     Tony
A M Fletcher
  UK
Tel: +44 (0)1473 729537   Mobile: +44 (0) 7801 948219
 tony_fletcher@btopenworld.com         (also amfletcher@iee.org)
 
 

Received on Tuesday, 1 August 2006 18:40:33 UTC