2. Topics
Overview
Workflow Engine Functions
Workflow Architecture
Workflow Types
Java Workflow Engines
Useful Links For More Information
3. Overview
Workflow engine manages and monitors the state of activities in a workflow, such
as the processing and approval of a loan application form, and determines which
new activity to transition to according to defined processes (workflows).
Workflow engine facilitates the flow of information, tasks, and events.
Workflow engines may also be referred to as Workflow Orchestration Engines.
workflow engine is a core technique for task allocation software, such as business
process management, in which the workflow engine allocates tasks to different
executors while communicating data among participants. A workflow engine can
execute any arbitrary sequence of steps, for example, a healthcare data analysis.
The workflow engines interpret the documents in the server and acts according to
the computer defined process.
5. Workflow Engine Functions
Workflow engines mainly have three functions:
Verification of the current status: Check whether the command is valid in
executing a task.
Determine the authority of users: Check if the current user is permitted to execute
the task.
Executing condition script: After passing the previous two steps, the workflow
engine begins to evaluate the condition script in which the two processes are
carried out, if the condition is true, workflow engine execute the task, and if the
execution successfully completes, it returns the success, if not, it reports the error to
trigger and roll back the change.
7. Workflow Types
Sequential Workflows:
A sequential workflow represents a workflow as a procession of steps that execute
in order until the last activity completes.
However, sequential workflows are not purely sequential in their execution. Because
they can receive external events, and include parallel logic flows, the exact order of
activity execution can vary somewhat.
State Machine Workflows:
A state machine workflow represents a set of states, transitions, and actions. One
state is denoted as the start state, and then, based on an event, a transition can be
made to another state.
The state machine can have a final state that determines the end of the workflow.
8. Java Workflow Engines
Flux:
This is widely used Java workflow engine. It ameliorates the productivity through job
scheduling, File Transfer,
Workflow and business process management (BPM) engine. APIs are available for
Java, J2EE, XML, and Web Services. Flux can be used from the user interfaces
without programming..
OpenWFE:
Implemented in Java, this open source workflow engine offers a complete Business
Process Management Suite.
OpenWFE features worklist component for storing work items, an APRE component for
implementing automated agents into the work flows and the web based flow designer
Droflo.
It has a python access library that enables interaction between python application / client
and OpenWFE REST worklist.
9. Java Workflow Engines
Drools Flow:
Drools Flow provides workflow to the Drools platform. Drools Flow allows end users
to specify, execute and monitor their business logic.
The Drools Flow process framework is easily embeddable into any Java application
or can run standalone in a server environment.
Activiti:
Activiti is a Business Process Management (BPM) and workflow system targeted at
business people, developers and system admins.
Its core is a super-fast and rock-solid BPMN 2 process engine for Java. It’s open-
source and distributed under the Apache license.
Activiti runs in any Java application, on a server, on a cluster or in the cloud. It
integrates perfectly with Spring.
10. Java Workflow Engines
jBpm:
JBoss jBPM is a platform for multiple process languages supporting workflow, BPM,
and process orchestration.
jBPM supports two process languages which are 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.
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.
11. Java Workflow Engines
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, instantiation, 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.
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.
12. Java Workflow Engines
uEngine:
The uEngine BPM suite consists of a modeling tool and process engine, dashboard
with SSO and a OLAP inspired process analyzer.
uEngine BPM foundation is built using the Liferay Enterprise Portal, Mondrian OLAP
Server, JBoss Drools BRE and Axis2.
Triana:
An open source problem solving environment developed at Cardiff University that
combines an intuitive visual interface with powerful data analysis tools.
Already used by scientists for a range of tasks, such as signal, text and image
processing, Triana includes a large library of pre-written analysis tools and the
ability for users to easily integrate their own tools.
13. Java Workflow Engines
Pegasus:
The Pegasus project encompasses a set of technologies the help workflow-based
applications execute in a number of different environments including desktops,
campus clusters, grids, and now clouds.
Scientific workflows allow users to easily express multi-step computations, for
example retrieve data from a database, reformat the data, and run an analysis.
Pegasus can handle 1 to 1 million computational tasks.
RiftSaw:
Project Riftsaw is a WS-BPEL 2.0 engine that is optimized for the JBoss Application
Server container.
WS-BPEL 2.0 is an XML-based language for defining business processes that
orchestrate web services. Riftsaw is based on Apache ODE .
14. Java Workflow Engines
Joget:
Joget Workflow is a people-driven, form-based workflow management system.
Joget Workflow is XPDL compliant and has a plug-in architecture to extend its
usability.
The system can be used on its own to manage the flow of processes and data
captured from forms.
Orchestra:
Orchestra is a complete solution to handle long-running, service oriented processes.
It is based on the OASIS standard BPEL 2.0. Provides a generic engine (Process
Virtual Machine), Web 2.0 based process console and a graphical BPEL designer.
15. Java Workflow Engines
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.
Bigbross Bossa:
The engine is very fast and lightweight, uses a very expressive Petri net notation to
define workflows.
It does not requires a RDBMS and is very simple to use and to integrate with java
applications. Actually, it was designed to be embedded.
16. Java Workflow Engines
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.
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.
17. Java Workflow Engines
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.
Swamp:
SWAMP is a workflow processing platform.
The workflow is designed in a XML based meta language.
Workflows can be built from different workflow ‘patterns’ like simple actions,
decisions, selections, loops, but also custom code and external events.
18. Java Workflow Engines
Bossa:
It is a fast and light workflow engine written in Java. This Java workflow engine requires
no RDBMS.
The workflows are expressively defined by Petri net. Bossa is easy to use and readily
integrates with java platform..
Carnot:
This is a J2EE based workflow engine.
This can be deployed as an Enterprise Java Bean in an Application Server.
Xflow:
This business processes management and workflows engine is built on a J2EE platform.
It assists in integrating processes across an enterprise. It is designed for easy
development, deployment and management standpoints.
19. Java Workflow Engines
Copper:
It is an open source workflow engine.
You do not need to spend precious time on familiarizing yourself with additional
languages, notations, tools and runtimes, as you would if you wanted to
use BPEL or BPMN.
If you try to orchestrate complex business workflows with graphical notations such
as BPEL, you'll soon end up with ridiculous big graphs which no one can understand
anymore (real life example!).
Your application server runs on Java, your entire backend stack probably runs on
Java, so why don't you use the language you know best for workflow description?!?
Plus, once you got COPPER up and running you can supervise COPPER online with
its vast JMX management and monitoring capabilities.
20. Java Workflow Engines
Micro-Flow:
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.
Sarasvati:
Sarasvati is a capable, embeddable workflow/BPM engine for Java.
For developers, it focuses on expressive modeling and ease of use features like
embeddable sub-processes and backtracking. For users, it offers transparency via
visualizations and human readable guards.
21. Java Workflow Engines
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 accommodated.
Processes can revolve around documents, objects or any other entity. The core werkflow
engine can be accessed through a Java API, EJB, JMS, SOAP and other conduits.
Open Business Engine:
The Open Business Engine is an open source workflow engine written in Java.
OBE workflow definitions are written in XPDL, the WfMC' s XML process definition
language and are typically executed inside of a J2EE container..