The Joomla! Community Magazine™

Petri Net API

Written by | Saturday, 01 September 2012 00:00 | Published in 2012 September
The original goal of my project was to integrate a Workflow engine in Joomla, which I did. Then, we figured out it will be better and more interesting to rewrite the foundations of a new one (to master the techniques and extend it the way we want).

After a lot of research, I concluded that Petri Nets are well suited for the core of a Workflow engine, because of their mathematical definition and the abundance of analysis algorithms.

For those reasons, most Workflow engines use it.

So, I began to work on a Petri Net implementation starting in July and had a working prototype by the mid term evaluations, allowing to define and execute a basic Petri Net.

As I continued my work, I found that in order to suit the needs of a Workflow engine, the basic Petri Net definition must be extended with the color (a new dimension allowing tokens to transport different kind of data).

Starting from the midterm, I worked on extending the API by adding the color while refactoring and improving what I already had.

At this moment, it is possible to define, visualize (using the GraphViz software) and execute a basic Petri Net.

It is possible to define a colored Petri Net (it might change a bit), but the execution isn’t implemented yet because of the lack of time.

The skeleton is here and I have collected documents about algorithms that can be used to do it.

The Github stats are showing that I have removed 13k lines so the API has already evolved from the first version.

I am quite happy with what I have accomplished, because two months ago I didn’t know what a Petri Net exactly is.

The API and its documentation can be found here.

 

Read 60076 times
Tagged under Google Summer of Code
Florian Voutzinos

Florian Voutzinos

24 years old web developer, PHP 5.3 Zend Certified Engineer and Joomla framework contributor.

Latest from Florian Voutzinos