Petri Nets - Kevin Mcleish


What is a Petri Net?

A Petri net is a graphical and mathematical modeling tool. It consists of places, transitions, and arcs that connect them. Input arcs connect places with transitions, while output arcs start at a transition and end at a place. There are other types of arcs, e.g. inhibitor arcs. Places can contain tokens; the current state of the modeled system (the marking) is given by the number (and type if the tokens are distinguishable) of tokens in each place. Transitions are active components. They model activities which can occur (the transition fires), thus changing the state of the system (the marking of the Petri net). Transitions are only allowed to fire if they are enabled, which means that all the preconditions for the activity must be fulfilled (there are enough tokens available in the input places). When the transition fires, it removes tokens from its input places and adds some at all of its output places. The number of tokens removed / added depends on the cardinality of each arc. The interactive firing of transitions in subsequent markings is called token game

Petri nets are a promising tool for describing and studying systems that are characterized as being concurrent, asynchronous, distributed, parallel, nondeterministic, and/or stochastic. As a graphical tool, Petri nets can be used as a visual-communication aid similar to flow charts, block diagrams, and networks. In addition, tokens are used in these nets to simulate the dynamic and concurrent activities of systems. As a mathematical tool, it is possible to set up state equations, algebraic equations, and other mathematical models governing the behavior of systems.

To study performance and dependability issues of systems it is necessary to include a timing concept into the model. There are several possibilities to do this for a Petri net; however, the most common way is to associate a firing delay with each transition. This delay specifies the time that the transition has to be enabled, before it can actually fire. If the delay is a random distribution function, the resulting net class is called stochastic Petri net. Different types of transitions can be distinguished depending on their associated delay, for instance immediate transitions (no delay), exponential transitions (delay is an exponential distribution), and deterministic transitions (delay is fixed).

The concept of Petri nets has its origin in Carl Adam Petri's dissertation Kommunikation mit Automaten, submitted in 1962 to the faculty of Mathematics and Physics at the Technische Universität Darmstadt, Germany.



Example of a Petri Net


Petri Net Standards



The standards group relevant for the Petri Nets standardisation effort is called:

  ISO/IEC JTC1/SC7/WG11

where ISO is the International Organisation for Standardisation and IEC is the International Electrotechnical Committee

These two international standards bodies overlap in the area of Information Technology. In the 1980's sometime (86-88?) they decided to merge their technical work in this area and created Joint Technical Committee 1 on Information Technology. Hence

  JTC1: Joint Technical Committee 1 Information Technology.

(ISO just has technical committees (TCs) as does IEC.)

Technical Committees (and JTC1) are organised into a hierarchy of Subcommittees (SCs) with specific scope (terms of reference). JTC1 has many subcommittees, including SC7 on Software Engineering.

  SC7: Subcommittee 7 Software Engineering

To carry out the technical work, each subcommittee is divided into a set of Working Groups (WGs). Subcommittee 7 has had at sometime or other 12 WGs. Currently only WGs 2,4,6,7,8,9,10,11 and 12 are active. The Petri net standardisation work is being carried out in WG11.

  WG11: Working Group 11 Software Engineering Data Description and Representation.

Subcommittees organise their work into a set of projects, with a subset of projects being allocated to each working group. Working Group 11 currently has 2 projects: 7.28 Software Engineering Data Description and Interchange; and 7.19 Diagrams for Software Engineering. It is at WG11 meetings where the Petri Nets standard is discussed, and is therefore of interest for technical people. (SC7 and JTC1 meetings deal with organisational and political issues and are mostly avoided by technical people.)

Project 7.28 is currently standardising CDIF: CASE Data Interchange Format which has been submitted by the EIA: Electronics Industry Association (USA). (This can provide a format for the exchange of Petri nets according to their proponents.) Thus this project is mainly concerned with Data Interchange - there are a large number of CDIF standards being progressed through ISO at the moment.

Project 7.19 is concerned much more with techniques. This is where a lot of effort was expended in convincing WG11 that there should be a Petri net standard and that the right place for it was 7.19. A ballot was held of all SC7 members during the second half of 1995 to subdivide project 7.19 into 7.19.3 (as 7.19.1 and 7.19.2 were already in use) to start work on Petri net techniques. The justification, scope, programme of work etc was circulated with the Ballot (see the document Proposal for the Subdivision of Project 7.19 for a Petri Net Standard).

National Bodies

The members of ISO (and IEC) are the National Standards Organisations in each country eg ANSI in the USA, British Standards Institute (BSI) in the UK, DIN in Germany. These are called National Bodies (NB). It is the NBs that vote on proposals and various stages of the standards process. The NBs have their own committee structures, which often mirror the ISO structure. The NB committee on Software Engineering will provide advice to a higher level committee, that mirrors JTC1. A representative of this committee should attend the JTC1 Committee meeting that will be held in Paris 10-13 December 96. It is at this meeting that a vote will be taken on whether projects listed for cancellation in JTC1 N4302 should be cancelled. (Output documents produced by each level of committee produces are prefixed by the committee initials and numbered sequentially.) For a complete list of national standards bodies see the WWW page called Member Bodies.

JTC1 N4302 was generated by an Adhoc Group on Re-engineering, that is to report to JTC1 at the December meeting. SC7 input document SC7 N1585 to the review. SC7 Programme of Work review in N1585 was based on inputs from the following countries only:

  Canada, France, Italy, Japan, Norway, USA and UK

Since the SC7 Membership is much wider (28 Members), the SC7 Secretary, Francois Coallier (Canada) has requested National Member bodies (NBs) who did not contribute to this review to do so before 28 November 1996.

That review stated that 3 NBs were actively participating in the Petri net work, there was one that was interested, and 3 that had limited or no interest. One of the criteria for cancellation (the main one according to Billington), is that there must be at least 5 active NBs for the standards work. The facts are that the active countries so far have been:

  Germany, USA, Canada, Japan, Australia and Denmark.


General Classification of Petri Nets

The following pages try to give a classification of Petri Nets using a graphical representation, where subnodes are restrictions of more general Petri Net Classes. The whole work was inspired by the publication "A survey of Basic Net Models and Modular Net Classes" (L. Bernardinello, F. De Cindio) [bd92]. Every Net Description also specifies the tools available for the specific Net Class.

Present Classification

The present classification starts from three basic net levels:

Recent Extensions

Important extensions to this general Petri Nets classification are:


Examples - Java Applets

Here is a selection of simple Petri net Java applets which quickly illustrate the basic elements and concepts of Petri nets.




Petri Nets Tools

The table below is useful to get an overview of existing tools, and to make rough comparisons.


Overview

Features

Environments

PN Supported

Components

ALPHA/Sim

homepage

Comm. (acad. disc.)

High-level Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
Simple Performance Analysis

Sun
MS Windows

EDS Petri Net Tool

http://www.daimi.au.dk/PetriNets/tools/

Comm. (acad. disc.)

Place/Transition Nets
Stochastic Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
Structural Analysis
Simple Performance Analysis

Transition programming language

MS Windows
OS/2

F-net

http://www.daimi.au.dk/PetriNets/tools/

Comm. (acad. disc.)

Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
Place Invariants
Transition Invariants
Structural Analysis
Simple Performance Analysis
Advanced Performance Analysis

MS Windows

GDToolkit

homepage

Comm. (acad. free)

High-level Petri Nets
Place/Transition Nets



Automatic layout

Sun
Linux
MS Windows

GreatSPN

homepage

Comm. (acad. free)

High-level Petri Nets
Stochastic Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
State Spaces
Condensed State Spaces
Place Invariants
Transition Invariants
Structural Analysis
Advanced Performance Analysis

Sun

HiQPN-Tool

homepage

Free of charge

High-level Petri Nets
Stochastic Petri Nets

Graphical Editor
Token Game Animation
State Spaces
Place Invariants
Transition Invariants
Advanced Performance Analysis

Sun

INA

homepage

Free of charge

High-level Petri Nets
Place/Transition Nets
Petri Nets with Time

State Spaces
Condensed State Spaces
Place Invariants
Transition Invariants
Net Reductions
Structural Analysis
Simple Performance Analysis
Advanced Performance Analysis

CTL-based model checker

Sun
Linux
MS Windows

INCOME

homepage

Comm. (acad. disc.)

High-level Petri Nets

Graphical Editor
Token Game Animation
Fast Simulation
Transition Invariants
Net Reductions
Structural Analysis
Simple Performance Analysis

Interfaces to Workflow engines, CASE tools, enhanced documentation features

MS Windows
Java

Looping

http://www.daimi.au.dk/PetriNets/tools/

Comm. (acad. free)

High-level Petri Nets

Graphical Editor
Token Game Animation
Fast Simulation

MS Windows

MISS-RdP

http://www.daimi.au.dk/PetriNets/tools/

Comm. (acad. disc.)

High-level Petri Nets
Place/Transition Nets
Stochastic Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation

Advanced Performance Analyse

Sun

Moses Tool Suite

homepage

Free of charge

High-level Petri Nets
Stochastic Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation

User-extendable

Sun
Linux
MS Windows
Java

Netmate

homepage

Comm. (acad. disc.)

High-level Petri Nets
Place/Transition Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
Place Invariants
Transition Invariants
Structural Analysis

PLC-Code Generation
PLC Monitoring

MS Windows

PACE

homepage

Comm. (acad. disc.)

High-level Petri Nets
Place/Transition Nets
Stochastic Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
Net Reductions

Sun
HP
MS Windows

PAREDE

homepage

Comm. (acad. free)

Petri Nets with Time

State Spaces
Condensed State Spaces
Structural Analysis

MS DOS

PED

homepage

Free of charge

Place/Transition Nets
Petri Nets with Time

Graphical Editor

Sun
Linux

PEP

homepage

Free of charge

High-level Petri Nets
Place/Transition Nets

Graphical Editor
Token Game Animation
State Spaces
Condensed State Spaces
Place Invariants
Transition Invariants
Net Reductions
Structural Analysis

Model Checking
Petri Net Generators

Sun
Linux

PETRI Maker

homepage

Free of charge

Place/Transition Nets

Graphical Editor
Token Game Animation
Fast Simulation
State Spaces
Condensed State Spaces
Place Invariants
Transition Invariants
Simple Performance Analysis

MS Windows

Petri Net Kernel

homepage

Free of charge

High-level Petri Nets
Place/Transition Nets

Graphical Editor

User definable

Sun
Linux
MS Windows

PetriSim

homepage

Free of charge

High-level Petri Nets
Place/Transition Nets
Petri Nets with Time

Graphical Editor
Fast Simulation

MS DOS

PNSim

homepage

Free of charge

Place/Transition Nets

Graphical Editor
Token Game Animation
Structural Analysis

Simple Net Analysis

MS Windows
Java

PNtalk

homepage

Free of charge

High-level Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
Simple Performance Analysis

Sun
MS Windows

POSES++

homepage

Free of charge

High-level Petri Nets
Place/Transition Nets
Stochastic Petri Nets
Petri Nets with Time

Fast Simulation

Multi-Client/Multi-Server
Common 2D animation

Sun
HP
Linux
MS Windows

PROD

homepage

Free of charge

High-level Petri Nets
Place/Transition Nets

State Spaces
Condensed State Spaces

LTL Model Checking, CTL Model Checking

Sun
HP
Linux
MS Windows

Renew

homepage

Free of charge

High-level Petri Nets

Graphical Editor
Token Game Animation

Java

SANDS

homepage

Free of charge

High-level Petri Nets

Graphical Editor
Fast Simulation

Net Prototyper
Test Set Generator

Sun

SEA

homepage

Free of charge

High-level Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation

Abstract Graphical Visualization

Sun

SPN2MGM

homepage

Comm. (acad. free)

Stochastic Petri Nets

Graphical Editor
State Spaces
Condensed State Spaces
Advanced Performance Analysis

Matrix-geometric solution

Sun
Linux

STROBOSCOPE

homepage

Comm. (acad. free)

Petri Nets with Time

Graphical Editor
Fast Simulation
Place Invariants
Transition Invariants
Simple Performance Analysis
Advanced Performance Analysis

MS Windows

SURF-2

homepage

Comm. (acad. disc.)

Stochastic Petri Nets

Graphical Editor
State Spaces
Place Invariants
Transition Invariants
Advanced Performance Analysis

Sun

SYROCO

homepage

Comm. (acad. free)

High-level Petri Nets
Petri Nets with Time

Graphical Editor
Fast Simulation
Simple Performance Analysis

C++ code generation

C++

THORN/DE

homepage

Comm. (acad. free)

High-level Petri Nets
Petri Nets with Time

Graphical Editor
Fast Simulation
Simple Performance Analysis

Sun
Linux

TimeNET

homepage

Comm. (acad. free)

High-level Petri Nets
Place/Transition Nets
Stochastic Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
State Spaces
Place Invariants
Structural Analysis
Simple Performance Analysis
Advanced Performance Analysis

Sun
Linux

VIPtool

homepage

Free of charge

High-level Petri Nets

Graphical Editor
Fast Simulation

Partial order Semantics

Sun
Linux
MS Windows

Visual Object Net ++

homepage

Free of charge

Place/Transition Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
Structural Analysis
Simple Performance Analysis

supports object hierarchies

MS Windows

Visual SimNet

homepage

Free of charge

High-level Petri Nets
Place/Transition Nets
Stochastic Petri Nets
Petri Nets with Time

Graphical Editor
Token Game Animation
Fast Simulation
State Spaces
Place Invariants
Transition Invariants
Structural Analysis
Simple Performance Analysis
Advanced Performance Analysis

MS DOS
MS Windows

WebSPN

homepage

Free of charge

Stochastic Petri Nets

Graphical Editor
Token Game Animation
Advanced Performance Analysis

prd, prs, pri memory policies

Java



Refferences


Information in this presentation was put together from data found in the following sources:-


Jorg Desel, Javier Esparza, "Free Choice Petri Nets", Cambridge University Press, 1995

Schach R. Stephen, "Classical and Object Oriented Software Engineering (With UML and C++)" McGraw-Hill, 1998

 

And the following web sites:-

The Institute of Electrical and Electronics Engineers, Inc.

International Electrotechnical Commission

International Organization for Standardization (ISO)

DAIMI's Home Page!