Documentation

Introduction

The Enhydra Shark project delivers a workflow server with a difference.

Enhydra Shark is an extendable workflow engine framework including a standard implementation completely based on WfMC specifications using XPDL (without any proprietary extensions !) as its native workflow process definition format and the WfMC "ToolAgents" API for serverside execution of system activities.

The Enhydra JaWE graphical XPDL editor can be used to produce XPDL process definitions for Enhydra Shark !

Sample ToolAgents will be available for JavaScript, JDBC access, EJB access, pure Java classes, Corba calls, EMail, Webservice calls,...

Storage of processes and activity instances is done via a configurable persistence API. The standard persistence layer implementation uses the lightweight Enhydra DODS O/R mapping. A more heavyweight J2EE EJB persistence layer alternative will follow...

Every single component (persistence layer, transaction manager, scripting engines, process repository,...) can be used with its standard implementation or extended/replaced by project specific modules.

This way Enhydra Shark can be used as a simple "Java library" in servlet or swing applications or running in a J2EE container (supporting a session beans API and maybe using EJBs for persistence), Corba ORB or accessed as a web service.

The workflow engine kernel supports configurable LRU caching of active workflow objects for high load scenarios. Caching can be turned off for clustered installations.

WfMC WDF API specifications will be used to attach the JAWe editor or selfwritten programs to runtime instance information and even to modify instances while they are running. Using this approach Enhydra Shark supports dynamic workflows which can be modifying themselves to support more complex workflow scenarios or organizational exception handling.

Currently a Swing based administration GUI can be used to do administrative work. JMX extensions and an HTML based admin client will follow !

Additional APIs will be available for repository access, logging, repository persistence, event notification and scripting engine adapters for transition evaluations.

The ObjectWeb Workflow Working Group

In December 2003 the first meeting of the new ObjectWeb Workflow Working Group was held.

The goal was to define possible synergies between the current ObjectWeb Workflow projects namely "Enhydra Shark", "COW" and "Bonita".

An agreement was reached to work on a list of components with their APIs based on the respective standards (WfMC, OMG, BPEL). These components will form the building blocks of future releases of individual workflow engine projects.

All components will be independant of specific execution environments (Swing, Servlets, J2EE/EJB,Corba,...)

A common component model ("glue") will be selected. The current and very likely suggestion is "Fractal".

A new mailing list was set up to discuss general workflow working group topics and to support project cooperation. The new mailing list can be found at http://www.objectweb.org/wws/info/wow.

Another agreement could be reached to use Enhydra JaWE as the common editor for XPDL based process definitions.

Investigations of the WfMC WDF (Workflow Definition Functions) will show if this API is suitable for dynamic modifications of process and activity instances. If WDF will become the API of choice, JaWE will support this API to enable graphical viewing and modification of instances at runtime.

The following preliminary list of components was defined:

Enhydra Shark architecture

Based on the agreed components based approach the current architectural goal of Enhydra Shark looks like the following:

Enhydra Shark architecture