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
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).
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.
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.
The present classification starts from three basic net levels:
Important extensions to this general Petri Nets classification are:
Here is a selection of simple Petri net Java applets which quickly illustrate the basic elements and concepts of Petri nets.
The table below is useful to get an overview of existing tools, and to make rough comparisons.
Features | Environments | ||
PN Supported | Components | ||
High-level Petri Nets | Graphical Editor | Sun | |
EDS Petri Net Tool | Place/Transition Nets | Graphical Editor | MS Windows |
F-net | Petri Nets with Time | Graphical Editor | MS Windows |
High-level Petri Nets |
| Sun | |
High-level Petri Nets | Graphical Editor | Sun | |
HiQPN-Tool | High-level Petri Nets | Graphical Editor | Sun |
High-level Petri Nets | State Spaces | Sun | |
High-level Petri Nets | Graphical Editor | MS Windows | |
Looping | High-level Petri Nets | Graphical Editor | MS Windows |
MISS-RdP | High-level Petri Nets | Graphical Editor | Sun |
Moses Tool Suite | High-level Petri Nets | Graphical Editor | Sun |
High-level Petri Nets | Graphical Editor | MS Windows | |
High-level Petri Nets | Graphical Editor | Sun | |
Petri Nets with Time | State Spaces | MS DOS | |
Place/Transition Nets | Graphical Editor | Sun | |
High-level Petri Nets | Graphical Editor | Sun | |
PETRI Maker | Place/Transition Nets | Graphical Editor | MS Windows |
Petri Net Kernel | High-level Petri Nets | Graphical Editor | Sun |
High-level Petri Nets | Graphical Editor | MS DOS | |
Place/Transition Nets | Graphical Editor | MS Windows | |
High-level Petri Nets | Graphical Editor | Sun | |
High-level Petri Nets | Fast Simulation | Sun | |
High-level Petri Nets | State Spaces | Sun | |
High-level Petri Nets | Graphical Editor | Java | |
High-level Petri Nets | Graphical Editor | Sun | |
High-level Petri Nets | Graphical Editor | Sun | |
Stochastic Petri Nets | Graphical Editor | Sun | |
STROBOSCOPE | Petri Nets with Time | Graphical Editor | MS Windows |
Stochastic Petri Nets | Graphical Editor | Sun | |
High-level Petri Nets | Graphical Editor | C++ | |
High-level Petri Nets | Graphical Editor | Sun | |
High-level Petri Nets | Graphical Editor | Sun | |
High-level Petri Nets | Graphical Editor | Sun | |
Visual Object Net ++ | Place/Transition Nets | Graphical Editor | MS Windows |
Visual SimNet | High-level Petri Nets | Graphical Editor | MS DOS |
Stochastic Petri Nets | Graphical Editor | Java |
Information in this presentation was put together from data found in the following sources:-
Schach R. Stephen, "Classical and Object Oriented Software Engineering (With UML and C++)" McGraw-Hill, 1998
And the following web sites:-