Page 117 -
P. 117

104                                                     M. Wynn et al.
                           OR-joins in the workflow or when other complex constructs such as cancelation and
                           loops are present in the workflow.
                              In this chapter, we explain the OR-join semantics in YAWL as well as the moti-
                           vation behind these semantics and how it has been operationalized in the YAWL
                           framework. Please note that this chapter aims to provide an overview of the OR-
                           join semantics and does not detail the formal foundations behind the semantics.
                           The rest of the chapter is organized as follows. Section 3.2 describes the informal
                           and the formal semantics of the OR-join. Section 3.3 highlights the different inter-
                           pretations of the construct in different process modeling languages and motivates
                           the reasoning behind the semantics chosen for YAWL. Section 3.4 discusses the
                           implementation in supporting the semantics and demonstrates how the OR-join is
                           supported in the YAWL framework using two optimization techniques. Section 3.5
                           provides concluding remarks.




                           3.2 The OR-Join Semantics

                           First, we approach the OR-join from an informal and intuitive point of view using a
                           series of YAWL nets. This is followed by a brief discussion of the formal semantics
                           of an OR-join.


                           3.2.1 Informal Semantics


                           In general, an OR-join task is enabled only if there is at least one token in one of its
                           input conditions, and it is not possible for more tokens to arrive in other (currently
                           empty) input conditions in future states (i.e., there is no need/possibility to synchro-
                           nize other paths before proceeding). If it is possible for tokens to arrive in currently
                           empty input conditions in future states, then the OR-join should wait before pro-
                           ceeding. This is the desired behavior of an OR-join and we will refer to this as the
                           informal semantics of an OR-join.
                              Next, a series of YAWL nets are presented to explain the semantics of an OR-
                           join in more detail. For simplicity, the YAWL nets use short labels (e.g., A, c1,
                           etc.) to identify tasks and conditions. This allows us to focus on the control-flow
                           requirements for a particular net. The reader is reminded of the notions of marking
                           and reachability as defined for Petri nets in Chap. 2. As with Petri nets, the term
                           marking is used to describe the state of a YAWL net and is represented as the number
                           of tokens in certain conditions of a net (e.g., M D c1 C c5 represents a state of the
                           workflow where there is one token each in conditions c1 and c5). A marking is
                           reachable from another marking if there is a sequence of tasks that can fire from the
                           first marking to arrive at the second marking.
                              Using this Petri net terminology, a more precise (but still informal) explanation
                           of the OR-join semantics is given here. An OR-join is enabled at a marking if and
                           only if at least one of its input conditions is marked and it is not possible to reach a
   112   113   114   115   116   117   118   119   120   121   122