Page 119 -
P. 119

106                                                     M. Wynn et al.














                           Fig. 3.3 A structured net with an OR-join task and cancelation regions


                           has any tokens in c6, and therefore, E is enabled at M. So, even though two active
                           paths are chosen after OR-split task A, the OR-join evaluation should not wait for
                           tokens from both paths, as it is possible that not all the tokens are on the path to this
                           OR-join task. (Note that Fig. 3.2 is not sound as it can deadlock in c4.)
                              Now, let us consider an OR-join in the context of cancelation. Figure 3.3 is a
                           net with an OR-join task E and task D removing tokens from the conditions c2, c5
                           and from the internal condition of task C when firing. Consider a marking M D
                           c2 C c3 C c4, which results from the scenario where all outgoing paths are selected
                           after completing task A,and task B has subsequently been performed. At M,there
                           is a token in the input condition c4 of OR-join task E. To determine whether task
                           E should be enabled at M , we need to find out whether tokens could be put into
                           c5 or c6 in the reachable markings of M. As it is possible to reach a new marking
                           M D c3 C c4 C c5 from M by firing task C, E should not be enabled at M.Now
                             0
                           consider whether task E would be enabled at marking M D c3 C c4 C c5.At M ,
                                                                                             0
                                                                         0
                           c4 and c5 have one token each and so we need to see if c6 can be marked in the
                           reachable markings of M (i.e., can we reach a marking c4Cc5Cc6 or bigger?). The
                                               0
                           only reachable marking from M (without enabling task E itself) is M D c4 C c6
                                                                                   00
                                                     0
                           by firing task D. Note that because of the cancelation region associated with task D,
                           the token from c5 has been removed. Hence, task E is enabled at M . It can be seen
                                                                                 0
                           from this example that even though the net is a structured net, having cancelation
                           regions can drastically change the behavior of the OR-join and these cancelation
                           regions cannot be ignored while performing an OR-join evaluation. Note also that
                           if task E fires at M D c3 C c4 C c5, we reach a new marking c3 C o, which can
                                           0
                           lead to another marking c6 C o after firing task D where task E is enabled again and
                           then to 2o after firing task E a second time. In this case, the marking 2o indicates
                           that there are two tokens in the output condition of the net and, as a result, the net is
                           not sound.

                           3.2.2 The Formal Semantics


                           Even though YAWL is based on Petri nets, the YAWL language supports complex
                           constructs such as multiple instances, hierarchy, cancelation, and OR-joins that are
   114   115   116   117   118   119   120   121   122   123   124