Berkeley Bits

January 15, 2009

A quick review of some open source workflow engines

Filed under: What I'm Up To — jholtzman @ 5:16 pm

Matterhorn must provide a mechanism to allow institutions to easily configure workflows that match their local business processes for capturing, processing, and distributing media.  I’ve been looking at some open source workflow engines, hoping that one of them will meet our needs.  This is a cursory review of the engines I’ve found to date:

KEW

License: ECL

Dependencies: KEW is part of the larger “Rice” system, and depends on a properly configured “Kuali Service Bus”.  If KEW is embedded in another Java application, a standalone Rice server is required.

Intended use: KEW seems to be focused on the routing of xml documents for approval.  Routing decisions can be based on the content of the xml document.  KEW includes features for searching within documents and auditing documents throughout their lifecycle.

First impressions: Some of KEW’s features — its content-based routing, its user and workgroup services, its handling of notes and attachments — seem to align well with Matterhorn’s workflow needs.  Others, such as runtime editing of routing rules, don’t seem particularly useful.  Between the overhead of deploying a standalone Rice server (which seems pretty high) and KEW’s catering to a small niche market, the benefits of KEW don’t seem to be great enough to justify the costs.

jBPM

License: LGPL

Dependencies: Hibernate (+ transitive dependencies)

Intended use: Generic workflow engine for BPM and service orchestration.  Workflow definitions are defined in jPDL or BPEL, either via XML editing or graphically in eclipse.

First impressions: Seems relatively simple to embed, though the particulars of the classloading environment could make the use of hibernate problematic.  Good documentation and a quick and easy installation to jboss.  Includes a UI for instantiating new process instances and operating on existing instances.  Also includes a (beta?) GWT version of the UI.  Several major products, including Nuxeo and Alfresco, delegate their workflow needs to jBPM.

os-workflow

License: Modified Apache License

Dependencies: OSCore and PropertySet (both also from opensymphony) and JCL.  Beanshell is optional but useful for scripting workflows.  Quartz and XFire (which is now CXF and has been for some time) add job scheduling and webservice capabilities, respectively.

Intended use: Generic workflow engine.  Defining workflows involves editing xml and scripting processes.

First impressions: Documentation is either out of date or the project itself is fairly stagnant.  Workflow definitions must be either on the classpath or you need to write an extension.  User / group functionality is provided through OSCore.  Proven to work in a range of classloading environments (JEE servers, OSGI, etc).  os-workflow is bundled in ServiceMix 4.

ODE

License: ASL 2.0

Dependencies: The usual suspects… various apache libraries, xml parsers, axis, etc.

Intended use: Executes business processes written following the WS-BPEL standard.

First impressions: Although this is apparently considered a workflow engine, it seems to handle service orchestration but not routing processes between automated tasks and human users.  Doesn’t seem to meet our needs.

Intalio

License: Mozilla Public License / Community (not open source, but still free) / Commercial.

Dependencies: Unclear.  I signed up on their site (which is required to download the Intalio server), but never received the promised confirmation email containing further instructions.  After trying again with a different email address, I quit trying.

Intended use: Workflow engine and service orchestration.  Handles BPEL4PEOPLE extension.

First impressions: Intalio’s “Open Source Edition” runs on Apache Geronimo.  Process definitions can be created and edited in eclipse, though Intalio’s eclipse plugins force you to log in to the Intalio site.  Although technically open source, Intalio the business keeps injecting itself into Intalio the product.  Unless they commit to the spirit of open source, I would not recommend using their product in Matterhorn.

Update (01/16/2009): I chatted with some very helpful people from Intalio, who provided me with the skinny on their licensing, which places limits on what you can and can not do with the community edition of the software.  In particular, it states that you can “use the Intalio Software only with Apache Geronimo with a process data persistence provided by the Derby java database or by the MySQL database, and with authentication services provided by the built-in file-based authentication or Apache DS” [emphasis mine].  After first stating that “you have the freedom to do whatever you want with the community version,” I learned that in fact “you cannot use it with tomcat or oracle… However, you can deploy it on any number of CPUs, in production and development environment, for a unlimited use.  You cannot distribute the community license. However, you [are] free to let your clients download your community version, which is covered in the terms and agreement.”  So there you go.

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress