Page 116 -
P. 116

Chapter 3
                           Advanced Synchronization



                           Moe Wynn, Wil van der Aalst, and Arthur ter Hofstede









                           3.1 Introduction


                           The OR-join is one of the three synchronization constructs supported in YAWL and
                           the only one that depends on non-local semantics, that is, not only the current state
                           but also possible future states need to be considered. The other two synchronization
                           constructs are the XOR-join and the AND-join. Both have local semantics, that
                           is, it suffices to consider the current state without extrapolating to possible future
                           states when making a firing decision. An XOR-join requires no synchronization,
                           that is, as soon as there is a token in one of its input conditions, an XOR-join is
                           enabled. An AND-join requires full synchronization, that is, it is enabled when there
                           is at least one token each in all of its input conditions. The drawback of using an
                           AND-join construct is that a workflow can deadlock when all paths leading to the
                           input conditions of the AND-join are not active. On the other hand, an OR-join
                           construct allows more flexibility as it supports only the synchronization of active
                           paths. Hence, the use of an OR-join construct in process models is desirable and
                           necessary in situations where it is not possible to know in advance which paths will
                           be active in a particular workflow instance (e.g., paths coming out of a multi-choice
                           construct).
                              To determine whether an OR-join should be enabled at a particular state of a
                           workflow, we need to look ahead to see if there are other active paths for which
                           we should wait in future states of the workflow. Hence, the OR-join semantics are
                           non-local and the analysis required to decide whether an OR-join should be enabled
                           at a particular workflow state is non-trivial. The decision requires an awareness of
                           the current state as well as possible future states of the workflow. Defining the non-
                           local semantics of an OR-join is difficult even when a workflow language does not
                           support complex constructs (e.g., cancelation) and/or puts certain restrictions on the
                           models (e.g., no loops or only allow structures where an OR-join is preceded by an
                           OR-split). This analysis becomes even more complicated when there are multiple


                           M. Wynn (B )
                           Queensland University of Technology, Brisbane, Australia
                           e-mail: m.wynn@qut.edu.au


                           A.H.M. ter Hofstede et al. (eds.), Modern Business Process Automation,  103
                           DOI 10.1007/978-3-642-03121-2 3, c   Springer-Verlag Berlin Heidelberg 2010
   111   112   113   114   115   116   117   118   119   120   121