Petri Net API
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.
Some articles published on the Joomla Community Magazine represent the personal opinion or experience of the Author on the specific topic and might not be aligned to the official position of the Joomla Project
By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/
Comments