Levi - Project Proposal

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

description

Levi - Native BPMN 2.0 Execution Engine based on Apache ODE - CS4200 - Project Proposal

Transcript of Levi - Project Proposal

Page 1: 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].

Page 2: Levi - Project Proposal

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

Page 3: Levi - Project Proposal

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.

Page 4: Levi - Project Proposal

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

Page 5: Levi - Project Proposal

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

Page 6: Levi - Project Proposal

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

Page 7: Levi - Project Proposal

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

Page 8: Levi - Project Proposal

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