Upload
viet-nguyen
View
133
Download
10
Tags:
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
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
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
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
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
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.
29
Admin Admin is an application that allows you to configure users and groups via the engine's Identity Service.
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.
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.
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