23
Java Workflow Engines OVERVIEW OF JAVA WORKFLOW ENGINES @MOHAMMED FAZULUDDIN

Java workflow engines

Embed Size (px)

Citation preview

Page 1: Java workflow engines

Java Workflow EnginesOVERVIEW OF JAVA WORKFLOW ENGINES

@MOHAMMED FAZULUDDIN

Page 2: Java workflow engines

Topics

Overview Workflow Engine Functions Workflow Architecture Workflow Types Java Workflow Engines Useful Links For More Information

Page 3: Java workflow engines

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. 

Page 4: Java workflow engines

Overview

Sample Workflow Diagram

Page 5: Java workflow engines

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.

Page 6: Java workflow engines

Workflow Architecture

Page 7: Java workflow engines

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.

Page 8: Java workflow engines

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.

Page 9: Java workflow engines

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.

Page 10: Java workflow engines

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.

Page 11: Java workflow engines

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.

Page 12: Java workflow engines

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.

Page 13: Java workflow engines

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 .

Page 14: Java workflow engines

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.

Page 15: Java workflow engines

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.

Page 16: Java workflow engines

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.

Page 17: Java workflow engines

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.

Page 18: Java workflow engines

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.

Page 19: Java workflow engines

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.

Page 20: Java workflow engines

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.

Page 21: Java workflow engines

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..

Page 22: Java workflow engines

Useful Links For More Information http://www.uengine.org/web/guest/home. http://www.trianacode.org/ http://pegasus.isi.edu/ http://www.jboss.org/drools/drools-flow.html http://activiti.org/ http://www.jbpm.org/ http://www.jboss.org/riftsaw http://www.joget.org/ http://orchestra.ow2.org/xwiki/bin/view/Main/WebHome http://shark.enhydra.org/ http://taverna.sourceforge.net/ http://www.bonitasoft.org/ http://www.imixs.org/ http://www.yawlfoundation.org/ http://zebra.tigris.org/ http://www.activevos.com/community-open-source.php

Page 23: Java workflow engines

THANKS

• If you feel it is helpful and worthy to share with other people, please share the same