Upload
mohammed-fazuluddin
View
86
Download
0
Embed Size (px)
Citation preview
Java Workflow EnginesOVERVIEW OF JAVA WORKFLOW ENGINES
@MOHAMMED FAZULUDDIN
Topics
Overview Workflow Engine Functions Workflow Architecture Workflow Types Java Workflow Engines Useful Links For More Information
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.
Overview
Sample Workflow Diagram
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.
Workflow Architecture
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.
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.
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.
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.
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.
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.
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 .
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.
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.
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.
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.
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.
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.
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.
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..
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
THANKS
• If you feel it is helpful and worthy to share with other people, please share the same