Sunteți pe pagina 1din 15

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 Universitt 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:

Petri Net systems of level (1) are characterized by 'boolean tokens', i.e. places are marked by at most 1 unstructured token. Petri Net systems of level (2) are characterized by 'integer tokens', i.e. places are marked by several unstructured tokens - they represent counters. Petri Net systems of level (3) are characterized by high-level tokens, i.e. places are marked by structured tokens where information is attached to them.

Recent Extensions
Important extensions to this general Petri Nets classification are:

Colored Petri Nets Timed Petri Nets Modular Petri Nets Petri Net Formalisms defined for/within specific Petri Net Tools: o AADL Nets, a high-level Petri Net formalism based on the VHDL
o

implementation language for the COMDES tool AMI Nets, a high-level net model with temporal extensions for CPN/AMI

o o o o o o o o o o o o o o o o

Artifex Petri Nets, a coloured Petri Net model with objects for the Artifex tool CAB Nets, the typed version of timed ER Nets for CABERNET Communicating Petri Nets, an object-oriented net model based on C/E Nets
for NETOBJ

Communicating Time Petri Nets, a timed message passing net model for
ORIS COOPN/2, an object-oriented Petri Net specification language based upon Algebraic Petri Nets for SANDS Macronets, an object-oriented formalism for business modelling in Macrotec M-Nets, a high-level compositional Petri Net model for DIOGENES and PEP Object Petri Nets for LOOPN Product Nets, a high-level Petri Net formalism for the Product Net Machine Queueing Petri Nets, coloured stochastic Petri Nets with queues for the QPN Tool Simulation Nets, a stochastic coloured Petri Net formalism for XSIMNET SPECS Nets, a Petri Net specification language for SystemSPECS Stochastic Activity Networks, an extended GSPN model for UltraSAN Stochastic Reward Nets, a GSPN-like formalism for SPNP Stochastic Well-Formed Colored Nets, a stochastic high-level net model for GreatSPN THORNs, a timed object related net formalism for DNS

Examples - Java Applets


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

Robert Esser's Petri Net Browser Torguet Patrice's Petri Network Simulator Thomas Braunl's S/T Petri-Net Simulation System

Petri Nets Tools


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

Overview Features Components Graphical Editor Token Game High-level Petri Animation Nets Fast Petri Nets with Simulation Time Simple Performance Analysis

PN Supported

Environments

ALPHA/Sim homepage Comm. (acad. disc.)

Sun MS Windows

Graphical Editor Token Game Animation Fast Place/Transition Simulation EDS Petri Net Tool Nets Structural Stochastic Petri http://www.daimi.au.dk/PetriNets/tools/ Analysis Nets Simple Petri Nets with Comm. (acad. disc.) Performance Time Analysis Transition programming language Graphical Editor Token Game Animation Fast Simulation F-net Place Petri Nets with http://www.daimi.au.dk/PetriNets/tools/ Invariants Time Transition Comm. (acad. disc.) Invariants Structural Analysis Simple Performance Analysis

MS Windows OS/2

MS Windows

Advanced Performance Analysis GDToolkit homepage Comm. (acad. free) High-level Petri Nets Place/Transition Automatic Nets layout Graphical Editor Token Game Animation Fast Simulation High-level Petri State Spaces Condensed Nets Stochastic Petri State Spaces Place Nets Petri Nets with Invariants Transition Time Invariants Structural Analysis Advanced Performance Analysis Graphical Editor Token Game Animation State Spaces High-level Petri Place Nets Stochastic Petri Invariants Transition Nets Invariants Advanced Performance Analysis High-level Petri Nets Place/Transition Nets Petri Nets with State Spaces Condensed State Spaces Place Invariants Sun Linux MS Windows

GreatSPN homepage Comm. (acad. free)

Sun

HiQPN-Tool homepage Free of charge

Sun

INA homepage Free of charge

Sun Linux MS Windows

Time

Transition Invariants Net Reductions Structural Analysis Simple Performance Analysis Advanced Performance Analysis

INCOME homepage Comm. (acad. disc.)

CTL-based model checker Graphical Editor Token Game Animation Fast Simulation Transition Invariants Net Reductions Structural MS High-level Petri Analysis Windows Nets Simple Java Performance Analysis

Interfaces to Workflow engines, CASE tools, enhanced documentation features Graphical Looping Editor High-level Petri Token Game MS http://www.daimi.au.dk/PetriNets/tools/ Animation Nets Windows Fast Comm. (acad. free) Simulation MISS-RdP High-level Petri Graphical Sun

Nets http://www.daimi.au.dk/PetriNets/tools/ Place/Transition Nets Comm. (acad. disc.) Stochastic Petri Nets Petri Nets with Time

Editor Token Game Animation Fast Simulation

Moses Tool Suite homepage Free of charge

Netmate homepage Comm. (acad. disc.)

Advanced Performance Analyse Graphical Editor High-level Petri Token Game Nets Animation Stochastic Petri Fast Nets Simulation Petri Nets with Time Userextendable Graphical Editor Token Game Animation Fast Simulation High-level Petri Place Nets Invariants Place/Transition Transition Nets Invariants Petri Nets with Structural Time Analysis PLC-Code Generation PLC Monitoring Graphical Editor Token Game Animation Fast Simulation Net Reductions

Sun Linux MS Windows Java

MS Windows

PACE homepage Comm. (acad. disc.)

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

Sun HP MS Windows

PAREDE

Petri Nets with State Spaces

MS DOS

Time homepage Comm. (acad. free) PED homepage Free of charge

Condensed State Spaces Structural Analysis

Place/Transition Graphical Nets Petri Nets with Editor Time Graphical Editor Token Game Animation State Spaces Condensed State Spaces Place High-level Petri Invariants Nets Transition Place/Transition Invariants Nets Net Reductions Structural Analysis Model Checking Petri Net Generators Graphical Editor Token Game Animation Fast Simulation State Spaces Place/Transition Condensed Nets State Spaces Place Invariants Transition Invariants Simple Performance

Sun Linux

PEP homepage Free of charge

Sun Linux

PETRI Maker homepage Free of charge

MS Windows

Analysis Petri Net Kernel homepage Free of charge PetriSim homepage Free of charge High-level Petri Graphical Nets Editor Place/Transition Nets User definable High-level Petri Nets Place/Transition Nets Petri Nets with Time Graphical Editor Fast Simulation Sun Linux MS Windows

MS DOS

PNSim homepage Free of charge

Graphical Editor Token Game Animation Place/Transition Structural Nets Analysis Simple Net Analysis Graphical Editor Token Game High-level Petri Animation Nets Fast Petri Nets with Simulation Time Simple Performance Analysis High-level Petri Nets Place/Transition Nets Stochastic Petri Nets Petri Nets with Time Fast Simulation

MS Windows Java

PNtalk homepage Free of charge

Sun MS Windows

POSES++ homepage Free of charge PROD homepage Free of charge

MultiClient/MultiServer Common 2D animation State Spaces High-level Petri Condensed Nets State Spaces Place/Transition Nets LTL Model

Sun HP Linux MS Windows Sun HP Linux MS Windows

Checking, CTL Model Checking Renew homepage Free of charge SANDS homepage Free of charge Graphical Editor Fast High-level Petri Simulation Nets Net Prototyper Test Set Generator Graphical Editor Token Game High-level Petri Animation Nets Fast Petri Nets with Simulation Time Abstract Graphical Visualization Graphical Editor State Spaces Condensed State Spaces Stochastic Petri Advanced Nets Performance Analysis Matrixgeometric solution Graphical Editor Fast Petri Nets with Simulation Time Place Invariants Transition Graphical High-level Petri Editor Token Game Nets Animation

Java

Sun

SEA homepage Free of charge

Sun

SPN2MGM homepage Comm. (acad. free)

Sun Linux

STROBOSCOPE homepage Comm. (acad. free)

MS Windows

Invariants Simple Performance Analysis Advanced Performance Analysis Graphical Editor State Spaces Place Stochastic Petri Invariants Transition Nets Invariants Advanced Performance Analysis Graphical Editor Fast High-level Petri Simulation Nets Simple Petri Nets with Performance Time Analysis C++ code generation Graphical Editor High-level Petri Fast Nets Simulation Petri Nets with Simple Time Performance Analysis 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

SURF-2 homepage Comm. (acad. disc.)

Sun

SYROCO homepage Comm. (acad. free)

C++

THORN/DE homepage Comm. (acad. free)

Sun Linux

TimeNET homepage Comm. (acad. free)

Sun Linux

Structural Analysis Simple Performance Analysis Advanced Performance Analysis Graphical Editor Fast High-level Petri Simulation Nets Partial order Semantics Graphical Editor Token Game Animation Fast Place/Transition Simulation Nets Structural Petri Nets with Analysis Time Simple Performance Analysis

VIPtool homepage Free of charge

Sun Linux MS Windows

Visual Object Net ++ homepage Free of charge

MS Windows

Visual SimNet homepage Free of charge

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

supports object hierarchies Graphical Editor Token Game Animation Fast Simulation State Spaces MS DOS Place MS Invariants Windows Transition Invariants Structural Analysis Simple Performance Analysis

Advanced Performance Analysis Graphical Editor Token Game Animation Advanced Stochastic Petri Performance Nets Analysis prd, prs, pri memory policies

WebSPN homepage Free of charge

Java

S-ar putea să vă placă și