Sunday, October 4, 2009

Advanced Control Flow Relating Interactions;

In addition to the basic control flow

constructs, there are advanced control
flow constructs in Let�s Dance. Several

interactions can belong to a composite
interaction. None of the contained interaction

instances can become enabled
before the enclosing composite interaction

instance has become enabled, and
the composite interaction instance can only

complete after all contained interaction
instances have completed or been skipped.
Interactions can also be guarded, meaning that

at the moment an interaction
instance could become enabled, a guard

condition must be fulfilled. If this
condition is not fulfilled, the instance is

skipped. Finally, repetitions and parallel
branching with an unbounded number of branches

are modelled through
repeated interactions. There are four types of

repeated interactions, similar
to those in programming languages: while,

repeat, for each (sequential), and
for each (concurrent).
�For each� repetitions have an expression

attached that determines a collection
over which the repetition is performed. The

knowledge about how
many instances are to be created for this

interaction might be available at
design time or might be known only at run

time.
Repetitions can have stop conditions attached

to them. For instance, a
repeated receive interaction should be stopped

as soon as answers from ten
participants have arrived.
The expressions attached to guarded and

repeated interactions can be
written in plain English, as Let�s Dance is

not tied to any specific expression
language. However, it must be defined which

actor is going to check whether
a condition evaluates to true or which

collection results from a repetition
expression. This desired semantics of the

process choreography is expressed through
the inhibits relationship from the Order

Response interaction to the Cancel Order

interaction. If a cancellation is issued by

the buyer on time, the supplier
can decide whether it can still be cancelled

or not.
If cancellation is still possible, the

remaining order responses are skipped
and the buyer does not need to pay. In the

case where cancellation is not
possible, a corresponding rejection notice is

sent to the buyer and the buyer
has to pay for the order. The buyer notifies

the supplier through a payment
notice.

No comments:

Post a Comment