Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri...

52
Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems Kurt Jensen & Lars Michael Kristensen {kjensen,lmkristensen} @cs.au.dk data n if success then 1`n else empty n if n=k then k+1 else k (n,d) (n,d) n if n=k then data^d else data (n,d) if success then 1`(n,d) else empty (n,d) Receive Ack Transmit Ack Receive Packet Transmit Packet Send Packet 1`1 NO C D NO A NOxDATA NextSend 1`1 NO Data Received 1`"" DATA B NOxDATA Packets To Send AllPackets NOxDATA k n NextRec k if n=k then k+1 else k NO 1 1`1 1 1`"" 6 1`(1,"COL")++ 1`(2,"OUR")++ 1`(3,"ED ")++ 1`(4,"PET")++ 1`(5,"RI ")++ 1`(6,"NET") 1 1`1 Chapter 2: Non-hierarchical Coloured Petri Nets

Transcript of Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri...

Page 1: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

1

Coloured Petri NetsDepartment of Computer Science

Coloured Petri NetsModelling and Validation of Concurrent Systems

Kurt Jensen &Lars Michael Kristensen

{kjensen,lmkristensen}@cs.au.dk

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

Chapter 2:Non-hierarchical Coloured Petri Nets

Page 2: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

2

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

Simple protocol

Page 3: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

3

Coloured Petri NetsDepartment of Computer Science

Informal description

Sender Network Receiver

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

No loss of packetsNo overtaking

Page 4: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

4

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

Coloured Petri Net

Place

Transition

Arc

Net inscriptions

Nodes

Page 5: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

5

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

Places represent the state of the system

Name(no formal meaning;

large impact on readability)

Initial marking (multiset of

tokens)

Colour set (type)

Definition of colour sets:

colset NO = int; (* integers *)colset DATA = string; (* text strings *)colset NOxDATA = product NO * DATA;

Each token in the initial marking must have a colour that belongs to the colour set

Each place contains a number of tokens. Each token carries a colour (data value). The colour set specifies the set of allowed

token colours.

Page 6: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

6

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`1

6

1`(1,"COL ")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Current marking during simulation

Information aboutcurrent marking(changes during simulation)

The thick border line indicates that thetransition is enabled (ready to occur)

Circle: 6 tokens

Square: Detailedtoken values

One token with value 1

Values:Token colours

(multiset of actual token colours)

Type:Colour set

(set of allowed token colours)

Page 7: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

7

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

Transitions and arcsArc expression

Name(no formal meaning)

The arc expression must evaluate to a colour in the colour set of the attached place(or a multiset of such colours)

Declaration of variables:

var n : NO; (* integers *)var d : DATA; (* strings *)

Binding of variables:

<n=3,d="CPN">

Evaluation of expressions:

(n,d) (3,"CPN") : NOxDATA

n 3 : NO

Page 8: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

8

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`1

6

1`(1,"COL ")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Enabling of transition

Two variables:

var n : NO; (* integers *) var d : DATA; (* strings *)

Binding: < n=? , d=? >

Transition is enabled if we can find a binding so that each input arc expression evaluates to one or more colours that are present on the corresponding input place

NO DATA

?

?

Page 9: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

9

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`1

6

1`(1,"COL ")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Enabling of SendPacket

One token with value 1

Binding: < n=1 , d=? >

We want to find a binding for the variable n such that the arc expression n evaluates to a colour which is present on the place NextSend

Arc expression

Page 10: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

10

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`1

6

1`(1,"COL ")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Binding: < n=1 , d=? >

Enabling of SendPacket

Six different tokens

Binding: < n=1 , d="COL" >

We want to find a binding for the variable d such that the arc expression (n,d) evaluates to a colour which is present on the place PacketsToSend

Arc expression

Page 11: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

11

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`1

6

1`(1,"COL ")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

1

(1,"COL")

Enabling of SendPacket

Binding: < n=1 , d="COL" >

We have found a binding so that each input arc expression evaluates to a colour that is present on the corresponding input place

Transition is enabled(ready to occur)

Page 12: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

12

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`1

6

1`(1,"COL ")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Occurrence of SendPacketin binding <n=1,d=“COL”>

(1,"COL")

Remove: (1,"COL")

Add a new token: (1,"COL")

Remove: 1

1

(1,"COL")

Page 13: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

13

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`(1,"COL ")

5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

New marking after occurrence of SendPacket in binding <n=1,d=“COL”>

The first packet has been removed

A copy of the first packet has been put on A

No token on this place

Transition is no longer enabled(thin border line)

Page 14: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

14

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`(1,"COL ")

5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

New marking M1

Transition enabled

Page 15: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

15

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`(1,"COL ")

5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Binding: < n=? , d=? >

Binding of TransmitPacket

Current marking

Arc expression

Binding: < n=1 , d="COL" >

Page 16: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

16

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`(1,"COL ")

5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Occurrence of TransmitPacket in binding <n=1,d=“COL”>

Remove: (1,"COL")

(1, "COL") (1, "COL")

Add a new token: (1,"COL")

Page 17: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

17

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`(1,"COL ")

5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

New marking M2

Binding: <n=1,d="COL">

1

1`2

XXXX

11`(1,"COL")

Page 18: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

18

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Binding: <n=2>

1

1`2XXX

New marking M3

Page 19: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

19

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Binding: <n=2>

1 1`2

XXX

New marking M4

Page 20: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

20

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

We have successfully transmittedthe first packet and the acknow-ledgement for it

We are ready to start transmission of packet number two

New marking M5

Page 21: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

21

Coloured Petri NetsDepartment of Computer Science

1 (SendPacket ,<n=1, d="COL">)2 (TransmitPacket , <n=1, d="COL">)3 (ReceivePacket , <n=1, d="COL">)4 (TransmitAck , <n=2>)5 (ReceiveAck , <n=2>)

Transition Binding( , )

Binding element

First five steps

Page 22: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

22

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Binding: <n=2,d="OUR">

1

1`(2,"OUR")

4

New marking M5

Page 23: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

23

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Binding: <n=2,d="OUR">

1

1`(2,"OUR")

1

1`(2,"OUR")

4

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

New marking M6

Page 24: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

24

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Binding: <n=2,d="OUR">

1

1`(2,"OUR")

2

1`(2,"OUR")

1

1`3

4

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

New marking M7

Page 25: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

25

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Binding: <n=3>

2

1`(2,"OUR")

1

1`3

1

1`3

4

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

New marking M8

Page 26: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

26

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Binding: <n=3>

2

1`(2,"OUR")

1

1`3

1`3

4

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

11`2

11`(1,"COL ")5

1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

New marking M9

Page 27: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

27

Coloured Petri NetsDepartment of Computer Science

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`3

21`(1,"COL ")++1`(2,"OUR")4

1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

We have successfully transmittedthe first twopackets and the acknowledgements for them

We are ready to start transmission of packet number three

New marking M10

Page 28: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

28

Coloured Petri NetsDepartment of Computer Science

Marking after 30 steps

n

n n n

n+1

(n,d)(n,d)

n

(n,d)

(n,d)(n,d)

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

PacketsReceived

B

NOxDATA

PacketsTo Send

1`(1,"COL " )++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

NOxDATA NOxDATA

SendPacket

1 1`7

6

1`(1,"COL ")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Dead marking (no transitions are enabled)

We have successfully transmitted all six packets and the acknowledgements for them

There are no more packets to transmit

Page 29: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

29

Coloured Petri NetsDepartment of Computer Science

Second version of protocol

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

Constant

Page 30: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

30

Coloured Petri NetsDepartment of Computer Science

Declaration of constants

val AllPackets = 1‘(1,"COL") ++ 1‘(2,"OUR") ++ 1‘(3,"ED ") ++ 1‘(4,"PET") ++ 1‘(5,"RI ") ++ 1‘(6,"NET");

Saves a little bit of space in the diagram. Enhances readability. Can be reused (at other places).

We use the following constant to specify the initial marking of PacketsToSend.

Page 31: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

31

Coloured Petri NetsDepartment of Computer Science

Double-headed arcs

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

Double-headed arc

Double-headed arc

A double-headed arc is a shorthand for two oppositely directed arcs with the same arc expression

We no longer remove the tokens from the input places

Retransmission becomes possible

Page 32: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

32

Coloured Petri NetsDepartment of Computer Science

More complicated arc expression

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

More complicatedarc expression

(if-then-else expression)

Page 33: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

33

Coloured Petri NetsDepartment of Computer Science

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

If-then-else expression

1`(1,"COL")

var success : BOOL;

b+ = <n=1, d="COL", success=true>b

– = <n=1, d="COL", success=false>

success = true

Successful transmissionover the network

1

1`(1,"COL")

1

1`(1,"COL")

New variable:

Page 34: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

34

Coloured Petri NetsDepartment of Computer Science

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

If-then-else expression

empty

var success : BOOL;

success = false

Packet is lost during transmission

1

1`(1,"COL")No packet is added

b+ = <n=1, d="COL", success=true>b

– = <n=1, d="COL", success=false>

Page 35: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

35

Coloured Petri NetsDepartment of Computer Science

New name and new type

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

New type

New name

Initial marking:empty text string

Page 36: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

36

Coloured Petri NetsDepartment of Computer Science

New place: NextRec

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

New placePlays a similar role as NextSend

Contains the number of the

expected packet

Page 37: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

37

Coloured Petri NetsDepartment of Computer Science

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

1`(1,"COL")

1

Correct packet arrives

Empty text string

11`1

Binding:<n=1, d="COL", k=1, data="">

11`2

11`2

2

2

"COL"

Update NextRec (from 1 to 2)

Send acknoweledgement(with sequence number of next packet)

Add received data: "COL” to DataReceived

1 1`"COL"

^ is the concatenation operator

Packet no 1 arriving

Packet no 1 expected

11`""

11`(1,"COL")

Page 38: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

38

Coloured Petri NetsDepartment of Computer Science

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

1

1`(1,"COL")1

11`3

1`(1,"COLOUR")

Wrong packet arrives

11`(1,"COL")

11`"COLOUR"

11`3

Binding:<n=1, d="COL", k=3, data="COLOUR">

11`3

11`3

11`"COLOUR"

3

3

"COLOUR"

Do not change NextRec

Send acknowledgement(with sequence number of next packet )

No data is added to DataReceived

Packet no 1 arriving

Packet no 3 expected

Page 39: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

39

Coloured Petri NetsDepartment of Computer Science

Acknowledgements can be lost

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

Also possible to loose acknowledgements

Page 40: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

40

Coloured Petri NetsDepartment of Computer Science

NextSend is updated

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

NextSend is updated with sequence number from acknowledgement

Page 41: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

41

Coloured Petri NetsDepartment of Computer Science

Two enabled transitions

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1

1`(1,"COL")

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

SP = (SendPacket, <n=1, d="COL">)TP+ = (TransmitPacket, <n=1, d="COL", success=true>)TP

– = (TransmitPacket, <n=1, d="COL", success=false>)

These binding elements need the same token

They are in conflict with each other

Page 42: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

42

Coloured Petri NetsDepartment of Computer Science

Two enabled transitions

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1

1`(1,"COL")

1 1`1

11`""6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

These bindings elements use different tokens

They are concurrently enabled and can occur concurrently

SP = (SendPacket, <n=1, d="COL">)TP+ = (TransmitPacket, <n=1, d="COL", success=true>)TP

– = (TransmitPacket, <n=1, d="COL", success=false>)

Page 43: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

43

Coloured Petri NetsDepartment of Computer Science

Three enabled transitions

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

1

1`(1,"COL")

1 1`1

11`""

1

1`(1,"COL")

6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`1

SP = (SendPacket, <n=1, d="COL">)TP+ = (TransmitPacket, <n=1, d="COL", success=true>)TP

– = (TransmitPacket, <n=1, d="COL", success=false>)RP = (ReceivePacket, <n=1, d="COL", k=1, data="">)

All other binding elements are concurrently enabled

These binding elements

are in conflict

Page 44: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

44

Coloured Petri NetsDepartment of Computer Science

data

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

1`1

NO

CD

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

k n

NextRec

k

if n=kthen k+1else k

NO

11`2

2

2`(1,"COL")

1 1`1

11`"COL"6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

11`2

Three enabled transitions

SP = (SendPacket, <n=1, d="COL">)TP+ = (TransmitPacket, <n=1, d="COL", success=true>)TP

– = (TransmitPacket, <n=1, d="COL", success=false>)TA+ = (TransmitAck, <n=2, success=true>)TA– = (TransmitAck, <n=2, success=false>)

All other binding elements are concurrently enabled

35 different enabled steps

Page 45: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

45

Coloured Petri NetsDepartment of Computer Science

Possible marking after 50 steps

k

if n=kthen k+1else k

k

data

n

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

NextRec

1`1

NO

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

11`5

11`5

1 1`4

11`"COLOURED PET"

1

1`(4,"PET")

6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

Receiver is waiting for packet no. 5

Sender is stillsending packet no. 4

An acknowledgement requesting packet no. 5 is arrivingWhen it is received, the sender will start sending packet no. 5

This packetwill be discarded

Page 46: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

46

Coloured Petri NetsDepartment of Computer Science

Dead marking at the end of simulation

k

if n=kthen k+1else k

k

data

n

n if successthen 1`nelse empty

n

if n=kthen k+1else k

(n,d)(n,d)

nif n=k then data^delse data

(n,d)

if successthen 1`(n,d)else empty

(n,d)

ReceiveAck

TransmitAck

ReceivePacket

TransmitPacket

SendPacket

NextRec

1`1

NO

C

NO

D

NO

A

NOxDATA

NextSend

1`1

NO

DataReceived

1`""

DATA

B

NOxDATA

PacketsTo Send

AllPackets

NOxDATA

11`71 1`7

11`"COLOURED PETRI NET"6

1`(1,"COL")++1`(2,"OUR")++1`(3,"ED ")++1`(4,"PET")++1`(5,"RI ")++1`(6,"NET")

All packets have been receivedin the correct order

Sender is ready tosend packet no. 7

All buffer placesare empty

Receiver is waiting for packet no. 7

There is no packet no. 7

Page 47: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

47

Coloured Petri NetsDepartment of Computer Science

1 0 SendPacket @ (1:Protocol)- d = "COL"- n = 1

2 0 TransmitPacket @ (1:Protocol)- n = 1- d = "COL"- success = true

3 0 ReceivePacket @ (1:Protocol)- k = 1- data = ""- n = 1- d = "COL"

4 0 TransmitAck @ (1:Protocol)- n = 2- success = true

5 0 ReceiveAck @ (1:Protocol)- k = 1- n = 2

6 0 SendPacket @ (1:Protocol)- d = "OUR"- n = 2

Step Time Transition Module

Binding of variables

Specifies the occurring transitions and their bindings.

Automatically generated by the CPN Tools simulator.

Simulation report

Page 48: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

48

Coloured Petri NetsDepartment of Computer Science

Graphical high-level representation of occurrence sequence.

Automatically generated by theCPN Tools simulator.

Makes it easy to see what happened – also for non-CPN experts.

Visualisation by message sequence

chart

Page 49: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

49

Coloured Petri NetsDepartment of Computer Science

Transitions can have a guard

k

k

(n,d)

k+1

k

data

k+1

data^d

(n,d)

Discard Packet

ReceiveNext

NextRec

1`1

NO

C

NO

DataReceived

1`""

DATA

B

NOxDATA

[n<>k] [n=k]

Guard(<> is theInequality operator)

Guard(tests whether n and kare equal)

Boolean expression which must evaluate to true for the binding element to be enabled.

Additional enabling condition.

Correctpackets

Wrongpackets

Page 50: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

50

Coloured Petri NetsDepartment of Computer Science

k

k

(n,d)

k+1

k

data

k+1

data^d

(n,d)

Discard Packet

[n<>k]

ReceiveNext

[n=k]

NextRec

1`1

NO

C

NO

DataReceived

1`""

DATA

B

NOxDATA

1

1`2

11`""

2

1`(1,"COL")++1`(2,"OUR")

1`"COL"

Guard must evaluate to true

RN1 = (ReceiveNext, <n=1, k=2, d="COL", data="COL">)RN2 = (ReceiveNext, <n=2, k=2, d="OUR", data="COL">)

false

true

[n=k]

Page 51: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

51

Coloured Petri NetsDepartment of Computer Science

k

k

(n,d)

k+1

k

data

k+1

data^d

(n,d)

Discard Packet

[n<>k]

ReceiveNext

[n=k]

NextRec

1`1

NO

C

NO

DataReceived

1`""

DATA

B

NOxDATA

1

1`2

11`""

2

1`(1,"COL")++1`(2,"OUR")

1`"COL"

Guard must evaluate to true

DP1 = (DiscardPacket, <n=1, k=2, d="COL" )DP2 = (DiscardPacket, <n=2, k=2, d="OUR")false

true

[n<>k]

Page 52: Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.

Kurt Jensen Lars M. Kristensen

52

Coloured Petri NetsDepartment of Computer Science

Questions