OpenWFE is an open source java workflow engine. It is a complete Business Process Management suite, with 4 components : an engine, a worklist, a webclient and a reactor (host for automatic agents). It can also be used behind the scene. OpenWFE 1.4.1 is a bug fix release. One important concept was introduced for stores : the order in which they are instantiated in the worklist configuration file is now the order in which they are asked if they accept a workitem for a given participant name.... read more
OpenWFE 1.4.0 fixes a few bugs and includes patches for the SqlWorkItemStore. A nasty bug was found that could crash the worklist's JVM if too many workitems were stored in each a thread. Given a certain max limit, the current implementation will switch to unthreaded storage operation.
The ExpressionPool (file version) storage tree was made a bit deeper to have less files in the directories.
The ControlSession interface reached a more mature stage as pyya REST tests were introduced for it.
Jay Lawrence, member of the OpenWFE team has set up a wiki for this open source workflow engine.
OpenWFE 1.4.0pre is tagged as 'pre' since it introduces a lot of changes in the release tree structure. The tree is less flat, there are less launch scripts.
The 'engine' package got fully qualified to 'openwfe.org.engine' instead of simply 'openwfe.org' which was confusing and it induced another set of changes to the conffiguration files.
Control over REST got implemented : your python (and soon dotnet) interface will be able to cancel or freeze/unfreeze flow pieces.
OpenWFE 1.3.2 sees the complete reorganization of ExpressionPool and ExpressionStore, the latter now only caring about storage while the first now handles caching, control, and in the future, clustering.
The Swis (Sql WorkItem Store) got changed to allow a more efficient extension.
Control actions 'cancel flow' and 'cancel expression' now produce history log records.
OpenWFE 1.3.2 - released on 2004/07/26... read more
OpenWFE 1.3.1 tightened the implementation of the engine control tools. Cancelling a flow or just a participant can be done through ./control.sh (or control.bat) and participants may be frozen if the flow hasn't reached them.
The webclient and especially its flow diagram display shows the addition of the dispatch and reply time, making it easier to spot what and when happened to a flow.
The standard (java) reactor now supports reloading its java agents without having to get restarted.... read more
OpenWFE 1.3.0 includes control.sh (and control.bat) tools for [un]freezing expressions and cancelling flows. These tools are command-line only for the moment.
The introduction of this control system implies that now the engine also has its passwd.xml file, access to the control system is restricted to users having a valid ControlPermission.
The choice of encoding between components is now made by the dispatcher, the listener adapts to it. This has induced a small change in the socket dispatching protocol, that's why it became 1.3.0 instead of 1.2.3.... read more
OpenWFE 1.2.2 introduces and 'include' mechanism in its participant-map, aliasing participants is also possible.
A new passwd storage system was finalized, allowing to store worklist user credentials in a rdbms.
The previous release's droflo was broken, it got fixed for 1.2.2
Next refinements should include 'failover participants' and a control interface for engines, in order to unblock 'frozen flows'.... read more
OpenWFE 1.2.1 introduces 'freezable' expressions : flows that failed to dispatch a workitem to one of their participant will get frozen at this dispatch point. Future releases will include a 'control session' for freezing/unfreezing expressions/flows.
A method findFlowInstance() was added to the 'work session' for retrieveing workitems of a certain workflow instance.
The 'swis' store got turned into a full-featured workitem store. The 'swis' is sponsored by Infonium Inc. Canada.... read more
OpenWFE 1.2.0 includes a major refactoring effort about workitem encoding and user credential encoding (their persistence/transfer layer).
The 'participant' expression absorbed the 'dyna-participant' and all of its features.
A new workitem store got implemented, it is named 'swis' (SqlWorkItemStore) : it stores workitems in any SQL rdbms where they can get manipulated by other applications. As soon as 'swis' sees the id of a workitem in the action table with the 'proceed' tag, the workitem is reinserted in its OpenWFE flow.... read more
OpenWFE 1.1.2 fixes a few 'swapping' bugs. These bugs occured when expressions got back from swap (either file or db) but were incomplete, which broke their process instance. The 'set' expression has a new attribute : 'type', you can now determine from the process definition which type a workitem field you set should have.
OpenWFE 1.1.2 - released 2004/05/31
- [engine] bug #963238 : When expression control flow inconsistency. Fixed.
- [engine] bug #963107 : SubProcessRefExpression lost its link to its
containing process definition when swapped to disk (or db). Fixed.
- [engine] task #99585 : added 'type' attribute to 'set' expression.
- [webclient] bug #961394 : launching a jsp defined launchitem did not work.
- [webclient] also displaying flows and launchitems available as JSP pages
- [engine] bug #961170 : Concurrence did not got swapped with
its SyncExpression. Fixed.
OpenWFE 1.1.1 sees the implementation of 3 new expressions : 'when', 'save' and 'restore'. 'when' is an asynchronous 'if', triggering its flow of action when its condition realizes. 'save' and 'restore' allows to freeze a copy of a workitem in a variable and restore it afterwards with or without merge.
These 3 new expressions allow many of the workflow standard patterns to be implemented with OpenWFE.... read more
OpenWFE 1.1.0 introduces a change in the way it codes date, they are now displayed and transferred as strings like "2004-05-17 11:32:10+0200". Before 1.1.0 they were stored as long (number of milliseconds elapsed since the Epoch, standard unix and java way).
This modification opened the way for the new openwfe-dotnet package also released. It is currently only a library available in its source form (Visual Studio solution). It's the equivalent of pyya, but written in C#.
The OpenWFE set of start scripts now include an encoding environment variable that allow to decide which encoding to use when OpenWFE shuttles workitems around as XML.... read more
OpenWFE 1.0.4 fixes a certain number of bugs that could jeopardize the proper run of long lasting workflow instances. It also increases Droflo usability. Storage of workitems and expressions in RDBMS suffered from a bug in the unique id generation that appeared only lately and had to be fixed.
The next release will be 1.1.0 and an openwfe-dotnet-1.1.0 dll will be released along to it, allowing .NET programs to take advantage of OpenWFE.... read more
OpenWFE 1.0.3 fixes an important worklist bug : handled workitems whose lock timed out could still be forwarded, but they remained in the worklist. This bug was especially visible in the online engine demo.
A rather technical PPT presentation has also been added to the doc as well as to the OpenWFE website.
OpenWFE 1.0.3 - released 2004/04/30
- [worklist] task #98134 : increased lock timeout for workitem stores.
- [worklist] bug #943028 : unlocked workitems were forwarded... Fixed.
- [engine] bug #934205 : initial loading of SyncExpression failed. Fixed.
- [-all-] task #97908 : Including Presentations into the distributed
- [droflo] task #97174 : added remove button for subprocess definitions
- [droflo] bug #923720 : trailing 'null' after ok button. Fixed.
- [webclient] bug #939510 : droflo, in view mode, show [+] buttons for
if expressions. Fixed.
- [worklist] task #97487 : implemented InMemoryWorkItemStore
- [engine] task #97482 : implemented InMemoryExpressionStore (used
- [-all-] renamed the second 'tag-agent' in the participant map to
This is a minor feature release.
OpenWFE now includes directly pyya-reactor, the python-written reactor for OpenWFE. It can host agents written in python, for a maximum of flexibility and power (Agents are automatic participants to business processes).
SqlHistory has been added, so that history logs can go to MySQL or PostgreSQL. SQL recorded history is easy to 'mine' for Business Activity Monitoring.... read more
OpenWFE 1.0.1 got released
This is a minor bugfix release, droflo didn't show the position of a workitem in the process.
But this release also includes a revised and heavily tested 'subprocess' expression, launching internal or external subprocesses.
OpenWFE 1.0.1 - released 2004/04/06
- [engine] task #96709 : implemented 'inc' expression (IncrementExpression)
- [engine] bug #928820 : made external launches for local engine to
internal launches. Fixes deadlock bug.
- [engine] lots of work on 'subprocess' expression, it can now launch
external subProcesses (task #96582)
- [droflo] bug #926243 : workitem position wasn't highlighted anymore
(it was for 0.6.3)
OpenWFE - 1.0.0 got released
This is the first of the 'stable' releases.
A lot of small bugs have been fixed and especially timeout issues.
Runtime-chosen subprocesses can be launched from a flow. Recursivity of flows has been carefully tested.
OpenWFE 1.0.0 - released 2004/03/29
- [droflo] task #96338 : adding a subProcess definition
- [droflo] task #96337 : changing the name of a subProcess definition
- [engine] task #96335 : enabled 'field-ref' and 'variable-ref' in
SubProcessRefExpression. It means that now, which subprocess
is launched can be determined at runtime.
- [-all-] task #96179 : flat-start.sh renamed to openwfe-daemon.sh
This new start script can be run from anywhere and it assumes the
OPENWFE_HOME is at its location. If OPENWFE_HOME is already set,
it will use it. flat-stop.sh has been included
into openwfe-daemon.sh (./openwfe-daemon.sh stop)
- [droflo] task #93688 : made flow name and revision editable
- [worklist] task #94940 : ensured that etc-worklist/passwd.xml gets reloaded
each time. This is configurable in
- [engine] bug #836362 : fixed. Participant got reloaded each time
(the engine is a bit faster)
- [engine] task #96053 : engine is more expressive (ApplyException) when
[dyna-]participant is not found.
- [-all-] task #95951 : removed any -Xmx -Xms from start scripts
- [engine] Added BooleanExpression to tag expressions used in conditionals
- [-all-] fixed the flat-start.sh script, it was broken in certain ways
- [engine] task #95306 : when a participant timesout, a variable named
'__timed_out__' is set to true. This flag is removed by the
next participant that doesn't timeout.
This flag is demoed in flow__1.12.xml
- [engine] bug #919440 : sync didn't work, especially with timeouts. Fixed.
- [engine] task #95773 : when a participant timesout, it cancels itself
(triggering a cancel message to the worklist usually)
This release fixes an important bug that broke the reactor component, no agents
could function in 0.6.2. It also fixes a bug in the webclient making any 'save'
This release introduces a lot of new output in the status of the 'engine' and
the 'worklist' component. You can have a look at this output by pointing your
browser at http://localhost:7077 or 7078 on the box where your 0.6.3 OpenWFE
suite runs. It will display info on the flows running, how many workitems are
awaiting in a store and for which flow.... read more
OpenWFE 0.6.2 just got released.
Windows start script 'start-openwfe.bat' got included, file permissions
got removed from etc-worklist/passwd.xml so that this file is much
simpler. The main new feature is the Query Store : a store for all
workitems in a worklist that gets accessed through a query. These
queries are configured in the file etc-worklist/query-map.xml, this
allows for a very versatile organizational model into which the flows
Detail about these new 'query stores' can be found at
http://www.openwfe.org/new_organizational_model.txt... read more
OpenWFE 0.6.1 got released.
This version includes some tuning in the workitem dispatchment code.
Tests on my dev machine indicate that it is now 10 times faster.
I would be happy to have some feedback from people on Windows boxes, as
it is a really low level issue.
The webclient has undergone many enhancements, it now integrates droflo
in view and edit mode and you are now able to upload files to a
workitem.... read more
Features a more dynamic launch permission system.
OpenWFE 0.5.2 got released.
You can now view at which point of a flow you are located with a workitem.
It includes Droflo which is a web based workflow editor.
A serious bug got fixed : instances of the same flow were sharing the same child expressions in sequence construct... This lead to lost workitems.
This version cleaned some bugs in the filters implementation. 'Droflo' is now able to show graphically the position of a workitem in a flow.