Page 26 -
P. 26
1 Introduction 11
constructs to deal with patterns that Petri nets have difficulty expressing, in partic-
ular patterns dealing with cancelation, synchronization of active branches only, and
multiple concurrently executing instances of the same task.
YAWL was given a formal semantics based on a state transition system and there-
fore its nets cannot be simply mapped to Petri nets. Hence, while YAWL is inspired
by Petri nets, it cannot be seen as a set of notational abbreviations on top of this
formalism. Specific verification approaches needed to be developed to deal with
the new constructs offered by YAWL. One formalism that turned out to be partic-
ularly useful for reasoning about YAWL nets were reset nets. These are Petri nets
extended with the concept of a reset arc. When a transition is executed, all tokens
are removed from places that are connected with a reset arc to this transition. Reset
arcs allow the concept of cancelation to be directly expressed. In workflows can-
celation implies that the execution of a certain task should lead to other nominated
tasks being terminated or not being available for further execution. YAWL offers
direct support for cancelation, while its predecessor, workflow nets, does not.
After YAWL was defined, work started on the implementation of a support
environment. This effort intended to demonstrate that it was possible to provide
comprehensive support for the (original) workflow control-flow patterns. As such
the YAWL environment can be seen as a reference implementation that supports the
Workflow Patterns. The term YAWL became synonymous with both the language
and the support environment. Over time as the environment evolved, the ambitions
increased and YAWL grew into a full-fledged workflow management system, which
is used in a wide variety of academic and industrial settings.
1.7 A Brief Overview of YAWL
To illustrate and further concretize some of the concepts we have mentioned thus
far, let us consider a simplified scenario involving a car accident. In this scenario,
the first step that needs to be taken is to obtain a quote for the costs involved in
dealing with the damage. After this quote has been received, a preliminary insurance
claim is lodged, and a choice needs to be made whether the car is going to be fixed
or whether buying a new car is more cost-effective. After this latter decision has
been made the bill can be settled, and when this has happened and the preliminary
insurance claim has been lodged, the final insurance claim can be lodged.
In Fig. 1.3, a Petri net is shown that captures the flow of control of this simple
example. The rectangles in this net are the transitions, which correspond to tasks
that need to be performed, while the places correspond to moments in-between pro-
cessing. The place that is input for the transitions Have Car Fixed and Buy New Car
captures a choice made by the environment. When a token has been produced by the
transition Obtain Quote for this place, both transitions Have Car Fixed and Buy New
Car are enabled. Once one of these has been chosen, the token is removed from this
place and the other transition is no longer enabled. When a transition has multiple
output places, this represents parallelism as all these places receive a token upon