Semantics, Verification, and Implementation of Workflows ... - YAWL
Semantics, Verification, and Implementation of Workflows ... - YAWL
Semantics, Verification, and Implementation of Workflows ... - YAWL
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 3. OR-join semantics<br />
c1<br />
B<br />
c4<br />
A<br />
c2<br />
C<br />
c5<br />
E<br />
F<br />
c3<br />
D<br />
c6<br />
Figure 3.3: A <strong>YAWL</strong> net modified from Figure 3.2<br />
therefore, E is enabled at M. So, even though two active paths are chosen after<br />
OR-split task A, the OR-join evaluation should not wait for tokens from both<br />
paths, as it is possible that not all the tokens are on the path to an OR-join task.<br />
c1<br />
C<br />
c6<br />
c4<br />
A<br />
c2<br />
B<br />
E<br />
c5<br />
c3<br />
D<br />
c7<br />
Figure 3.4: A <strong>YAWL</strong> net with two OR-join tasks C <strong>and</strong> D<br />
B_c5<br />
i c1+c2+c3 c1+c3+c4+c5<br />
B_c4,c5<br />
B_c4<br />
c1+c3+c5<br />
c1+c3+c4<br />
D<br />
C<br />
C<br />
D<br />
D<br />
C<br />
c1+c7<br />
c3+c5+c6<br />
c1+c4+c7<br />
c3+c6<br />
C<br />
D<br />
C<br />
D<br />
c6+c7<br />
E<br />
o<br />
Figure 3.5: The reachability graph <strong>of</strong> the <strong>YAWL</strong> net in Figure 3.4<br />
Next, the behaviour <strong>of</strong> OR-joins is described using an example with one ORsplit<br />
<strong>and</strong> two OR-joins. The example in Figure 3.4 demonstrates a net with<br />
AND-split task A, AND-join task E, OR-split task B <strong>and</strong> OR-join tasks C <strong>and</strong><br />
D. The graph <strong>of</strong> Figure 3.5 shows the reachable markings from the initial marking<br />
i to the end marking o. A node in the reachability graph represents a reachable<br />
marking <strong>and</strong> an edge represents a task that is executed to reach that particular<br />
marking. First consider a marking M = c1 + c2 + c3 where there is a token in<br />
input condition c1 <strong>of</strong> OR-join task C <strong>and</strong> in input condition c3 <strong>of</strong> OR-join task D<br />
in addition to the token in input condition <strong>of</strong> task B. To determine whether tasks<br />
C <strong>and</strong> D should be enabled at M, we need to find out whether either condition c4<br />
or c5 is marked in the reachable markings from M. We can see that by executing<br />
task B, it is possible to reach markings c1 + c3 + c5 or c1 + c3 + c4 + c5 that<br />
mark c5, an input condition <strong>of</strong> task D not marked in M. Alternatively, markings<br />
PhD Thesis – c○ 2006 M.T.K Wynn – Page 35