Object Petri Nets (OPNs) extend the formalism of Coloured Petri Nets with a complete integration of object-oriented features, including inheritance, polymorphism and dynamic binding. The object-orientation provides powerful structuring primitives allowing the modelling of complex systems, including those with multiple levels of activity.
LOOPN is an early implementation of Object Petri Nets in a textual language. It includes object-oriented features such as inheritance, polymorphism and dynamic binding, which supports convenient modularisation of complex specifications.
The LOOPN compiler generates C code, thus allowing ready access to C and thence to Unix functions. This can be used for incorporating string manipulation, array handling, file handling, and even network connections into LOOPN programs.
LOOPN was used as a teaching tool at the University of Tasmania, both in a course on general simulation and in a course on computer networks.
LOOPN has been used to model some network protocols. The support for inheritance makes it convenient to develop protocol layers which will handle a variety of message types, and it is possible to reuse protocol components in the object-oriented manner.
LOOPN++ is a recent implementation of Object Petri Nets in a textual language. It has a more regular syntax and and is much more flexible. It has a unified class hierarchy, allowing tokens and subnets to be arbitrarily intermixed. In this way, it provides ready support for models with multiple levels of activity.
The LOOPN++ compiler generates C++ code, thus allowing ready access to C++ and thence to Unix functions. This can be used for incorporating string manipulation, array handling, file handling, and even network connections into LOOPN++ programs.
Work is currently underway to use these facilities to integrate LOOPN++ with a persistent store and with Java applets.
The Russian philosophersis a fanciful problem to demonstrate the modelling power of Object Petri Nets, and in particular its direct support for modelling concurrent systems with multiple levels of activity. The Russian philosophers problem is an enhanced version of the dining philosophers problem. The name is meant to conjure up the image of the Russian matrioshka dolls which can be pulled apart to reveal other dolls inside.
The Russian philosophers are like the dining philosophers, except that each Russian philosopher is thinking about the dining philosophers problem. Only when such an imagined dining philosophers problem deadlocks, will the corresponding Russian philosopher stop thinking and try to start eating. When such a Russian philosopher stops eating, he or she starts thinking about a fresh dining philosophers problem. Naturally, this system can be nested arbitrarily deeply.
This problem is considered to be typical of a multi-level system where one part is performing some task which is being monitored by another.
Date created: 25 August 2000 Last modified: 25 August 2000 Copyright 2000, Charles Lakos Maintained by: Charles Lakos Charles Lakos