Page 124 -
P. 124

3  Advanced Synchronization                                     111
                           3.3.2.2 Loops

                           The YAWL language supports the existence of both structured and unstructured
                           loops. Together with the presence of cancelation regions, these loops can introduce
                           complex enabling semantics for an OR-join. For instance, a YAWL net can contain
                           an infinite loop together with a cancelation region and can still be sound. Hence,
                           the effect of loops on OR-join operation need to be carefully considered. The OR-
                           join semantics in YAWL have been deliberately designed to work correctly in the
                           presence of arbitrary (possibly infinite) loops.



                           3.3.2.3 Composite Tasks

                           The original approach chosen for the OR-join in YAWL took into account the YAWL
                           net at a lower level by unfolding composite tasks (subnets) and subnets are not
                           treated as black boxes. We propose to abstract from constructs that exist in a lower
                           level net (including OR-joins). Hence, for the sake of an OR-join evaluation, a com-
                           posite task is treated in the same way as an atomic task. So just like an atomic task, a
                           composite task is assumed to complete properly when started. In the current seman-
                           tics, the OR-join analysis considers only tasks that are at the same net level as the
                           OR-join.



                           3.3.2.4 Multiple OR-Joins

                           The informal semantics of an OR-join can be supported reasonably well when there
                           is only one OR-join in a given net. However, when dealing with multiple OR-joins
                           where one precedes the other, the semantics are not well-defined. The question arises
                           as to “how to treat other OR-joins in the workflow when we try to decide whether a
                           certain OR-join should be enabled?.”
                              In the current semantics, we solve this issue by considering one OR-join at a time
                           during the analysis. Two alternative treatments have been proposed for OR-joins: to
                           treat them either as XOR-joins (optimistic) or as AND-joins (pessimistic). The treat-
                           ment of an OR-join as an XOR-join is considered optimistic as the analysis waits
                           for synchronization if the resulting XOR-join can be enabled. The term “optimistic”
                           refers to the expectation that the preceding OR-join can be enabled when treated
                           as an XOR-join. Consider a marking M D c1 C c3 in Fig. 3.5, where an OR-join
                           analysis for task F would be performed. Instead of ignoring the OR-join task E dur-
                           ing the analysis, it will be treated as an XOR-join task. It means that the occurrence
                                           C         E
                           sequence c1 C c3 ! c3 C c4 ! c3 C c7 would be considered. As a result, F is
                           not enabled at M . This interpretation of OR-join task E as an XOR-join prevents F
                           from being enabled prematurely and it matches closely with the informal semantics
                           of an OR-join.
                              The treatment of an OR-join as an AND-join is a pessimistic approach, as this
                           approach now requires tokens in all input conditions of the AND-join, and if it is
   119   120   121   122   123   124   125   126   127   128   129