eZ Components Workflow Engine

Sebastian Bergmann » 05 December 2006 » in ezcWorkflow » 7 Comments

Business Process Management (BPM) and Workflow Management (WfM) are becoming more and more important when it comes to organizing, well, business processes. To help with the development and maintainance of software that supports these processes a new layer on top of the underlying programming language is needed.

The Workflow components that I developed as part of my Diploma thesis ("Design and Implementation of an Activity-Based Workflow Engine") and that will be part of the eZ Components, an enterprise ready general purpose PHP components library by eZ Systems, provide this layer in the form of an abstract virtual machine for Graph-Oriented Programming (GOP) with PHP. It includes the building blocks (Workflow Patterns) for graph-based execution languages such as workflow definition languages as well as the functionality neccessary to administer, run, and monitor workflows.

When I moved to Norway to work on my Diploma thesis ("Design and Implementation of an Activity-Based Workflow Engine"), the initial plan was to implement a complete workflow management system.

After reading "Supporting Evolution in Workflow Definition Languages" and "A Workflow Architecture Supporting Compositional Object-Oriented Software Development" as part of my literature review, it became clear to me that writing reusable core components that can be used to build a workflow management system, for instance as part of an Enterprise Content Management System (ECMS) such as eZ Publish, makes more sense.

Traditionally, Petri Nets are the underlying model that is used to implement workflow management systems. The concept of Graph-Oriented Programming, however, appealed to me more. Together with the Workflow Patterns that were introduced in "Expressiveness and Suitability of Languages for Control Flow Modelling in Workflows" the approach of Graph-Oriented Programming also forms the backend language of the workflow engine to which arbitrary workflow definition languages can be mapped.

Some of the literature I read is bookmarked on del.icio.us.

You can find the sourcecode for the three components that I developed as part of my thesis here: Workflow, WorkflowDatabaseTiein, and WorkflowEventLogTiein.

The thesis paper itself will be posted once I am done writing it.

Trackback specific URI for this entry

7 Comments to "eZ Components Workflow Engine"

Display comments as (Linear | Threaded)
  1. Lars Strojny
    05/12/2006 at 21:39 Permalink
    I've gallopped over the sourcecode and my first impression is, yeah, that's how it should be. I think the decision to create it as a component set is the best thing you could have done. Thank you very much for this work!

    Reply

  2. Mircea
    06/03/2007 at 22:15 Permalink
    This looks interesting. Any idea when it'll be released?

    Reply

  3. Sebastian Bergmann
    06/03/2007 at 22:19 Permalink
    Expect a final release around May/June in time for the eZ Summer Conference.

    Reply

  4. Constantin
    01/05/2007 at 15:22 Permalink
    I am very interested in your work, but unfortunately, the links to found the soucecode don't work. Can you help me?
    Thank's

    Reply

  5. prashant
    23/05/2007 at 02:27 Permalink
    you can access the code here
    http://svn.ez.no/svn/ezcomponents/trunk/

    Reply

  6. Jesse
    25/09/2007 at 17:47 Permalink
    Maybe I am not making the connection... and maybe there really is no direct correlation. But how does one integrate your BPM classes with an MVC framework like ez components. Has anyone used these components in an MVC based project? That last hop is what I am banging my head over.

    Reply

  7. Anonymous
    28/11/2007 at 11:13 Permalink
    There is no framework or MVC components for the moment in eZ Components.

    Reply

2 Trackbacks to "eZ Components Workflow Engine"

  1. Sebastian Bergmann 17/12/2006 at 08:39
      Zeev got me "Anno 1701" and "Neverwinter Nights 2" from my Amazon.de Wishlist. Now I have something to do when I am done with my thesis. Thank you, Zeev!
  2. Sebastian Bergmann 07/05/2007 at 07:47
    Last night I returned from two interesting and fun days in Hamburg, Germany where I attended the PHP Unconference. Below are the slides from my first "untalk" ("Testen von PHP/Web-Anwendungen mit PHPUnit 3 und Selenium"). I also gave an "untalk" on

Add Comment


To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Submitted comments will be subject to moderation before being displayed.