A Petri Net-Oriented Approach

 About the book

This comprehensive introduction to modeling business-information systems focuses on business processes. It describes and demonstrates the formal modeling of processes in terms of Petri nets, using a well-established theory for capturing and analyzing models with concurrency. The precise semantics of this formal method offers a distinct advantage for modeling processes over the industrial modeling languages found in other books on the subject. Moreover, the simplicity and expressiveness of the Petri nets concept make it an ideal language for explaining foundational concepts and constructing exercises.

After an overview of business information systems, the book introduces the modeling of processes in terms of classical Petri nets. This is then extended with data, time, and hierarchy to model all aspects of a process. Finally, the book explores analysis of Petri net models to detect design flaws and errors in the design process. The text, accessible to a broad audience of professionals and students, keeps technicalities to a minimum and offers numerous examples to illustrate the concepts covered. Exercises at different levels of difficulty make the book ideal for independent study or classroom use.


“This book is an absolute must for everyone who wants to learn the state of the art for modeling of business processes by means of colored Petri nets. Wil van der Aalst’s group at Eindhoven University of Technology is world-leading in the field—both when it comes to the theoretical foundation, and in practical applications and tool support. The book can be read with little or no prior knowledge of Petri nets and I highly recommend it both for classes and for individuals. It is brilliant.”

Kurt Jensen, Aarhus University, Denmark

“This book is about using Petri nets to model business processes in their relation to information systems. But it is much more. It characterizes different types of information systems based on their capability to support complex business processes. It teaches how to translate informal requirements into explicit models and how to cope with changes and adaptation. But most importantly it provides an efficient and unambiguous way to translate dynamic complex behavior into static understandable models. Petri nets are back again and they are here to stay.”

John Hoogland, CEO, Pallas Athena International

“This book is a must-read for anybody interested in the foundations of process modeling using Petri nets; with dozens of exercises (and solutions!), it also serves as an excellent textbook.”

Mathias Weske, Hasso Plattner Institute, University of Potsdam

Slides supporting the book

CPN models

A collection of CPN models can be downloaded here. The zip file contains three folders:

  • simple examples to get started and to illustrate the main concepts of CPNs and CPN Tools (e.g., time, priority)
  • examples illustrating hierarchical modeling using CPNs
  • examples for analysis, both simulation ans state space analysis

Most of the examples are used in the book and the slides. We assume that the reader has installed CPN Tools.


A list of all errors that we are aware of:

Chapter 3

  • p.79, definition of TR: in the last conjunct replace m'(p) = … with \forall p \in P: m'(p) = …

Chapter 4

  • p.102, item 3 in Chapt. 4.3: Event x takes place before the concurrent events y and z happen.

Chapter 5

  • p.143, line 8: … a token with value y is produced in place done, and a token with value x …
  • p.157, Figure 5.24: arc (start, busy) must have inscription (x,y)@+d(x)

Chapter 6

  • p.188, function maxstock, 1st line: fun maxstock([]:Stock) = 0 |
  • p.194, Figure 6.13: arc inscription of (cool_down, door) must be b@+60 and arc inscription of (door, cool_down) must be b)
  • p.196, function maxstockname, line 3: replace maxstock(tl(s)) by maxstock(s)
  • p.196, 6.6: the names of functions odd and even should be swapped (currently, fun odd gives all even elements and fun even all odd elements)
  • p.199, Figure 6.16: arc inscription of (cool_down, door) must be b@+60 and arc inscription of (door, cool_down) must be b)

Chapter 7

  • p.216, Figure 7.10: arc (start, done) must be replaced by arc (done, start)
  • p.217, Figure 7.11: arc inscription of (cool_down, door) must be b@+60 and arc inscription of (door, cool_down) must be b)
  • p.219, Figure 7.14: arc inscription of (cool_down, door) must be b@+60 and arc inscription of (door, cool_down) must be b)
  • p.227, Figure 7.22: arc (stocking_point, repl_delivery) must be replaced by arc (repl_delivery, stocking_point)
  • p.230, Figure 7.23: arc (replenishment-b, repl_delivery) must be replaced by arc (repl_delivery, replenishment-b) port type of place customer_delivery is Out and not In port type of place repl_delivery is In and not Out
  • p.235, Figure 7.29: arc (replenishment+b, repl_delivery) must be replaced by arc (repl_delivery, replenishment+b) port type of place customer_delivery is Out and not In port type of place repl_delivery is In and not Out
  • p.242, Figure 7.38: the inscription of the input arc to place wip does not add the setup time to the actual delay, i.e., p@+t should be replaced by p@+(t+s).

Chapter 8

  • p.267, Figure 8.15: arc inscriptions should be swapped (transition consumes i and produces i+1)
  • p.314, Solution 8.13(3): The statement does not hold. The simplest counterexample is a net N = ({p},{t},{(p,t)}). However, the following slightly modified statement holds: If the net is bounded for any (finite) initial marking, then there exists a place vector y with y>0 such that C*y <= 0. Note that the wrong statement requires y to be a place  invariant which implies C*y = 0.
  • p.368, 8.21: 2nd place invariant is 2.e1 + f1 + 2.e2 + f2 + 2.e3 + f3 + 2.e4 + f4 = 4

Ordering the book

Modeling Business Processes — A Petri Net-Oriented Approach by W.M.P. van der Aalst and C. Stahl, The MIT Press, 2011 (ISBN-13: 978-0-262-01538-7).

Feature Requests
Knowledge Base

You must be logged in to post a comment.