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