VON: Visual Object Net++


Acronyms and Abbreviations

PN: Petri Nets
HLPN: High Level Petri Nets
HPN: Hybrid Petri Nets
VON: Visual Object Net

Table of Contents

1.    Introduction
2.    Scope
3.    A Brief History
4.    Petri Nets: What is it
5.    Classifications of the Petri Nets
        5.1    High Level Petri Nets
            5.1.1    Extension with Color
            5.1.2    Extension with Time
            5.1.3    Extension with Hierarchy
6.    Visual Object Net++
7.    Technical Data
8.    Features
9.    Drawing the Petri Nets
10.  Current Status
11.  Some Comments of the Researcher
12.  Conclusion

1.    Introduction
Petri Net has been used as a methodology to analyses metabolic pathway for a decade. Many graphical tools have been developed to model Petri Nets. Moreover, with the advent of time, Petri Nets have been continuously going through several phases of development to show more and more behavioral qualities of the system. Here, we have analyzed the Visual Object Net ++ Evaluation Version 2.0a. A better version is there but the page that have the updated version has no accessibility. We have concentrated on the classical Petri Nets rather than the detailed versions of the more advanced Petri Nets. But at first, we try to give the readers a general idea of what the Petri Nets are, the different types of Petri Nets and their uses. We then have evaluated the current modeler software. Finally, we have put certain comments on what lessons we have learnt.

2.    Scope
It is assumed that the reader has the basic knowledge of Petri Nets. Still, the reader can learn in brief about them from the introductory sections. It is written particularly for the users who are undecided about what tool they want to use for the modeling of PN as this page contains an analysis of one of the tools.  This analysis report was written as a partial requirement of the "Projektseminar Automatisierte Modellierung und Simulation Molekularbiologischer Prozesse" offered in WiSe 02-03 at Bielefeld University.

3.    A Brief History
The concept of Petri nets has its origin in Carl Adam Petri's PhD dissertation Kommunikation mit Automaten, submitted in 1962 to the faculty of Mathematics and Physics at the Technische Universität Darmstadt, Germany and has than became one of the central fields of research. Petri nets are now used throughout the world as one of the fundamental models for concurrency in complex systems, ranging from hardware design, distributed databases to communication  networks, flexible manufacturing and control. Based on the theoretical works of the earlier years, the field has matured to the extent that now powerful software systems are available that support analysis and simulation tools for a wide range of applications [http://www.gmd.de/SCAI/Projectpages/petrinet/petrinet.html ].

4.    Petri Nets: What is it
Petri Nets is a formal, graphical, executable technique for the specification and analysis of concurrent, discrete-event dynamic systems [http://www.petrinets.org ]. By formal, we mean that the technique is mathematically well-defined. Many static and dynamic properties of a Petri net (and hence a system specified using the technique) can be mathematically proven. By graphical, we mean that the technique belongs to a branch of mathematics called graph theory. A Petri Net may be represented graphically as well as mathematically. The ability to visualize structure and behavior of a Petri Net promotes understanding of the modeled system. By executable , we mean that a Petri net may be executed and the dynamic behavior observed graphically.  By specification we mean that system requirements are expressed and verified (by formal analysis) using the technique constituting a formal system specification.  A specification in the form of a Petri net model may be formally analyzed against static and dynamic system requirements. Visual feedback from the Petri net graph at each iteration of the specification increases understanding of the requirements, highlights errors in the model (or sometimes the requirements) and results in rapid convergence on a mathematically correct and consistent specification. By discrete event dynamic system , we mean a system which may change state over time, based on current state and state-transition rules, and where each state is separated from its neighbor by a step rather than a continuum of intermediate infinitesimal states. Other definitions state PN as bi-partite directed graphs.  A bi-partite graph G = (V, E) is a graph such that V can be partitioned into two subsets V1 and V2 and no edge has both its vertices in the same subset.  So far PN is concerned, it means that there cannot be more than one arrow connecting the same place and the same transition or from the same transition to the same place.

Let us discuss about the places, transitions and arcs. A Petri Net is formed from:

1. A finite set of places
2. A finite set of transitions
3. A finite set of arcs connecting either places to transitions or transitions to places

Graphically, places are represented by circles and transitions by bars.  A Petri net is given a state by marking its places.  A marking consists of inserting a number of tokens, denoted by the filled black circles, in every place of the net.  A transition may have one or more input or output places.  If an arrow goes from a place to a transition, the place is said to be one of the one of the transition's input places. If an arrow goes from a transition to a place, the place is said to be one of the transition's output places. A transition is said to enabled if there is at least one token in each of its input places.  An enabled transition may fire . This means that one token is removed from its input place and one token is inserted in its output place of the transition.  Given an  initial marking, different evolution of the PN is possible.  So, this is a non deterministic model.  A firing sequence of a given Petri net with a given initial marking is a sequence of transition firings denoted as a set of transition labels [3].
 


Fig 1: Basic properties of a Petri Net 

Fig 2: Petri Net

5.    Classifications of the Petri Nets
During the last 40 years, Petri Nets have seen some major developments.  There are numerous types of Petri Nets with each having some more features than the previous ones.  We can divide them into two groups:

Due to the analytical nature of the paper, we shall concentrate on the classical Petri Nets.  But let us discuss shortly about some of the high level petri nets also (we have already discussed the classical Petri Nets in the beginning, even though the mathematical definitions are in [http://wwwis.win.tue.nl/~wsinwa/jcsc/node4.html ]):
 
5.1    High Level Petri Nets
The classical Petri net allows for the modeling of states, events, conditions, synchronization, parallelism, choice, and iteration. However, Petri nets describing real processes tend to be complex and extremely large. Moreover, the classical Petri net does not allow for the modeling of data and time. To solve these problems, many extensions have been proposed. Three well-known extensions of the basic Petri net model are:
(1) the extension with color to model data
(2) the extension with time, and
(3) the extension with hierarchy
They are handy to structure large models. A Petri net extended with color, time, and hierarchy is called a High Level Petri Nets. We might want to use these extensions to model specific aspects.
5.1.1    Extension with Color
Tokens often represent objects (e.g. resources, goods, humans) in the modeled system. Therefore, we often want to represent attributes of these objects. If an insurance claim is modeled by a token in the Petri net, we want to represent attributes such as the name of the claimant, identification number, date, and amount. Since these attributes are not easily represented by a token in a classical Petri net, we extend the Petri net model with colored or typed tokens. In a colored Petri net each token has a value often referred to as `color'. Transitions determine the values of the produced tokens on the basis of the values of the consumed tokens, i.e., a transition describes the relation between the values of the input tokens' and the values of the `output tokens'. It is also possible to specify `preconditions' which take the colors of tokens to be consumed into account.

5.1.2    Extension with Time
For real systems it is often important to describe the temporal behavior of the system, i.e., we need to model duration and delays. Since the classical Petri net is not capable of handling quantitative time, a timing concept is added. There are many ways to introduce time into the Petri net. Time can be associated with tokens, places, and/or transitions.

5.1.3    Extension with Hierarchy
Although timed colored Petri nets allow for a succinct description of many business processes, precise specifications for real systems have a tendency to become large and complex. This is the reason we provide a hierarchy construct, called sub net. A sub net is an aggregate of a number of places, transitions, and subsystems. Such a construct can be used to structure large processes. At one level we want to give a simple description of the process (without having to consider all the details). At another level we want to specify a more detailed behavior. The extension with hierarchy allows for such an approach.

6.    Visual Object Net++
The main objective of this paper is to evaluate Visual Object Net++, a Petri Nets modeler tool.  It is developed by Dr. Reiner Drath and his team of the Department of Automatic Control from Illemnau University of Technology, Illemnau, Germany.  It is the evaluation version and an academic production.  As the developers demand, it is a visual Petri Nets-based engineering tool.  It supports mixed continuous and discrete event Petri-Nets.  A traffic light system can be thought of a discrete event system because it has only three discrete states, namely, red, yellow and green.  In the continuous event, there are no such conspicuous events, rather, the speed of the event in the PN is given as a function.

7.    Technical Data

Operating system

Windows 95
Windows NT (preferred)
Required Hardware
Win95/WinNT platform
Features
There are animation features to make it easier to observe the dynamic behavior of the nets. We think that the user interface shall allow the easy design, simulation, visualization and documentation of Petri-Nets.
Version
Evaluation Version 2.0
Download
A downloadable evaluation version can be found in http://www.systemtechnik.tu-ilmenau.de/~drath/visual_E.htm .  Remerber to download the version 2.0.


Limitations

It is a remark from the developers that this software is made for research purposes and shall help the interested user to design, simulate, watch and document hybrid or  pure discrete event, Petri-Nets.   The number of the net elements is limited to 500, even though the help file says it to be 200, because it is from an old version.  Another problem is that the evaluation version cannot draw any complex model, even though there is a tab to do that but when clicking on it, it does nothing.
8.    Features
There are certain features of the Object Net++ which are discussed in the following sections.

Fig 3: the Usual Buttons

These four buttons have become hackneyed, so we do not discuss these, except the third button, clicking which will close the current file.


Fig 4: The Editor Window

When Visual Object Net++ is run, this window called the Editor window shows up.  It allows us to draw a new PN. If we open an existing file, the diagram in that file opens up in a different window.


Fig 5: The Properties Window

Fig 5A: The Formula Editor

When a new file or the editor is opened for the first time, this window does not show anything.  But if something is drawn, or if an existing file is opened, then this window shows the properties of the element chosen.  For continuous places, it shows Name, Variable, Type (continuos or discrete), initial tokens, show labels, size, and published or not. To add, for the discrete places, it shows the capacity also. For arcs, it gives the arc weight, show label and type information.  One can put the arc weight as an equation by clicking the 'fx' button on the right most side of the arc weight row.  This then shows the For the transitions, it shows name, delay, type color, show label, size, priority and reservation data, while for the continuous transitions, it shows name speed, color, type, show label and the size data.  Interesting thing is that, one can change most of the values because most of these pulls down.


Fig 6: The Places Window

If we click the Places tab, this window appears.  As seen from the figure, this gives the name of the place (like tank1), the variable assigned to the place (like h1), the start value and the current value of the tokens. One can change the values over here or in the diagram and the other one is updated automatically.


Fig 7: The Transitions Window

This shows the name of transition, its firing time and value (in discrete) and the name, speed and value in case of a continuous transition.  Most probably, the check button and the next error button is there to check if a transition is correct or not. One can change the values over here or in the diagram and the other one is updated automatically.
 


Fig 8: The Arcs Window
The arcs window shows the concerned weight and the actual value of the arc currently chosen.  One can change the values over here or in the diagram and the other one is updated automatically. Visual Object Net++ has its own file manager called the Factory.  Using that, we can:

Fig 9: The Factory Window

Open a File
· Double-click at the file in the factory window.
- or
· Select file and select Load File in the popup menu.
-or
· In the Main menu select File/Open and look for the file.

Merging files
· Select File and select Merge File in the popup menu.

Closing a File
· Select File / Close File in the main menu.
Visual Object Net ++ includes some tutorial files in the  button which explain the philosophy of hybrid Petri nets as well as the handling of design and simulation. Use the toolbar, which easy allows opening the tutorial directory.  The other two buttons  and  are for the home data directory and the Object data directory.
 

Clicking this button toggles between the variables or number of tokens in the places.
  These are for the zooming in and zooming out functions.  The rectangular square with the arrow head denotes the area which the user wants to zoom and the palm shows the icon for manual moving. The Start button enables or disables the simulation of the PN.  If it is clicked, then the following window shows up.  It has three tabs, namely, a) the panel tab, b) the properties tab and 3) the extras tab.

Fig 10: The Panel Tab of the Simulation window

The panel tab has a scale to control the speed.  It can run the whole module at a time, can stop at any given time, can run to a certain event.  If the user wants to maximize the speed manually or if he wants to evaluate, then a nice window with certain features pops up.  The window is shown below.


Fig 11: The Options Pop-up Window

The Properties tab denotes if the user wants to see the animation, time or wants the program to stop after certain time in seconds.


Fig 12: The Properties Tab of the Simulation window

The Extras tab asks the user if he wants to enable the discrete transitions, continuous transitions or if there is a conflict between groups.


Fig 13: The Extras Tab of the Simulation Window

When clicked, this button lets the user to choose any of the entities, and afterwards, change their values. When clicked, this button lets the user to draw an arc between any two places and transitions or vice versa. The user can draw a discrete place if he clicks this button. The user can draw a continuous place if he clicks this button. The user can draw a discrete transition if he clicks this button. The user can draw a continuous transition if he clicks this button. The user can draw a whole token when he clicks this button. The user can draw a label if he clicks this button. The user can draw a graphical object by clicking this button.
Once drawing a PN, the user has always the choice to see a list of all the resources by clicking the View option in the menu bar and then clicking the Resources Window.
9.    Drawing a Petri Net

Let us now discuss how to draw a full scale Petri Net.  First, we have to open a new editor window by pressing the proper button.  Then, while in the editor window, we press the  button to draw a discrete place (assuming that we are drawing a Petri Net of the discrete nature).  We have to remember that drawing order is very important in drawing a simple PN with VON, because in this order the PN will simulate once we are done.  Then, to draw the transitions, we have to press the button  , which enables us to draw a transition (of course the discrete transitions).  We have to assign certain tokens also and we can do that by pressing the  button. To draw the arcs, we have to press the  button and then click on the first element and drag the mouse to the second element. When completed, we can press the Start button and the Petri Net will eventually simulate or run.  In the mean time, if we want to change any of the values that were assigned, we can change them in the properties window.  Again to elements, the user has to select the element(s) he wishes to delete. Then pressing the right mouse button on the work place and select Delete will delete the element. Or he can press the Delete button at his keyboard also.

10.    The Current Status of Visual Object Net ++
Visual Object Net ++ stops updating after its 2.6 version as the project related is finished. Fortranately, it is further developed for biological system modeling and simulation by Matsuno with "Genomic Object Net" as name. The current version 0.919 is available for public since last year [http://www.genomicobject.net/]. Aside from assigning appropriate icons to biological components and its respective Petri net elements, its soon to be released version will also support XML import.

11.    Some Comments of the Researcher
Given the version we have to analyze, it too seems to be a good tool to model the Petri Nets.  Visual Object Net ++, as is said in the Help file, was designed for verifying the working of hybrid Petri-Nets. The main demands (again from the Help file) of this software were to show, that it is possible and also suitable to model processes and systems with a descriptive modeling language.  As we said earlier, the count of the net elements is limited by 500. But we believe this is enough for test and demonstration purposes.

Nevertheless, Petri Nets is a powerful modeling language for describing and studying systems that are characterized as being concurrent, asynchronous, distributed, parallel, non deterministic, and/or stochastic. With the advent of time, Petri Nets will be more and more widely used so far the concurrent systems are concerned.  

12.    Conclusion
Visual Object Net ++ is GOOD for biological system modeling and simulation!


Modified by Ming Chen