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