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