Python Notes

Tuesday, November 23, 2004

References on workflow modelling

There are a number of resources about workflow on the Internet. Finding the good ones is not that easy, though. First of all, the search term is too generic (Google found nearly 8 million results for it alone). There are a number of commercial offerings with little or no info on their web pages, besides mentioning "workflow" as one of the features. The academic sources are, for the most part, references to signature only journals. There are also a number of organizations and coalitions that deal with workflow. The problem, in this case, is to get a good first grasp of the terminology being used, which allows to finally find good references applicable to an open-source project.

After some research, the first practical results pointed in the direction of the Petri Nets. Petri Nets are a mathemathical model, that is used to model processes. A good number of the current tools uses Petri Nets as the underlying model. There's a good article on a Petri Net implementation for PHP that in turn led me to search for more information on the subject. Another interesting project is Bossa, a low-level Java workflow library.

The best theorethical references that I could find are the ones from Wil van der Aalst, a researcher from the Netherlands. His website has a number of good links, including some excelent lectures on the subject. Although the lectures assume that the reader is following the book from the same author, they do provide an interesting approach to learn about Petri Nets and their applicability to workflow process modelling.

The study of Petri Nets raises several interesting issues, some of which I hoped I could leave for a future version of the workflow engine. The original draft of the system was based on my own experience with workflow systems, and largely on my own intuition on how such a system should be designed. Reading the material I could see that, while I got it right on some instances, there also some issues that I really wasn't aware of. The model is now being revised to take into account such issues. It's nice to be able to apply solid theorethical basis to practical work: it gives an assurance about being on the right track.


Post a Comment

<< Home