Page 72 -
P. 72

2  The Language: Rationale and Fundamentals                      59
                           instances continue to execute until they complete normally. However, their comple-
                           tion is inconsequential and does not result in any other side-effects. Should the task
                           commence with the required number of minimum instances and all of these com-
                           plete but the required threshold of instance completions not be reached, the multiple
                           instance task is deemed complete once there are no further instances being executed
                           (either from the original set of instances when the task was triggered or additional
                           instances that were started subsequently). Finally, it is possible to specify whether
                           the number of task instances is fixed after creating the initial instances (i.e., the task
                           is static) or whether further instances can be added while the multiple instance task
                           has not yet completed execution (i.e., the task is dynamic).
                              Tasks in a YAWL net can have specific join and split behaviors associated with
                           them. The supported join and split constructs are the AND-join, OR-join, XOR-join,
                           AND-split, OR-split, and XOR-split. The operation of each of the joins and splits
                           in YAWL is as follows:
                             AND-join – the branch following the AND-join receives the thread of control
                              when all of the incoming branches to the AND-join in a given case have been
                              enabled.
                             OR-join – the branch following the OR-join receives the thread of control when
                              either (1) each active incoming branch has been enabled in a given case or (2) it
                              is not possible that any branch that has not yet been enabled in a given case will
                              be enabled at any future time with the currently enabled branches continuing to
                              be marked with at least one token.
                             XOR-join – the branch following the XOR-join receives the thread of control
                              when one of the incoming branches to the XOR-join in a given case has been
                              enabled.
                             AND-split – when the incoming branch to the AND-split is enabled, the thread
                              of control is passed to all of the branches following the AND-split.
                             OR-split – when the incoming branch to the OR-split is enabled, the thread of
                              control is passed to one or more of the branches following the OR-split, based on
                              the evaluation of conditions associated with each of the outgoing branches.
                             XOR-split – when the incoming branch to the XOR-split is enabled, the thread of
                              control is passed to precisely one of the branches following the XOR-split, based
                              on the evaluation of conditions associated with each of the outgoing branches.
                           Finally, YAWL supports the notion of a cancelation region, which encompasses a
                           group of conditions and tasks in a YAWL net. It is linked to a specific task in the
                           same YAWL net. At runtime, when an instance of the task to which the cancelation
                           region is connected completes executing, all of the tasks in the associated cancela-
                           tion region that are currently executing for the same case are withdrawn. Similarly
                           any tokens that reside in conditions in the cancelation region that correspond to the
                           same case are also withdrawn. We now review the constructs for the control-flow
                           perspective via some illustrative examples.
                              Figure 2.21 illustrates a review process comprising three main tasks: schedule
                           review, conduct review,and report findings.The conduct review task has a timeout
                           associated with it that is triggered by the AND-split associated with the schedule
   67   68   69   70   71   72   73   74   75   76   77