Executing bpmn 2.0 with j bpm 3 or (at your option) any later version
1.
2. Executing BPMN 2.0 with jBPM 3
or (at your option) any later version
Falko Menge
JUDCon 2010
Berlin
3. • Consultant, trainer & coach for
jBPM 3 & 4, Drools, BPMN Falko Menge
• Developer of several falko.menge@camunda.com
Open Source projects
(Activiti, Oryx Editor, WSDL2XForms,
InstantSVC, …)
• Member of BPMN specification team
at OMG
• Co-author of „BPMN 2.0 by Example“
Areas of Interest:
BPM, SOA & EAI with Open Standards
and Open Source Software
Process Execution
(BPMN 2.0, jPDL, BPEL, XPDL, …)
Enterprise Applications with Java EE
4. Overview
BPMN
Mapping BPMN to jPDL
Abstracting the Engine
20. Does that mean there are different models?
„Call FraudService.
Fraud- checkFraud(customer)
Service“
??
BPMN Repository Developer Repository in
(Signavio) Repository (SVN) Process Engine
Model in
Developer
Business Model in
Model Execution
Logical
Model
21. Patterns
Pool extraction
Transform custom elements
into standard language constructs
Custom task service
Localization
23. Process Engine Abstraction Layer (PEAL)
ESB
Application Services
API
BPMN Binding
Modell
Mapping
Process
Engine
Binding
Connectivity
Services Application
ESB
24. Example Code with PEAL
UserTask task3 = taskService
.createTaskQuery()
.processInstanceId(pi.getId())
.potentialOwner("mike")
.uniqueResult();
assertEquals("Specify Advertising strategy",
task3.getActivityName());
variables = new HashMap<String, Object>();
variables.put("website_name", "SetpStone");
task3.complete(variables);
pi.reload();
assertTrue(pi.isEnded());
Changes to the jbpm 4 API are minimal (but can be bound to
jbpm 3 and other engines as well)
26. Abstraction of Service Adapters
jBPM 3
API
Binding (e.g. jBPM 3)
Project specific adaptors
27. Why so complicated? Example with asynchronous Services
<<Node>>
Invoke ESB Service
EJB-Call
TX 1: create request without sync.
jBPM job
result
TX 2: call EJB
ESB
TX 3: process response Signal from JbpmCallback
<<Node>>
Invoke EJB
TX 1: create request EJB-Call with
jBPM job sync. result
TX 2: call EJB
jBPM job
TX 3: process response
jBPM Process
28. Process Engine Abstraction Layer (PEAL)
ESB
Application Services
API
BPMN Binding
Modell
Mapping
Process
Engine
Binding
Connectivity
Services Application
ESB