Semantics, Verification, and Implementation of Workflows ... - YAWL
Semantics, Verification, and Implementation of Workflows ... - YAWL
Semantics, Verification, and Implementation of Workflows ... - YAWL
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 2. Formal foundations<br />
Chapter 2<br />
Formal foundations<br />
This chapter introduces elementary definitions <strong>and</strong> concepts concerning Petri<br />
nets, Reset nets, Workflow nets, <strong>and</strong> <strong>YAWL</strong>. We decide to follow the approach<br />
<strong>of</strong> using Petri nets for formal specification <strong>of</strong> workflows due to the formalism,<br />
graphical nature <strong>and</strong> analysis techniques. As cancellation <strong>and</strong> OR-joins cannot<br />
be represented in Petri nets, we propose to use reset nets, which are Petri nets<br />
with reset arcs. Reset arcs provide direct support for the cancellation feature.<br />
Section 2.1 introduces Petri nets <strong>and</strong> reset nets. We then look at how a workflow<br />
can be formally defined using Petri nets <strong>and</strong> reset nets. Section 2.2 presents definitions<br />
<strong>and</strong> properties <strong>of</strong> WorkFlow Nets (WF-nets) <strong>and</strong> Reset WorkFlow Nets<br />
(RWF-nets), a subclass <strong>of</strong> reset nets. Section 2.3 is devoted to definitions <strong>and</strong><br />
properties <strong>of</strong> <strong>YAWL</strong> specifications. We give formal definitions <strong>of</strong> four structural<br />
properties: soundness, weak soundness, irreducible cancellation regions, <strong>and</strong> immutable<br />
OR-joins. Section 2.4 presents necessary abstractions <strong>and</strong> a function to<br />
transform <strong>YAWL</strong> nets into corresponding RWF-nets.<br />
Parts <strong>of</strong> this chapter have been published previously [WEAH05, WEAH06].<br />
2.1 Petri nets <strong>and</strong> Reset nets<br />
Petri nets were originally introduced by Carl Adam Petri [Pet62] <strong>and</strong> since then,<br />
they are widely used as mathematical models <strong>of</strong> concurrent systems for various<br />
domains [Pet81, DE95]. Numerous analysis techniques exist to determine various<br />
properties <strong>of</strong> Petri nets <strong>and</strong> its subclasses [Pet81, DE95, Mur89, RR98a, RR98b].<br />
Definition 2.1 (Petri net [Pet62, Pet81]) A Petri net is a tuple (P, T, F )<br />
where P is a (non-empty finite) set <strong>of</strong> places, T is a set <strong>of</strong> transitions, P ∩T = ∅<br />
<strong>and</strong> F ⊆ (P × T ) ∪ (T × P ) is the set <strong>of</strong> arcs.<br />
Petri nets have a graphical representation that is easy to underst<strong>and</strong>. A Petri<br />
net is modelled with two types <strong>of</strong> nodes: places <strong>and</strong> transitions. Arcs connect<br />
one type <strong>of</strong> node to the other. Graphically, places are represented by circles,<br />
transitions by square boxes or bars, <strong>and</strong> arcs by directed arrows indicating the<br />
flow. The direction <strong>of</strong> an arrow indicates whether a place is an input place <strong>of</strong> a<br />
transition or an output place <strong>of</strong> a transition.<br />
PhD Thesis – c○ 2006 M.T.K Wynn – Page 11