Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java workflow engines

7,926 views

Published on

Java workflow engines

Published in: Technology

Java workflow engines

  1. 1. Java Workflow Engines OVERVIEW OF JAVA WORKFLOW ENGINES @MOHAMMED FAZULUDDIN
  2. 2. Topics  Overview  Workflow Engine Functions  Workflow Architecture  Workflow Types  Java Workflow Engines  Useful Links For More Information
  3. 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.
  4. 4. Overview Sample Workflow Diagram
  5. 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.
  6. 6. Workflow Architecture
  7. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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..
  22. 22. 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
  23. 23. THANKS • If you feel it is helpful and worthy to share with other people, please share the same

×