High-level Petri Nets



Similar documents
Test Coverage Criteria for Autonomous Mobile Systems based on Coloured Petri Nets

Kirsten Sinclair SyntheSys Systems Engineers

A Test Case Generator for the Validation of High-Level Petri Nets

Chapter 13: Program Development and Programming Languages

BIS 3106: Business Process Management. Lecture Two: Modelling the Control-flow Perspective

Chapter 13: Program Development and Programming Languages

A terminology model approach for defining and managing statistical metadata

Project and Production Management Prof. Arun Kanda Department of Mechanical Engineering Indian Institute of Technology, Delhi

EKT150 Introduction to Computer Programming. Wk1-Introduction to Computer and Computer Program

3 SOFTWARE AND PROGRAMMING LANGUAGES

Software Project Models

CPN Tools 4: A Process Modeling Tool Combining Declarative and Imperative Paradigms

Mechanics 1: Vectors

8. KNOWLEDGE BASED SYSTEMS IN MANUFACTURING SIMULATION

Instructional Design Framework CSE: Unit 1 Lesson 1

Figure 1. Basic Petri net Elements

CMSC 435: Software Engineering Course overview. Topics covered today

ABET General Outcomes. Student Learning Outcomes for BS in Computing

Software Engineering. What is a system?

3 Extending the Refinement Calculus

Computer Programming. Course Details An Introduction to Computational Tools. Prof. Mauro Gaspari:

Fundamentals of Programming and Software Development Lesson Objectives

Doctor of Philosophy in Computer Science

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

2. Basic Relational Data Model

Chapter 4 Software Lifecycle and Performance Analysis

2. Analysis, Design and Implementation

6 EXTENDING ALGEBRA. 6.0 Introduction. 6.1 The cubic equation. Objectives

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Subject knowledge requirements for entry into computer science teacher training. Expert group s recommendations

A Scala DSL for Rete-based Runtime Verification

Adversary Modelling 1

APPENDIX 1 USER LEVEL IMPLEMENTATION OF PPATPAN IN LINUX SYSTEM

Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz

Modeling and Simulation Firewall Using Colored Petri Net

PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE

Modeling, Computers, and Error Analysis Mathematical Modeling and Engineering Problem-Solving

Chapter 1: Introduction

Protocols and Architecture. Protocol Architecture.

Methods for the specification and verification of business processes MPB (6 cfu, 295AA)

Verification and Validation of Software Components and Component Based Software Systems

The Transmission Model of Communication

Functional Modelling in secondary schools using spreadsheets

Chapter 46 Terminal Server

Modelling Workflow with Petri Nets. CA4 BPM PetriNets

Database System Concepts

Socket Programming in the Data Communications Laboratory

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING

Microeconomics Topic 2: Explain the principle of comparative advantage and how it leads to specialization and gains from trade.

Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay

Random Fibonacci-type Sequences in Online Gambling

Architecture Design & Sequence Diagram. Week 7

æ A collection of interrelated and persistent data èusually referred to as the database èdbèè.

ZIMBABWE SCHOOL EXAMINATIONS COUNCIL. COMPUTER STUDIES 7014/01 PAPER 1 Multiple Choice SPECIMEN PAPER

Ronald Graham: Laying the Foundations of Online Optimization

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

A PRACTICAL APPROACH FOR A WORKFLOW MANAGEMENT SYSTEM

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

CS556 Course Project Performance Analysis of M-NET using GSPN

Chapter 1: Introduction. Database Management System (DBMS) University Database Example

From Control Loops to Software

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

1.1 WHAT IS A PROGRAMMING LANGUAGE?

START TEACHER'S GUIDE

The CVS-Server Case Study: A Formalized Security Architecture

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

Introducing Performance Engineering by means of Tools and Practical Exercises

CSE4213 Lecture Notes

GOAL-BASED INTELLIGENT AGENTS

FACULTY OF COMPUTER SCIENCE AND INFORMATION TECHNOLOGY AUTUMN 2016 BACHELOR COURSES

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References

A three-dimensional visualization of communications in distributed program environments

A STATISTICS COURSE FOR ELEMENTARY AND MIDDLE SCHOOL TEACHERS. Gary Kader and Mike Perry Appalachian State University USA

Modeling and Verification. Devoir Maison 6 : DSL

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Availability of the Program A free version is available of each (see individual programs for links).

TRANSACTIONS OF SOCIETY OF ACTUARIES 1952 VOL. 4 NO. 10 COMPLETE ANNUITIES. EUGENE A. RASOR* Ann T. N. E. GREVILLE

1394 Bus Analyzers. Usage Analysis, Key Features and Cost Savings. Background. Usage Segmentation

WJEC GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

How to make the computer understand? Lecture 15: Putting it all together. Example (Output assembly code) Example (input program) Anatomy of a Computer

VoIP Network Dimensioning using Delay and Loss Bounds for Voice and Data Applications

Character Code Structure and Extension Techniques

7. Classification. Business value. Structuring (repetition) Automation. Classification (after Leymann/Roller) Automation.

SuperViz: An Interactive Visualization of Super-Peer P2P Network

International Journal of Software Engineering and Knowledge Engineering Vol. 11, No. 3 (2001) World Scientific Publishing Company

Comparison of Standard, Integrated and Multimedia Information System (IS) with Solutions

Methods and Tolls for Business Process Modeling

9.2 Summation Notation

zen Platform technical white paper

Transcription:

High-level Petri Nets Model-based system development Aarhus University, Denmark Presentation at the Carl Adam Petri Memorial Symposium, Berlin, February 4, 2011 1

Concurrent systems are very important A modern car contains a large number of micro processors connected via a dedicated network. The Internet with WWW and a lot of other distributed applications have an enormous impact on our daily life. 2

Concurrent systems are difficult to design They possess non-determinism. The execution may proceed in many different ways, e.g. depending on: Whether messages are lost during transmission. The scheduling of the individual processes. The time at which input is received from the environment. Concurrent systems have an astronomical number of possible executions. It is easy for the designer to miss important interaction patterns. This may lead to gaps or malfunctions in the system design. 3

Concurrent systems are often critical For many concurrent systems it is essential that they work correctly from the very beginning: Nuclear power-plants. Aircraft control systems. Hospital life support equipment. Computer networks. Banking systems. To cope with the complexity of modern concurrent systems, it is crucial to provide methods that enable debugging and testing of central parts of the system designs prior to implementation and deployment. 4

Model-based system development One way to design a complex concurrent system is to build a model. This is an abstract mathematical representation which can be manipulated by means of a computer tool. We use the model to investigate how the system will behave and the properties it will have. Real world Model 5

Why do we make models? We make models to: gain insight in the system. get ideas to improve the design. locate design errors and other shortcomings. Debugging Models help us to: ensure completeness of the design. improve the correctness of the design. Correctness proof 6

Petri Net models In this talk we will for obvious reasons focus on models which are built by means of Petri Nets. Petri Net models have turned out to be excellent to investigate concurrent systems, where we typically have: a number of processes which communicate and synchronise with each other sharing a set of common resources. 7

Remarkable foresight The importance of concurrency is quite obvious for us today. However, remember that Carl Adam Petri started his scientific work around 1960. That was far ahead of the time where: distributed systems were invented, computers started to have parallel processes. At that time programs and processing were considered to be sequential and deterministic. Hence, it was extremely visionary of Carl Adam Petri to predict the importance of being able to understand and characterise the basic concepts of concurrency. 8

High-level Petri Nets In principle, we could build our models by means of elementary nets or place/transition nets. However, computer systems (and many other kinds of systems) contain complex data which influences the behaviour of the system. This means that we need a modelling language which makes it possible to represent data in an adequate and succinct way. This is offered by high-level Petri Nets. 9

Birth of high-level Petri Nets The first successful type of high-level Petri Nets was called Predicate/Transition Nets (Pr/T-nets). This net class was developed by Hartmann Genrich and Kurt Lautenbach from Petri s group at Schloss Birlinghoven. The first paper was presented at a conference on Semantics of Concurrent Computation in 1979. The work was partly based on earlier work: Transition nets with coloured tokens, Kurt Lautenbach & M. Schiffers 1977. Transition nets with complex conditions, Robert Shapiro 1979. 10

Producer Consumer Produce Send Buffer Receive Consume Producer: Produces data which are Sent to a Buffer. Consumer: Receives data from the Buffer and Consumes them. Solid dots called tokens are used to represent: The states of the producer and the consumer. The data packets at the buffer. There is only one kind of tokens. 11

More producers and consumers Now we have two producers and two consumers communicating via a single buffer. Produce 1 Send 1 Receive 1 Consume 1 Produce 2 Send 2 Receive 2 Consume 2 What happens if we have 12 producers and 8 consumers? 12

Solution: use different tokens Instead of having different nets for the producers, we use a single net with different kinds of tokens. Analogously for the consumers. Produce Send Buffer Receive Consume It can be proved that this model has the same behaviour as the previous one (in which we duplicated the subnets for producers and consumers). Now we can easily change the number of producers and consumers (by adding or removing tokens). 13

Main idea behind Predicate/Transition Nets Tokens can be distinguished from each other. They are said to be coloured in contrast to the tokens of place/ transition nets which are indistinguishable and drawn as black dots. p p c c e Produce Send e Buffer Receive Consume p p c c Transitions can occur in many different ways depending on the token colours of the available input tokens. Arc expressions and guards are used to specify enabling conditions and the effects of transition occurrences. 14

Limitations of Predicate/Transition Nets The invention of token colours was a gigantic step forward but it still had some limitations. There was only one class of tokens colours represented by a set D. D and Cartesian products of D (D x D, D x D x D, etc.) had to be used to represent all different kinds of data in the system, e.g.: identity of producer processes. identity of consumer processes. detailed data in the packets. 15

More general colour sets The next step forwarded was achieved by the development of at Aarhus University, Denmark in 1979. They allowed the use of a number of different sets of colours. Hence it became possible, e.g., to distinguish between token colours used to model producers, consumers and packet data. It gradually turned out that it was convenient to define the colour sets by means of data types known from programming languages, such as products, records, lists, enumerations, etc. Tokens colours became structured (and hence much more powerful). Type checking became possible (making it much easier to locate modelling errors). Colour sets, arc expressions and guards could be specified by the syntax and semantics known from programming languages. 16

Main idea behind : Allow each place to have its own set of possible token colours. Use types to specify the colour sets. p Prods p c Cons c Produce Send e Buffer e Receive Consume E p Prods p c Cons c Prods Cons Three different colour sets 17

Much more modelling power Net structure and token positions specify the control flow. Token colours specify data values. (p,i) Prods * No (p,i) (p,c,d,i) (p,c,d,i) Prod *Cons * Data * No (p,c,d,i) (p,c,d,i) Produce Send Buffer Receive Comsume (p,i) Prods * 0 (p,i+1) Prod *Cons * Data * No c Cons c li li^[(p,d,i)] [ ] Log List (Prod * Data * No) Prods * No Cons Each message in the buffer contains four elements which specify: the sending producer p and the receiving consumer c. a text string to be transmitted as data d. the sequence number of the packet i. The consumers keep a log with a list of all received messages. 18

Much more modelling power Net structure and token positions specify the control flow. Token colours specify data values. (p,i) Prods * No (p,i) (p,c,d,i) (p,c,d,i) Prod *Cons * Data * No (p,c,d,i) (p,c,d,i) Produce Send Buffer Receive Comsume (p,i) Prods * 0 (p,i+1) Prod *Cons * Data * No c Cons c li li^[(p,d,i)] [ ] Log List (Prod * Data * No) Prods * No Cons In practice, it would be totally impossible to model all these details by means of elementary nets, place/transition nets or Predicate/Transition Nets. 19

High-level Petri Nets The relationship between high-level Petri Nets and low-level Petri Nets is analogous to the relationship between a high-level programming language and assembly code. The high-level versions are obtained by adding types (token colours) and structuring facilitates (modules). In theory, the two levels have the same computational power. Each high-level Petri Net can be translated into a behavioural equivalent low-level Petri Net (and vice versa). This means that also high-level Petri Nets benefit from the work of Carl Adam Petri to establish the basic concepts of Petri Nets. In practice, the high-level languages have much more modelling power and hence they are much more convenient for human beings. 20

High-level Petri Nets have made a significant impact The most popular computer tool for have more than 10,000 licenses in nearly 150 countries. 21

Impact (2) Newest CPN book from 2009 The books and research papers defining have close to 10,000 citations. 22

Impact (3) High-level Petri Nets has become an international ISO/IEC standard. Jonathan Billington: ISO/IEC 15909-1:2004, Software and System Engineering Highlevel Petri Nets - Part 1: Concepts, Definitions and Graphical notation. High-level Petri Nets has been used in numerous industrial projects of which a considerable number have been documented in published peer-reviewed papers. References to more than 100 papers can be found at http://cs.au.dk/cpnets/industrial-use/ 23

Carl Adam Petri s contribution to high-level Petri Nets and computer tools for Petri Nets Carl Adam Petri was a theoretician and mathematician. However, he was extremely interested in practical applications and understood at a very early stage that these could only be done by building adequate tool support. The first computer tool for Petri Nets was built in Carl Adam Petri s group at Schloss Birlinghoven by Robert Shapiro in 1982-83. This tool became the ancestor and source of inspiration for all succeeding computer tools within the area. 24

Carl Adam Petri s impact on people Carl Adam Petri was a very positive and accommodating person. He has been a mentor and a spiritual farther for a lot of young students. He always had the time and patience to explain complicated mathematical concepts. Personally, I have benefitted enormously from his hospitality and open mindedness both when I visited his group as a young PhD student and when I met him as an established researcher within the Petri Net area. I am very grateful for having had the opportunity to know Carl Adam Petri. Without that my professional career is likely to have taken a very different and probably less exciting direction. 25

I want to finish this talk with a very large and heartfelt thank-you to Carl Adam Petri and a thank-you to all of you for your attention. 26