Project Dogfood Ian Cook, Mitch Heer, James Lorenz, Tom Navarro, Levi Stanley.
Levi - Project Proposal
description
Transcript of Levi - Project Proposal
CS4200 - Project Proposal
1 Project Title
Levi - Native BPMN 2.0 Execution Engine based on Apache ODE
2 Project Supervisors
Internal Supervisor
Ms. Vishaka Nanayakkara
External Supervisors
Dr. Sanjiva Weerawarana
Mr. Milinda Pathirage
3 Group Members
070206B Ishan Jayawardena ([email protected])
070468D Eranda Sooriyabandara ([email protected])
070138R Keheliya Gallaba ([email protected])
060501P Umashanthi Pavalanathan ([email protected])
4 Abstract
Business Process Model and Notation (BPMN) is a standard for graphical modeling of
business processes. The goal of this project is to implement a native BPMN 2.0 [0]
execution engine for Apache ODE [1], based on its virtual process machine - JACOB [2].
The project work consists of two major tasks that will be implemented in two phases.
The first task is to implement the execution engine with the fundamental functionality
that is capable of deploying and navigating a BPMN 2.0 process model accurately. Next
task is to improve the basic engine by adding support for more advanced BPMN 2.0
constructs such as task implementation, data handling, and the integration in the Web
services world.
5 Description
5.1 BPMN and BPMN 2.0
Business Process Model and Notation (BPMN) is an Object Management Group (OMG)
[3] standard for business process modeling. It provides a standard graphical notation
for specifying business processes in a business process diagram (BPD) [4] by using a
rich flowcharting technique similar to activity diagrams of the Unified Modeling
Language (UML) [5].
The primary goal of BPMN is to support business process management for both
technical and business users. Its notation is readily understandable by all business
stakeholders (i.e. Business Analysts, Software Engineers, Directors, CEOs etc.) yet able
to represent complex process semantics. Thus, BPMN creates a standardized bridge for
the communication gap between the business process design and implementation.
Another important goal of BPMN is to ensure that XML languages designed for the
execution of business processes can be visualized with a business-oriented notation. For
example, the latest BPMN version, BPMN 2.0 provides a mapping between the graphics
of the notation to the underlying constructs of Business Process Execution Language
(BPEL) [6].
BPEL (aka WS-BPEL, BPEL4WS) is an OASIS[7] standard, XML based execution language
for defining constructs to write business processes using web services. It can be used to
compose, orchestrate, and coordinate web services. It provides a rich mechanism for
expressing the behavior of business processes but the BPEL standard does not define a
graphical notation as BPMN does. Therefore, one can view BPMN as a more abstract
modeling language than BPEL for defining business process models.
BPMN 2.0 is a huge step forward for the whole business process management
community because it introduces not only a standard graphical notation, but also
concise execution semantics for process execution that can be used to enable the real
execution of business processes that are modeled using it. This concept has been around
in the BPMN arena since BPMN’s initial versions and enormous amount of work and
effort has been taken to make this concept available in the latest version. This concept is
the most distinct feature of BPMN 2.0 from its initial versions like BPMN 1.2 and 1.1.
Currently, there are a number of implementations available for BPMN 2.0, both
commercial and open source. But only a few of them execute BPMN 2.0 constructs in a
native manner, meaning that most of them use the BPMN 2.0 to BPEL mapping in their
underling implementation. Also, most of these implementations concern only the
modeling aspect of BPMN 2.0 and therefore these can be viewed as modeling tools
which are not capable of executing business processes in reality. In this document what
we refer to as the engine is the implementation of the above mentioned execution
semantics, and what we mean by the nativeness is the fact that we are not taking the
BPMN 2.0 to BPEL mapping approach in our implementation. Rather, we execute the
true BPMN 2.0 constructs in a runtime which is implemented solely for BPMN 2.0
execution.
By taking this approach we can ensure that our implementation conforms to standard
BPMN 2.0, because when using the mapping approach only a subset of available BPMN
2.0 constructs can be mapped to BPEL, leaving out another set of constructs which may
address more sophisticated (sometimes more useful) BPMN concepts that may not be
easily achieved with just BPEL. Not only that, it lets our implementation gain more
flexibility in its design. For example, it will help the iterative and modular development
of the system by letting more important and essential constructs to be implemented in
the earlier stages of the development and to add more features on top of that. In
addition to that, most importantly, this approach will also help exploring the true power
of BPMN 2.0 by not being restricted to just a subset of its constructs.
Currently there are several competing standards for business process modeling
languages used by modeling tools and processes [8]. Widespread adoption of the BPMN
will help unify the expression of basic business process concepts (e.g., public and
private processes, choreographies), as well as advanced process concepts (e.g.,
exception handling, transaction compensation).
5.2 Apache ODE and the JACOB runtime
The implementation that we suggest differs from other existing BPMN 2.0 execution
engines from being able to run BPMN 2.0 processes in a native manner without
mapping them to BPEL and doing it using JACOB framework in Apache ODE.
Apache ODE is a WS-BPEL complaint web services orchestration engine, which executes
business processes written in WS-BPEL. ODE talks to web services, send and receive
messages, handle data manipulation and error recovery as described by the business
process definition [1].
ODE's BPEL implementation relies on a framework called Java Concurrent Objects
(JACOB) to implement the BPEL constructs. The framework provides the mechanism
necessary to deal with two key issues in implementing BPEL constructs:
1. Persistence of execution state.
2. Concurrency.
By rolling up these concerns in the framework, the implementation of the BPEL
constructs can be simpler by limiting itself to implementing the BPEL logic and not the
infrastructure necessary to support it.
We are planning to implement a BPMN 2.0 runtime which handles major tasks of a
process model such as implementation of BPMN constructs, routing of incoming
messages and creation of new process instances on top of JACOB, as shown in figure-1
below.
Figure 1: Proposed architecture for the implementation of BPMN 2.0 on top of JACOB
6 Major Tasks
1. To create an initial prototype of the engine that is capable of deploying a BPMN
2.0 process model and navigating it properly. Task implementations and data
objects are yet out of scope of this component, but all concepts (tasks, events,
gateways, sequence flow) will be captured [9].
2. Task implementation, BPMN 2.0 data handling and the integration in the Web
services world (i.e. binding of BPMN interface/operation to WSDL
portType/operation). Message events and send/receive/service tasks should be
capable to integrate with ODE integration layer. This includes identifying a
subset of BPMN constructs to be implemented [10].
7 Objectives and Deliverable
1. A native BPMN 2.0 implementation for Apache ODE based on JACOB
2. Samples of possible end-to-end scenarios
3. User and Developer Documentation
4. Research Papers
5. Project Report
8 Research Work
We have identified followings as the key research areas required for the project.
1. Understanding the concepts of business process modeling
2. Identifying the subset of BPMN 2.0 concepts for the initial implementation
3. Literature review of existing BPMN 2.0 and BPEL implementations
4. Researching limitations of BPMN 2.0 to BPEL mapping and strengths in native
BPMN 2.0 execution
5. Identifying the capability of JACOB for implementing BPMN 2.0 constructs
6. Identifying the possible subset of BPMN elements for implementation
7. Studying the feasibility of exception handling and error recovery in business
processes at the execution level
8. Research on optimization and fine-tuning the underlining process virtual
machine
9. Performance comparison between the existing products and the implementation
using Apache ODE
9 Timeline
October 1st week Initiating the project, initial research and project proposal submission
October 2nd & 3rd week Understanding BPMN 2.0 specification
Identifying the initial subset of the BPMN 2.0
concepts for implementation
Reading research papers related to BPMN 2.0
Requirements gathering
Submitting of Requirements Specification
October 4th week &November 1st week
Studying existing BPMN 2.0 implementations
Preparing the development environment, build ODE
Creating a public code repository for the project in
GitHub
November 2nd week Finalizing the system design Submitting the design document
November 3rd & 4th week Studying Apache ODE, JACOB and execution model of BPEL inside ODE
December 1st & 2nd week Finding possible ways to execute BPMN 2.0
processes on top of JACOB
Deciding on the BPMN XSD schema
January 4th week Completing the literature survey Completing the initial chapters of the report
including introduction, aims, objectives, background and literature review
February 1st, 2nd & 3rd week
Completing the first phase of implementation
Implementation for executing a simple BPMN 2.0
process
Testing a simple scenario using a visual designer
and the BPMN 2.0 engine
February 4th week &March 1st week
Completing the second phase of implementation
Implementation of core BPMN 2.0 elements
Testing of simple scenarios created using the core
elements
March 2nd & 3rd week Completing the third phase of implementation
March 4th week, April 1st & 2nd week
Completing the final phase of implementation
April 3rd & 4th week Submission of Research Paper
Preparing developer documentation
May 1st week Writing sample end-to-end scenarios with the implementation
May 2nd & 3rd week Completing user documentation Continue writing the project report Submitting the draft report
May 4th week & June 1st week
Testing sample end-to-end scenarios
June 2nd & 3rd week Completing the final chapters of project report
July 1st & 2nd week Final demonstration and submission of final report
10 References and Resources
10.1 References
[0] OMG BPMN Specification, version 2.0 Beta 2 http://www.omg.org/cgi-bin/doc?dtc/10-06-04
[1] Apache ODE http://ode.apache.org
[2] JACOB framework http://ode.apache.org/jacob.html
[3] Object Management Group (OMG) http://www.omg.org
[4] Process Modeling Notations and Workflow Patterns, paper by Stephen A. White of IBM Corporation (2006)
http://www.bpmn.org/Documents/Notations_and_Workflow_Patterns.pdf
[5] Process Modeling Notations and Workflow Patterns, paper by Stephen A. White of IBM Corporation (2006)
http://www.bpmn.org/Documents/Notations_and_Workflow_Patterns.pdf
[6] BPEL 2.0 Standard http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf
[7] OASIS http://www.oasis-open.org
[8] BPM FAQ http://www.bpmodeling.com/faq
[9] ODE-793 https://issues.apache.org/jira/browse/ODE-793
[10] ODE-794 https://issues.apache.org/jira/browse/ODE-794
10.2 Resources
1. Business Process Modeling and Standardization
Antoine Lonjon,Chief Architect,MEGA, International Joins Business Process Modeling
Notation Working Group
2. HOW GOOD IS BPMN REALLY? INSIGHTS FROM THEORY AND PRACTICE
Recker Jan,Indulska Marta,Rosemann Michael,Green Peter- Queensland University of
Technology
3. OMG releases BPMN 1.1 - What's changed?
Gero Decker and Torben Schreiter
4. Using BPMN to Model a BPEL Process
Stephen A. White
5. On the Translation between BPMN and BPEL: Conceptual Mismatch between
Process Modeling Languages
Jan Recker and Jan Mendling
6. Introduction to BPMN
Stephen A. White, IBM Corporation
7. A Comparison of XML Interchange Formats for Business Process Modelling
Jan Mendling and Gustaf Neumann
8. Bruce Silver. “BPMN 2.0 Status Update” found at the URL
http://www.brsilver.com/2009/07/06/bpmn-20-status-update-2/
9. “BPMN FAQs” found at the URL
http://www.bpmnforum.com/FAQ.htm