eZ Components 2008.1 and ezcWorkflow 1.2

Sebastian Bergmann » 17 June 2008 » in Announcements » 1 Comment

eZ Components

The eZ Components development team is happy to announce the eZ Components 2008.1 release. Starting from this version, eZ Components requires PHP 5.2.1.

In this release, there are three new components:

  • The Document component enables you to convert documents between different formats.
  • The Feed component parses and generates RSS1, RSS2 and ATOM feeds.
  • The new Search component provides a unified interface to different search engine back-ends, quite similar to what the Database and PersistentObject components provide for database access.

The eZ Components 2008.1 release also comes with a new version of my workflow engine, Workflow 1.2. Here are the highlights of this update:

A new tie-in component, WorkflowSignalSlotTiein, has been added to allow integration between the Workflow and SignalSlot components.

Defined tags for this entry: , , ,

Workflow Engine Plugin System

Sebastian Bergmann » 19 February 2008 » in New Features » 3 Comments

eZ Components

Version 1.2 of the Workflow component that is part of the eZ Components introduces a plugin system that allows developers to hook into the workflow engine at well-defined extension points.

For now, plugin code can be called

  • after an execution has been started
  • after an execution has been suspended
  • after an execution has been resumed
  • after an execution has been cancelled
  • after an execution has successfully ended
  • before a node is activated
  • after a node has been activated
  • after a node has been executed
  • after a service object has been rolled back
  • after a new thread has been started
  • after a thread has ended
  • before a variable is set
  • after a variable has been set
  • before a variable is unset
  • after a variable has been unset

ezcWorkflowExecutionListenerPlugin and ezcWorkflowExecutionVisualizerPlugin are two workflow execution engine plugins that will ship with Workflow 1.2. The former is a refactored version of the execution logging code of Workflow versions 1.0-1.1.

The latter is new and can be used to visually log the execution of a workflow as shown below.

Execution of a workflow

The ezcWorkflowExecutionVisualizerPlugin generates a series of DOT files that can be rendered into single pictures using GraphViz. For the animation above, I crudely joined the single images to an animated GIF.

The before hooks are special as they allow the plugin to change (or even prevent) the current execution step. This will eventually allow for Aspect-Oriented Programming on the workflow level.

Defined tags for this entry: , , ,

Support for the Cancel Case Workflow Pattern

Sebastian Bergmann » 23 January 2008 » in New Features » 3 Comments

eZ Components

Version 1.2 of the Workflow component that is part of the eZ Components adds support for the Cancel Case workflow pattern:

Cancel Case

As soon as a node of the ezcWorkflowNodeCancel type is activated, the complete workflow instance is removed. This includes currently executing nodes, those which may execute at some future time and all parent and sub-workflows. The workflow instance is recorded as having completed unsuccessfully.

My diploma thesis paper has been updated accordingly to reflect the addition of the ezcWorkflowNodeCancel class.

Defined tags for this entry: , ,

Workflow Engine 1.1

Sebastian Bergmann » 21 December 2007 » in Announcements, New Features » 0 Comments

eZ Components

A couple of days ago, Derick rolled and announced the 2007.2 release of the eZ Components, the enterprise ready general purpose PHP components library used independently or together for PHP application development.

Part of this release is Version 1.1 of my workflow engine that consists of the Workflow, WorkflowDatabaseTiein, and WorkflowEventLogTiein components.

The new version makes expressing loops easier (thanks to the new ezcWorkflowNodeLoop class), adds an else-like construct for exclusive choice nodes, and introduces the mapping of workflow variables for sub-workflows. The marshalling of the node configuration is now handled in the individual node classes. This makes it possible to have custom node classes handled by the XML definition storage.

The new version also features improved compatibility with the (outdated) PHP 5.1 release series.
Defined tags for this entry: , ,

Workflow Engine for PHP 5

Sebastian Bergmann » 14 September 2007 » in Presentations » 3 Comments

Here is the presentation material I used during my presentation on the eZ Components workflow engine at php|works 2007 today:

Defined tags for this entry: , , , ,