Systems modeling and analysis using colored Petri Nets: a tutorial introduction and practical applications

Petri Nets are a graphical modeling language suitable for modeling distributed, concurrent, deterministic and nondeterministic systems with synchronous and asynchronous communications. One attraction of Petri Nets is that the basic vocabulary is small which renders them very flexible in terms of application domains for modeling. However, lack of high-level constructs and related support makes modeling of large system with Petri nets impractical. This is where Colored Petri Nets come into play.Colored Petri Nets (CP-Nets or CPNs) extend the vocabulary of ordinary Petri Nets and add features that make them suitable for modeling large systems. CPNs combine the strengths of ordinary Petri Nets with the strengths of a high-level programming language. Petri Nets provide the primitives for process interaction, while the programming language provides the primitives for the definition of data types and the manipulations of data values.From a practical applications point of view, CPNs support a mechanism of modules that allows one to construct models of large systems in a hierarchical manner. The hierarchy and module concept of CPNs allow different levels of abstraction that are inherent in most systems. The graphical representation makes it easy to see the basic structure of a complex CPN model, i.e., understand how the individual subsystems interact with each other. A major benefit gained by using CPNs is to obtain complete and unambiguous specification in the design stage of a project, and verify if it indeed provides the defined services correctly.CPN models can be made with or without explicit reference to time. Untimed CPN models are usually used to validate the functional/logical correctness of a system, while timed CPN models are used to evaluate the performance of the system.CPN models are built using CPN Tools which is a graphical software tool for creating, editing, simulating and analyzing models. It has a graphical editor that allows the user to create and layout the different net components. One of its nice features is that it uses pages to visually divide the model into components, enhancing its maintainability and readability without affecting the execution or analysis of the model. CPNs and CPN Tools have been used in numerous practical projects within a large variety of different application areas (see http://www.daimi.au.dk/CPnets/intro/example_indu.html). CPNs have been used to model and analyze hardware systems, software systems, biological systems, network and communication protocols, healthcare systems, workflow and business processes, distributed and resource constrained systems, manufacturing systems, control systems, etc.CPNs also have a formal, mathematical representation with a well-defined syntax and semantics. This representation is the foundation for the definition of the different behavioral properties and the analysis methods. CPNs provide several analysis methods, including simulation, state space analysis, sweep-line analysis and language analysis. However, for the practical use of CPNs and CPN Tools, it suffices to have an intuitive understanding of the syntax and semantics.CPNs and CPN Tools have been designed and developed with practical applications and practical use in mind. This tutorial will introduce the audience to basics of CPNs as well as CPN Tools. We will illustrate the key ideas by means of numerous examples and live demonstrations that emphasize practical applications of CPNs and CPN Tools. It requires no prior familiarity with Petri nets, system design and analysis, modeling, simulation, or any particular computer language. Its emphasis is on the practical, hands-on use of CPN Tools to build and execute CPN models.The major goals of this tutorial are as follows:• To give an informal introduction to Colored Petri Nets with emphasis on practical applications.• To familiarize with CPN Tools, its facility, and interface for creating, editing, simulating, and analyzing models graphically.• To familiarize with various visualization facilities built on top of CPN Tools.• To provide information on existing work on CPNs and existing models created using CPN Tools.• To help get started with model creation and analysis using CPNs.