Choreography lifeline( was RE: Proposal: To remove the initiate flag on the Interation)

Nick proposed:


*Choreography Life-line*
A Choreography life-line expresses the progression of a collaboration
through 
enabled activities and enclosed performed Choreographies.
 
Initially, the collaboration MUST be established between parties, then
work MAY be
performed within it and finally it MAY complete. 
 
A Choreography is initiated, establishing a collaboration when an  
Interaction, explicitly marked as an Choreography initiator, is
performed. 
Before this point there is no observable association between any of the
parties. 
Two or more Interactions MAY be marked as Choreography initiators,
indicating 
alternatives for establishing a collaboration. In this case, the first
performed 
interaction will establish the collaboration and the other interactions
will enlist
with the already established collaboration. 
An initiating interaction MAY be defined within a root Choreography or
within either
a Locally or a Globally defined enlosed Choreography. In either case the
collaboration is 
established when the initiating intaraction is performed.
 
A Choreography completes successfully when there are no more matched
Work
Unit(s) performing work within it and there are no enabled Work Unit(s)
within it. Alternatively, a Choreography completes successfully if its
complete condition, as defined by the optional complete attribute within
the
choreography element, evaluates to "true". In this case, the actions,
including enclosed Choreographies, within the explicitly completed
Choreography are completed abnormally before the Choreography completes.

 
<PRF>
I think we may need to be more explicit on what "actions .. are
completed abnormally" means ?
 
In the collision example, the losing interaction will be represented by
a message that is
winging its way to the supplier, who reached PO-State=completed when he
sent the completion
message and now thinks the choreography is over. That losing interaction
is apparently 
invalid. Endpoint projections will need to recognise that they should
silently ignore the
message if and when it does arrive. (and, in general, it will be very
difficult to work out
where things have progressed to - if the place-order choreography was
performed as an
element of a larger, the supplier may be well into the order-delivery
stage (another sub-choreography)
before the now-irrelevant cancel turns up.
 
What happens if other actions are juggling with variables - do they stop
dead ? In fact,
such a choreography is possibly ill-formed - it should (like Nick's
example) set its
variables consistently at the end. (coordination will help you )
 
Actually, "abnormally" isn't really right anyway - we certainly don't
want them throwing
exceptions etc.
 
Also the Life-line section needs to say something about a choreography's
"life after death" - or rather
finalization after completion, and perhaps briefly, exceptions. That
relates to the coordination 
stuff that Bob is drafting, so this is just a placeholder comment.
 
 
Peter

Choreology Anti virus scan completed

Received on Tuesday, 26 October 2004 22:10:59 UTC