Skip to content.

Manageability

Sections
Personal tools
You are here: Home » blog » stuff » Open Source Workflow Engines Written in Java

Open Source Workflow Engines Written in Java

A review of active open source workflow projects that are written in Java.

Here's a review of Open Source Workflow Engines that are written in Java:

  • Enhydra Shark Shark is completely based on standards from WfMC and OMG using XPDL as its native workflow definition format. Storage of processes and activities is done using Enhydra DODS.
  • Codehaus Werkflow Werkflow is a flexible, extensible process- and state-based workflow engine. It aims to satisfy a myriad of possible workflow scenarios, from enterprise-scale business processes to small-scale user-interaction processes. Using a pluggable and layered architecture, workflows with varying semantics can easily be accomodated.
  • OpenSymphony OSWorkflow What makes OSWorkflow different is that it is extremely flexible.
  • jBpm JBoss jBPM is a platform for multiple process languages supporting workflow, BPM, and process orchestration. jBPM supports two process languages: jPDL and BPEL. jPDL combines human task management with workflow process constructs that can be built in Java applications. Includes also a Visual Designer for jPDL and Eclipse-based tooling for BPEL.
  • wfmOpen WfMOpen is a J2EE based implementation of a workflow facility (workflow engine) as proposed by the Workflow Management Coalition (WfMC) and the Object Management Group (OMG). Workflows are specified using WfMC's XML Process Definition Language (XPDL) with some extensions.
  • OFBiz Workflow Engine The Open for Business Workflow Engine is based on the WfMC and OMG spec. OFBiz Workflow Engine uses XPDL as its process definition language.
  • ObjectWeb Bonita Bonita is a flexible cooperative workflow system, compliant to WfMC specifications. A comprehensive set of integrated graphical tools for performing different kind of actions such as process conception, definition, instanciation, control of processes, and interaction with the users and external applications. 100% browser-based environment with Web Services integration that uses SOAP and XML Data binding technologies in order to encapsulate existing workflow business methods and publish them as a J2EE-based web services. A Third Generation Worflow engine based in the activity anticipation model.
  • Bigbross Bossa The engine is very fast and lightweight, uses a very expressive Petri net notation to define workflows, does not requires a RDBMS and is very simple to use and to integrate with java applications. Actually, it was designed to be embedded.
  • Taverna The Taverna project aims to provide a language and software tools to facilitate easy use of workflow and distributed compute technology within the eScience community. Taverna is both a workflow enactor and also an editing suite.
  • JFolder JFolder (formerly PowerFolder) contains features critical to many applications - including web pages, workflow, security, persistence, email, file management, and data access.
  • Open Business Engine Open Business Engine is an open source Java workflow engine which supports the Workflow Management Coalition's (WfMC) workflow specifications, including interface 1, also known as XPDL, interface 2/3 known as WAPI and interface 5 for auditing. OBE provides an environment for executing activities in a controlled, centralized environment. OBE supports both synchronous and asynchronous execution of workflows. The primary OBE implementation is based on J2EE.
  • OpenWFE OpenWFE is an open source java workflow engine. It features 3 components, easily scalable : an engine, a worklist and a web interface. Its workflow definition language is inspired of Scheme, a Lisp dialect, though it is expressed in XML.
  • Freefluo - Freefluo is a workflow orchestration tool for web services. It can handle WSDL based web service invocation. It supports two XML workflow languages, one based on IBM's WSFL and another named XScufl. Freefluo is very flexible, at its core is a reusable orchestration framework that is not tied to any workflow language or execution architecture. Freefluo includes extension libraries that enable execution of workflows written in a subset of WSFL.
  • ZBuilder - ZBuilder3 is a second generation of workflow development and management system which intends to be an open source product. It defines a set of standard JMX management interfaces for different workflow engines and their workflows. Abandoned
  • Micro-Workflow - The micro-workflow framework targets developers who want to separate the control and logic aspects in their programs, thus making them flow independent. A well-factored flow independent application facilitates change because the most frequent business changes translate into process changes, thus leaving the code intact. Flow independence also fosters reuse, because domain objects make fewer assumptions about the control context in which they operate
  • con:cern - con:cern is a workflow engine based on an extended case handling approach. A process is described as a set of activities with pre- and postconditions. An activity is executed when its preconditions are met. It manipulates the process item, thereby creating postconditions. The process flow is determined at run-time. This approach is superior to the conventional process flow approach.
  • Twister - Twister's aim is to provide a new generation, easily integrable, B2B oriented workflow solution in Java, based on the latest specification efforts in this field. The process engine is based on the BPEL business process specifications and Web Services standards. Abandoned
  • YAWL - YAWL (Yet Another Workflow Language), an open source workflow language/management system, is based on a rigorous analysis of existing workflow management systems and workflow languages. Unlike traditional systems it provides direct support for most of the workflow patterns (http://www.workflowpatterns.com). YAWL supports the control-flow perspective, the data perspective, and is able to interact with web services declared in WSDL. It is based on a distributed, web-friendly infrastructure.
  • Zebra - Zebra is a workflow engine - originally developed to fill in the gaps in some commercial and open source workflow engines. The key differences between it and other workflow systems are able to model all the workflows described in workflow patterns, a GUI designer and Hibernate persistence layer.
  • ActiveBPEL - ActiveBPEL engine is a robust runtime environment that is capable of executing process definitions created to the Business Process Execution Language for Web Services (BPEL4WS, or just BPEL) 1.1 specifications.
  • XFlow2 - Inspired by simple workflow definition language in XFlow developed to improve its implementation. Externalized SQL in iBatis mapping files. Works as embedded workflow engine.
  • Apache Agila - Agila is centered around Business Process Management, Workflow and Web Service Orchestration. It's composed of two specialized modules: Agila BPM and Agila BPEL. Agila BPM is basically handling tasks and users who have to complete these tasks. It's a very flexible and lightweight workflow component. Agila BPEL is a BPEL-compliant Web Services Orchestration solution
  • Antflow - AntFlow is a tool for the automation and scheduiling of data system tasks, including those with complex dependencies and workflow logic. Antflow represents a new approach to simplifying system automation that leverages pipelines of hot folders chained together to perform a given task. Using XML, Antflow associates an automated task, such as data transfer, compression, or encryption, with a directory on the local system. Whenever a file is copied or written into the hot folder, the associated task is executed and the file is moved to the next hot folder in the pipeline for further processing.
  • MidOffice BPEL Engine - MidOffice BPEL Editor (MOBE) is an open-source platform for process orchestration which executes, monitors, adjusts and terminates pre-defined processes). The platform is implemented using J2EE technologies and standards like BPEL, XML and SOAP. Abandoned
  • PXE - PXE is a modular business process execution engine with support for business processes described in the OASIS Web Services Business Process Execution Language (WS-BPEL 2.0) or in the legacy vendor specification BPEL4WS 1.1. PXE consists of three key components: The process compiler converts a business process in XML form into an expression for the process virtual machine, The process virtual machine "runs" compiled processes and The framework is an abstraction layer that wraps and manages the necessary system-level services (persistence, communication) for the engine.
  • Beexee - Bexee is a BPEL engine capable of executing deployed business processes described in BPEL by orchestrating existing Web Services.
  • Syrup - Syrup can be used to describe the tasks, procedural steps, required input and output information and tools needed for each step in a business process. Syrup provides five basic concepts: Tasks, Links, Workflows, Workers and the WorkSpace. Syrup can overcome the von Neumann bottleneck that stops traditional software systems from scaling. It does this by strictly separating the specification, identification and execution phase of Workflows in a distributed setup. Syrup doesn't follow the more complex standards such as Wf-XML, BPML and XPDL.
  • Dalma - The heart of the engine is an ability to capture the execution state of a thread and resume it later. Many applications of today need to have a part of the program that waits for other entities. . Often there are multiple conversations running concurrently. Those are what we call "workflow" applications. Today, those applications can be written, but one can't write it very productively. Dalma makes it very easy to write those workflow applications by letting you write it as an ordinary procedural program without any boilerplate.
  • Pi Calculus for SOA - The first stage of this project is to provide an implementation of the W3C Web Services Choreography Description Language (WS-CDL). It provides the necessary tools to describe and police blueprints for complex distributed IT architectures as well as for describing cross domain business protocols (e.g. FIX, fpML, SWIFT, etc).
  • Intalio|BPMN An Open Source project to be released in the second quarter of 2006. It will provide a complete BPMN designer as an Eclipse plug-in with standard BPEL 2.0 code generation capabilities.
  • GridAnt - GridAnt is not claimed as a substitution for more sophisticated and powerful workflow engines such as BPEL4WS, XLANG and WSFL. Nevertheless, applications with simple process flows tightly integrated to work with GT3 can vastly benefit from GridAnt without having to endure any complex workflow architectures. The philosophy adopted by the GridAnt project is to use the workflow engine available with Apache Ant and develop a Grid workflow vocabulary on top of it. In other words, we provide a set of Grid tasks to be used within the Ant framework.
  • Kepler Project - The Kepler project's overall goal is to produce an open-source scientific workflow system that allows scientists to design scientific workflows and execute them efficiently using emerging Grid-based approaches to distributed computation. Kepler is based on the Ptolemy II system for heterogeneous, concurrent modeling and design.
  • JOpera - JOpera for Eclipse is a rapid service composition tool offering a visual language and autonomic execution platform for building distributed applications out of reusable services, which include but are not strictly limited to Web services. Due to its generality, JOpera for Eclipse has a wide range of applications: from classical Workflow Management and Business Process Automation, Enterprise application integration, to Virtual laboratories (e.g., scientific workflows, bioinformatics), Cluster and Grid computing and even Data Stream processing.
  • Ode - Orchestration Director Engine - The initial source for Ode originates from the Sybase Business Process Enginge (BPE) and the PXE BPEL 2.0 engine from Intalio. ODE implements the WS-BPEL specification. The implementation will also support Message/Event to process correlation. ODE can be plugged into various service bus or component architectures like ServiceMix.
  • Imixs - The project comprises a framework to create workflow systems as well as a reference implementation based on the J2EE standard. The project includes the development of a graphic editor for creation and management of workflow models based on the Eclipse framework.
  • BeanFlow - A tiny library with just a few classes and only depends on commons-logging and Java 5. Uses plain Java code to do boolean logic, handle state, do looping, call functions, create objects, aggregation and composition. Based on just one single concept, joins.
  • jawFlow - JawFlow is a Workflow Engine partially conformal to WfMC (www.wfmc.org) directives. It ia based on XML Process Definition Language (XPDL) and activities can be written in Java or any BSF based scripting language. JawFlow is composed of modules that are JMX Mbeans.
  • uEngine - A BPM / Workflow Solution based on Web Services. Features a Process Designer, EIP, Web service tools and an OLAP based Process Analyzer.
  • BpmScript - BpmScript aims to make writing Business Processes simple by handling Workflow, Web Services Orchestration and Sheduling. BpmScript has an embedded ServiceMix ESB. This allows it to take advantage of the prebuilt ServiceMix components (e.g. SOAP, FTP, Email, File, RSS, Jabber, JMS etc.)
  • JaCOB - PXE's BPEL implementation relies on the JACOB framework to implement the BPEL constructs. The framework provides the mechanism necessary to deal with two key issues in implementing BPEL constructs: Persistence of execution state and Concurrency. By rolling up these concerns in the framework, the implementation of the BPEL constructs can be simpler by limiting itself to implementing the BPEL logic and not the infrastructure necessary to support it.
  • Tempo - Intalio Tempo is a set of runtime components that support BPEL4People to bring workflow functionality to a BPEL engine. Tempo provides one possible User Interface for users to manage their tasks, which goes beyond the scope of BPEL4People. Tempo only provides runtime component. It does not provide tools to generate workflow processes nor does it provide forms.

Please let me know if I missed something that should be in the list.

Created by admin
Last modified 2007-03-29 03:20 PM

OpenWFE and python

Posted by Anonymous User at 2003-10-02 12:36 AM

One thing worth of interest with OpenWFE : its worklist component may be accessed by python code. Pyya is OpenWFE's python library, as OpenWFE provides a REST interface, pyya leverages it to allow our fellow python developers to take advantage of an open source workflow engine.

WFMOpen vs XFlow?

Posted by Anonymous User at 2004-03-05 07:32 AM

Hi I'm from Spain, I have to choose WFMOpen or XFlow and I want to ask some questions

Would you recommend me one or another? Why? What impressions do you have about them? Are there benefits using one of them?

What project presents more reliability, maturity...?

What application servers do they support (BEA, JBoss...)?

What DBMS do they support (Oracle, Postgre, mySQL,...)?

How are the data stored?? How can the data be accessed by other applications?

Can I read any study case about any of them??

Thanks a lot. Greetings

Replies to this comment

Comparison Matrix

Posted by Anonymous User at 2004-05-19 12:11 AM

Hi,

I’d like to know if there is a matrix of comparison or a blog or everything else which summarized the whole of the functions of these worflow tools and which exposes the different returns of experience.

Thanks,

Eric.

Integrating workflow engines with other system modules

Posted by Anonymous User at 2004-10-28 07:50 AM

Hi all,

This is probably a newbie question so please be tolerant :-)

I am involved in the development of a system that has a business process management component. The system is based on Spring, Hibernate and Web Work 2. The question is, out of all those available BPM engines, which ones can easily be integrated into other infrastructures? My first impression is that BPM engines designed to be the infrastructure itself, so that functions such as data access, business logic and user interface are specified around it. As opposed to using another infrastructure (in our case, Spring + Hibernate + Web Work) where the BPM engine is merely a component.

Is this distinction real? Should BPM engines logically be the center-piece of the system? Or am I grossly misunderstanding the issues?

Thanks, Karim

Worklist and Workload

Posted by Anonymous User at 2004-12-06 03:32 AM

For past few days I am lookin at different workflow engines(open source). There seems to be alot of them ,but very few talk abt the worklists or worklist handler and workload base tast assignment as there features ...(here I mean abt the individuals worklist not a group). If there are two Users(not roles) A who is a manager and B who is a clerk , If A gives work to B ,than B should only report back to A (not to Group called Manager) vis-a-vis.

Can anyone comment on this please. Regards jay

IdealX guide on open source solutions

Posted by Anonymous User at 2005-02-07 06:18 AM

Unfortunately it's in french, but those guys put up a synthesis of Open Source projects they see fit for production for their customers.

R = Richness E = Exploitation T = Tendency

http://guideopensource.com/synthese/index.html

Among them, two workflow engines from this manageability list have been briefly reviewed.

John

Workflow Abstraction Layer

Posted by Anonymous User at 2005-02-20 02:15 PM

I am currently building a project using Struts, Spring and Hibernate with OSWorkflow. The current development build (2.8) has built-in support for a Spring / Hibernate environment. In this case, performing an action in the workflow can check against a set of pre-conditions, which can refer to logic in the business layer and can then call some functions if the conditions hold, which can also refer to business logic. This is nice because Spring deals with the dependencies for the conditions and functions. The end result is my business logic is protected by the workflow engine, which prevents any action being performed in the wrong stage of the process.

The only downside of OSWorkflow is that you have to call the workflow action by passing the action's id (an int) and a map of all the inputs to the engine. I'm getting around this by writing an abstraction layer that provides nice method signatures (the business facade) for my struts actions (or any other client). These methods will map to an action id, take all the arguments from the signature and wrap them in a map and call the action.

Does anyone know if there is a workflow abstraction API under development somewhere?

Adam

which workflow engine is popular?-

Posted by Anonymous User at 2005-03-04 07:44 AM

as above

uEngine - Portal (Liferay) + Wf Engine + WebServices + GUI Process Designer

Posted by Anonymous User at 2005-03-30 10:25 AM

Hi all,

I've been searching for an Open Source WF suitable for simple projects, and after looking the most popular ones (jBPM, Shark, Bonita) I found a nice integration betwen a Portal Framework (Liferay Portal) and a WF engine (based on Twister as I can see) and WebServices all packaged. It has also a great Process Dessigner (comparable to commercial ones!!). The only problem is its low popularity, but I encourage you to take a look. Great work that comes from Korea.

I'm not sure of it's engine power, but its very usable and I think it's useful for the most usual projects. I'l try to use it in a test project.

http://uengine.sourceforge.net

Joan F. (Barcelona)

Shark vs OBE

Posted by Anonymous User at 2005-05-08 09:36 PM

About a year ago, My boss let me study two workflow engines,Shark and OBE,and make a hard choice. Choosing between them is because they all comply with the XPDL standard which is our main consideration. I have setup up both engines, loaded the example workflow definition, used the administration tools and finally read the code sources. I have got the impressions that OBE is well designed, while Shark's tooling is very rich. At that time I was more farmiliar to Entitiy EJB than DODS and the source code of OBE seemed more easy for me. Expecting the furture development of OBE and modification of the code by us, I finally chose OBE. Now, I'm not working for the boss and can not help thinking if I make a choise now for my own project. Which will I choose? OBE seems to have paused development, while Shark has released version 1.0. I'm now more inclined to Shark. I think the investment on OBE is not lost, for they both comply to XPDL standard so they share the same concepts, and I have used Enhydra Jawe as the workflow designer.

Consider adding Swish

Posted by Anonymous User at 2005-12-20 11:04 PM

Swish is an open source web services-based workflow API/engine built using the Shark framework and developed in Java. Swish provides a convenient web services layer on top of Shark, offering two key benefits:

  1. It opens Shark to a much wider range of developers by supporting both Java and non-Java clients.
  2. It greatl simplifies access to the more commonly-used features of Shark.

Swish runs on all major operating systems and is known to work with Ruby, PHP and .NET. Of course, it also works with Java and Java developers can also run Swish in embedded mode (without having to use web services).

More information about Swish can be found on the Roxwood website at:

http://www.roxwood.com/swish.jsp

Wood.

Concurrent processing of splits?

Posted by Anonymous User at 2006-03-11 03:13 AM

I'm currently reviewing a business process that spans manual and system tasks and I want a workflow engine to manage it. I was using Jawe to model the workflow and create the basic XPDL. (We do not have web services so I assume BPEL is not an option - right?). In our workflow there is a split that occurs and it is important that processing across the various split flows happens concurrently.

The plan was to use Enhydra Shark, but from my reading it appears that Shark does not create it's own threads so how can it do concurrent processing? Has anyone added this capability to Shark? Does anyone know a workflow engine that will do this sort of concurrent processing (and therefore have a internally managed thread pool of some sort)?

Replies to this comment

Evaluation of jBPM, OpenWFE and Enhydra Shark

Posted by Anonymous User at 2008-01-06 09:08 AM
Hi,

In the paper on http://is.tm.tue.nl/staff/wvdaalst/BPMcenter/reports/2007/BPM-07-12.pdf we report the results of an evaluation of jBPM, OpenWFE and Enhydra Shark. The workflow patterns: control-flow; data; and resource perspectives (http://www.workflowpatterns.com/) were used as evaluation framework.

Due to our close involvement, the YAWL system (http://www.yawl-system.com/) is not included in this evaluation.

I hope you will find the paper interesting!
If you know about any other evaluations of open source wfms, please post their references in this forum.

Best wishes, Petia Wohed
visitors
reading