Page 25 -
P. 25

10                                                  W. van der Aalst et al.
                           service composition (e.g., BPML, BPEL), and open-source workflow management
                           systems (e.g., jBPM, OpenWFE). The patterns collection itself was revised and
                           significantly extended with data patterns, resource patterns, exception handling
                           patterns, service interaction patterns, flexibility patterns, etc.



                           1.5 Petri Nets and Workflow Nets


                           While there has not been a commonly accepted formal foundation for workflow
                           management, in the mid nineties, Wil van der Aalst articulated three reasons why
                           Petri nets would make a good candidate. The theory of Petri nets, developed by Carl
                           Adam Petri, provides an elegant approach to describing and solving concurrency
                           related problems.
                              A Petri net is a bipartite graph where the nodes are either places or transitions.
                           A Petri net has a graphical representation where places are represented by circles,
                           transitions by squares, and their connections by directed arcs. A Petri net may have
                           an associated marking, which is an assignment of tokens to places. A marking rep-
                           resents the state of a system. A transition is said to be enabled in a certain marking
                           when each of its input places contains at least one token. An enabled transition can
                           fire by taking a token from each of its input places and producing a token in each
                           of its output places. Transitions thus correspond to allowed stated changes. A vast
                           body of theory exists for the formal analysis of Petri nets.
                              As van der Aalst pointed out, the graphical nature of Petri nets, their explicit
                           representation of the notion of state, and the existence of analysis techniques made
                           them eminently suitable for workflow specification. To increase their suitability for
                           workflow specification, he introduced workflow nets. A workflow net is a Petri net
                           with one start place and one end place. All tasks have to be on a path from the start
                           place to the end place. To simplify the representation of typical workflow routing
                           constructs, such as AND-splits and XOR-splits, a number of graphical abbreviations
                           were introduced. Workflow nets form a subclass of Petri nets for which the analysis
                           of desirable properties, for example, whether process instances of a workflow can
                           always terminate, is feasible. Tool support for this type of analysis was developed
                           in the form of tools such as Woflan (Workflow Analyzer), ProM, WoPeD, etc.



                           1.6 The Emergence of YAWL

                           After the development of the initial collection of workflow patterns, Petri nets were
                           revisited in terms of their suitability for the specification of control-flow dependen-
                           cies in workflows. While it turned out that many of the patterns could be expressed
                           in a straightforward manner, some patterns were not so easily captured. This
                           observation led to the development of YAWL (Yet Another Workflow Language).
                           In YAWL, Petri nets were taken as a starting point and extended with dedicated
   20   21   22   23   24   25   26   27   28   29   30