RSS Feed for This PostCurrent Article

Java: Open Source Workflow

Here are some open source workflow solutions that may suit your needs. Choose depending on what your requirements are

OSWorkflow

OSWorkflow is fairly different from most other workflow systems available, both commercially and in the open source world. What makes OSWorkflow different is that it is extremely flexible. This can be hard to grasp at first, however. For example, OSWorkflow does not mandate a graphical tool for developing workflows, and the recommended approach is to write the xml workflow descriptors ‘by hand’. It is up to the application developer to provide this sort of integration, as well as any integration with existing code and databases. These may seem like problems to someone who is looking for a quick “plug-and-play” workflow solution, but we’ve found that such a solution never provides enough flexibility to properly fulfill all requirements in a full-blown application.

Also, Quartz is a full-featured, open source job scheduling system that can be integrated with, or used along side virtually any J2EE or J2SE application – from the smallest stand-alone application to the largest e-commerce system. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components or EJBs. The Quartz Scheduler includes many enterprise-class features, such as JTA transactions and clustering.

Apache ODE

Apache ODE (Orchestration Director Engine) executes business processes written following the WS-BPEL standard. It talks to web services, sending and receiving messages, handling data manipulation and error recovery as described by your process definition. It supports both long and short living process executions to orchestrate all the services that are part of your application.

Intalio is the open source business process platform using ODE

ActiveBPEL

The ActiveBPEL Community Edition Engine is an open source implementation of a BPEL engine, written in Java. It reads BPEL process definitions (and other inputs such as WSDL files) and creates representations of BPEL processes. When an incoming message triggers a start activity, the engine creates a new process instance and starts it running. The engine takes care of persistence, queues, alarms, and many other execution details.

jBPM

jBpm creates business processes that coordinate people, applications, and services. Designed for SMB and large enterprise applications alike, JBoss jBPM brings process automation to a much wider set of business problems, from embedded workflow to enterprise business process orchestration and BPM.

JBoss jBPM is also a key component of the JBoss Enterprise SOA Platform.

Apache Commons Chain

Commons Chain  implements the “Chain of Responsibility” pattern.

OBE

Open Business Engine (OBE) is a flexible, modular, standards-compliant Open Source Java workflow engine. It is fully J2EE compliant, and supports several J2EE application servers, operating systems and databases. It faithfully implements Workflow Management Coalition Open Standards (WfMC), to which it offers a variety of extensions and enhancements. OBE is equally suited to embedded or standalone deployment.

Flux

Flux is an embeddable, pure Java solution that increases productivity by meeting the challenges of Job Scheduling, File Transfer, and Workflow. By combining Flux’s APIs and user-friendly graphical interfaces, Flux becomes the “engine” that enables highly scalable solutions. It is used in a variety of applications by customers across multiple industry sectors.

Bossa

Bossa is a workflow engine written in Java. The engine is very fast and lightweight, uses a very expressive Petri net notation to define workflows, does not require a RDBMS and is very simple to use and to integrate with java applications.

Actually, it was designed to be embedded. Therefore, Bossa is organized as a library to be used by server side applications (especially web oriented ones) that need workflow services. We plan, in the future, to implement a shell over the current library to offer workflow services as a stand alone server.

XFlow

XFlow is a pure J2EE platform for building, executing and managing business processes and workflows. It is a basis for building collaborative applications as well as integrating processes across an enterprise. XFlow has a small footprint but is extremely powerful. It is designed to be easy to use from the development, deployment and management standpoints.
XFlow runs within an EJB and servlet container. JBoss 4.0 (with bundled Tomcat) is the container used in this implementation. The architecture supports distributed and parallel processes within an organization’s firewall as well as across organizational boundaries.

XFlow is designed for scalability, extensibility and ease of integration with security models and legacy processes. XFlow’s service-oriented architecture supports both a simple Java API as well as a web-service (SOAP/HTTP) interface.

Bonita

BONITA is a workflow system featuring innovative features like activities that can start in anticipation, awareness infrastructure allowing user notification of any events occurring during the execution in a given process , or automatic activation of user’s code according to a defined activity life cycle. Traditional workflow features like dynamic user/roles resolution, activity performer and sequential execution are also included in Bonita to support both cooperative and administrative workflow processes.

BONITA is a fully conformant J2EE application, taking advantage of the power and robustness of the J2EE platform. The BONITA API is accessible either thru EJB’s or Web Services calls.

Processes are created using a graphical definition tool, by using the Project interface API or by means of a XPDL file definition. A process is defined as a set of activities and an associated execution model. The enactment engine takes care of scheduling the activities according to the defined execution model. The User API provides full control over the execution of the process, for example allowing starting or stopping of an activity. BONITA also supports dynamic modification of an existing process, that is, the Project interface API can be applied to a running process.

Eclipse JWT

The Java Workflow Tooling project (JWT) aims to build design time, development time and runtime workflow tools in order to provide a complete, flexible, interoperable Business Process Management platform.

This is achieved through an extensible architecture allowing to support many different BP representations, format languages and execution engines. The set of JWT tools is meant to allow for “Distribution”-like releases with specific extensions targeting specific platforms or problems, e.g. JWT for SOA. The mission and philosophy of JWT makes it natural complement to other Eclipse projects, such as the friend SOA Tools Platform Project.

Workpoint

Workpoint is industrial strength pure play BPM perfectly suited to ISVs and end users requiring fast flexible BPM in two native versions, JAVA J2EE and .NET. Workpoint’s high performance is the reason that ISVs like CA, EMC/RSA, Comverse and SunGard rely on it every day.

 

Also, have a look at Ruote. Ruote is a workflow engine written in Ruby. It’s a runtime for long running [business] processes.


Trackback URL


Sorry, comments for this entry are closed at this time.