Page 49 -
P. 49
36 N. Russell and A. ter Hofstede
unsuccessfully. There is no further execution of the canceled case and the case is
marked as canceled.
Cancel Multiple Instance Task identifies the cancelation of a specific multiple
instance task. Since a multiple instance task may potentially have multiple con-
current execution instances either active or pending at the time of cancelation,
the cancelation action extends to all of these instances and requires that their exe-
cution be terminated and recorded as having completed unsuccessfully. None of
the canceled task instances nor the canceled task itself can trigger any subsequent
tasks.
Complete Multiple Instance Task denotes the forced completion of a multi-
ple instance task. Unlike the preceding pattern, it seeks to bring the various
instances of a multiple instance to a conclusion by removing any currently
executing instances and marking them as complete and by withdrawing any pend-
ing instances that have not yet started executing. The multiple instance task is
deemed to have completed successfully and any subsequent tasks are triggered.
Cancel Region, which provides a general form of cancelation that is able to
terminate a group of tasks.
The cancelation and completion patterns deal with termination of executing task
instances from within a process. In contrast, the trigger patterns provide a means of
initiating task execution from outside a process.
Trigger Patterns
The trigger patterns provide a means for the execution of a process to be synchro-
nized with its broader operational environment. Triggers can take various forms,
examples of which are shown in Fig. 2.7a, which illustrates a message-based trig-
ger, and Fig. 2.7b, which denotes a time-based trigger. Where a trigger is associated
with a task, the task can only commence execution when it has (1) been enabled
and (2) received an instance of the required trigger. Two types of trigger are rec-
ognized by distinct patterns: the Persistent Trigger denotes triggers that are durable
in form and are retained if the task instance to which they are directed has not yet
received the execution thread, whereas the Transient Trigger denotes triggers that
are ephemeral in form and if they are not immediately consumed by the task to
which they are directed (i.e., if the task does not yet have the thread of control), then
they are discarded.
Fig. 2.7 Examples of trigger patterns