41
BPM EXECUTION with Business Process Management@VGU-BIS2013 Prof. Dr. Tomas Benz Power Group Phan Thi Hong Nguyen Quang Nhat Minh Nguyen Quoc Viet Pham Minh Huyen

Final pre power_group_executing bpm processes with Camunda

Embed Size (px)

Citation preview

BPM EXECUTIONwith

Business Process Management@VGU-BIS2013Prof. Dr. Tomas Benz

Power GroupPhan Thi HongNguyen Quang Nhat MinhNguyen Quoc VietPham Minh Huyen

Objective & Outcome

• Introduce the BPM life-cycle and how to execute designed business processes by applying an open source platform for workflow and business process automation.

• At the end of this presentation, you will be able to:

• Know what stages of a BPM life-cycle are

• Know how to automate designed business processes with Camunda BPM platform

2

3

Outline

• Introduction to BPM life-cycle

• Business Process Management with BPMN and BPEL

• Executing BPM with Camunda BPM Platform

• Demo

INTRODUCTION TO BPM LIFE-CYCLE

Business Process Management (BPM)

4

Key Goal of BPM

Align processes with business goals, seek ways to improve those processes and then

establish measurements that can be used to track and monitor performance for

continuous improvement and optimization.

5

6

• How is it done today?

• The aim is to ensure a correct and efficient theoretical design is prepared.

• Why do we do it in that way?

• Analyze process, perform “what if” analysis and compare the various simulations or process options to determine optimal improvements.

• Select and implement improvements.

• BPMS tools can help enforce that we do it the new way.

• Periodically monitor the process against establish metrics such as SLAs or defect rates

• Iterate for continuous improvement

Execution

BPM WITH BPMN & BPELBusiness Process Management (BPM)

7

Overview

8

BPM is often a point of connection

BPEL and BPMN tools were introduced to facilitate this communication and to help improve the alignment of business and IT

priorities.

Line of Business (LOB) IT Department

• A method of illustrating business processes in the form of a diagram similar to flowchart.

9

Business Process Modeling Notation 1.x

• No defined execution semantics

• Calls for a technical language for business process automation

Example of BPMN for a discussion cycle process

Business Process Execution Language

• Standardized XML-based language for executable, technical business processes

• Tied to concepts of SOA/Web Services

• Hybrid language: block-structured and graph-based

• Well-defined execution language:

• No dead-lock, no lack-of-synchronization

• Graphs must be acyclic

• No standard graphical notation for BPEL

10

BPMN + BPEL

• Established Approach

• Business experts generate business processes with BPMN models

• IT experts translate them to BPEL to make them executable

11

Proposal for mapping of a synchronous message-based interaction

Ref.: BPEL to BPMN: The Myth of a Straight-Forward Mapping

BPMN + BPEL

• Problems

• Mapping BPMN to BPEL is not straight forward

• Lax vs. strict semantics

• Graph-oriented vs. Block-oriented process

• Lack of technical details in BPMN models

• Round-tripping is difficult

12

13

BPMN 2.0 as an Execution Language

X

The Business Process Model and Notation (BPMN) 2.0 is an OMG specification that…

not only defines a standard on how to graphically represent a business process (like BPMN 1.x),

… but now also includes execution semantics for the elements defined, and an XML format on how to store (and share) process definitions.

14

BPMN 2.0 as an Execution Language

Business Process Model and Notation (BPMN) 2.0 specification – JBOSS.ORG

15

BPMN 2.0 as an Execution Language

BPMN 1.xBPEL

BPMN 2.0

Business expertIT expert

Business Process Model and Notation 2.0 (January, 2011)

Following BPMN items will be introduced:

•Tasks: Service task, User task, Forms, Business rule task, Script task, Send task, Receive task, and Manual task.

•Gateways: Exclusive gateway, Parallel gateway, and Event-based gateway.

•Events: None (Blank) event, Timer event, and Message event.

•Sub-process and Call activity.

16

BPMN 2.0 as an Execution Language

17

BPMN 2.0 as an Execution Language

<userTask id='theTask' name='important task’ camunda:assignee="kermit" />

Tasks

Used to invoke services which is done by calling Java code.<serviceTask id="aMethodExpressionServiceTask“ camunda:expression="#{myService.doSomething()}“ camunda:resultVariable="myVar" />Or an expression which calls a method or resolves to a value.<serviceTask id="expressionService" name="My Expression Service Task" camunda:expression="${myBean.doWork()}" />

18

BPMN 2.0 as an Execution Language

<exclusiveGateway id="exclusiveGw" name="Exclusive Gateway" default="flow4" />

<sequenceFlow id="flow2" sourceRef="exclusiveGw" targetRef="theTask1" name="${x==1}"> <conditionExpression xsi:type="tFormalExpression">${x == 1}</conditionExpression> </sequenceFlow>

<sequenceFlow id="flow3" sourceRef="exclusiveGw" targetRef="theTask2" name="${x==2}"> <conditionExpression xsi:type="tFormalExpression">${x == 2}</conditionExpression> </sequenceFlow>

<sequenceFlow id="flow4" sourceRef="exclusiveGw" targetRef="theTask3" name="else“ />

Gateways

19

BPMN 2.0 as an Execution Language

<message id="newInvoice" name="newInvoiceMessage" /> <process id="invoiceProcess"> <startEvent id="messageStart" > <messageEventDefinition messageRef="newInvoice"/> </startEvent>... </process>

Events

This event is used when the process instance is started through the API by calling one of the startProcessInstanceBy(...) methods.

20

BPMN 2.0 as an Execution Language

<startEvent id="outerStartEvent" /><!-- ... other elements ... --><subProcess id="subProcess"><startEvent id="subProcessStart" /><!-- ... other subprocess elements ... --><endEvent id="subProcessEnd" /></subProcess>

Sub-process

21

BPMN 2.0 as an Execution Language

EXECUTING BPM WITH CAMUNDA BPM PLATFORM

Business Process Management (BPM)

22

Camunda architecture

• All about Camunda BPM platform• Use-case overview and tools:

• Cycle, Cockpit, Tasklist, Admin, and Modeler• Architecture

• Services• Scopes• Process Engine• Process Application

2315/04/2023

Use-case diagram

2415/04/2023

1

2 3

45

6

25

CycleSynchronize the BPMN diagrams in your business analyst's BPMN tool with the technically executable BPMN 2.0 XML files your developers edit with their modeler (e.g. in Eclipse). Support realize forward- and a reverse engineering using BPMN 2.0 XML.

26

TasklistTasklist is a web application that provides you with the possibility to work on User Tasks.

27

Task Lifecycle

28

CockpitWith Cockpit you can monitor and administrate your running process instances.

29

Admin Admin is an application that allows you to configure users and groups via the engine's Identity Service.

30

Camunda Modeler

31

ArchitectureCamunda BPM is built around the process engine component.

32

Services

The central starting point is the ProcessEngine with its ‘camunda.cfg.xml’ configuration.

From the ProcessEngine, you can obtain the various services that contain the workflow/BPM methods.

ProcessEngine and the services objects are thread safe that you can keep a reference to 1 of those for a whole server.

The RepositoryService is probably the first service needed when working with the Camunda engine. This service offers operations for managing and manipulating deployments and process definitions.

33

Scopes

34

Process engine architectureService-oriented API allowing Java applications to interact with the process engine via command-style access pattern.

Features a lightweight execution engine for graph structures (PVM - Process Virtual Machine), a BPMN 2.0 parser which transforms BPMN 2.0 XML files into Java Objects and a set of BPMN Behavior implementations.

Processes asynchronous background work such as Timers or asynchronous continuations in a process.

responsible for persisting process instance state to a relational database which using the MyBatis mapping engine for object relational mapping.

35

Camunda BPM platform architecture

Embedded Process Engine

Shared, container-managed Process Engine

Standalone (Remote) Process Engine Server

Clustering Model

36

Process applicationA Process Application is an ordinary Java Application that uses the Camunda process engine for BPM and workflow functionality. Most such applications will start their own process engine (or use a process engine provided by the runtime container), deploy some BPMN 2.0 process definitions and interact with process instances derived from these definitions.

Process Application Event Listeners

Deployment scenarios

The process engine supports defining 2 types of event listeners: Task Event Listeners and Execution Event Listeners. Task Event listeners allow to react to Task Events (Task are Created, Assigned, Completed). Execution Listeners allow to react to events fired as execution progresses to the diagram: Activities are Started, Ended and Transitions are being taken.

37

History and Audit Event LogThe History Event Stream provides audit information about executed process instances.

DEMOBusiness Process Management (BPM)

39

References

• http://en.wikipedia.org/wiki/Business_process_management

• http://www.what-is-bpm.com/get_started/bpm_methodology.html

• http://docs.camunda.org/7.3/

• http://brsilver.com/bpmn-execution-language/

• http://www.activevos.com/blog/bpel/bpmn-or-bpel-which-is-simpler/2009/11/19/

40