SlideShare a Scribd company logo
1 of 30
Download to read offline
Executing BPMN 2.0 with jBPM 3
or (at your option) any later version
Falko Menge
JUDCon 2010
Berlin
• 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
Overview



           BPMN

           Mapping BPMN to jPDL

           Abstracting the Engine
BPMN?
BPMN 2.0 – An Example
BPMN 2.0 Status




                  …
Why does everybody want BPMN 2.0?




         <XML>     Diagram          Execution   <XML>
                 Interchange        Semantics
BPMN 1.x: Just Symbols




                         Notation
BPMN 2.0: Model and Notation


     Execution
                        Examples
     Semantics




       Model            Notation




                       XML Diagram
    XML          XMI
                       Interchange
          XSLT
Desired Architecture with BPMN 2.0
What does that mean as well?
Where are those
BPMN process engines?
Currently, jBPM 3 is used
Isn‘t there a gap?




                     ?
Goal: Forward Engineering




                            Mapping



                             Or even
                            Roundtrip?

       Process                           Process
       Analyst                           Engineer
Mapping Overview (1/2)
Mapping Overview (2/2)
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
Patterns

  Pool extraction
  Transform custom elements
  into standard language constructs
  Custom task service
  Localization
What about my Java code?
Process Engine Abstraction Layer (PEAL)
                                             ESB


                             Application              Services




                                           API

        BPMN                                     Binding
        Modell
                   Mapping

                                     Process
                                     Engine

                                                 Binding

                                    Connectivity



                 Services                                  Application

                                       ESB
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)
Data Object Abstraction
                                                                       API
                    DataObject                              «interface»
                                                         DataObjectAware
                                                   +getPersistentDataObject()
               +getValue()                         +setPersistentDataObject()
               +setValue()                         +getTransientDataObject()
                                            1
                                                   +setTransientDataObject()
                                                   +...()


 PersistentDataObject        TransientDataObject
                                                                                  ExecutionContext
                                                                                                             ExecutionContext
                                                                                  DataObjectAware
 +getValue()
  getValue()                 +getValue()
                              getValue()
 +setValue()                 +setValue()
                                                                                                         1

                                                                                   ContextInstace
                                                                                                             ContextInstance
                                                                                  DataObjectAware

                                                                                                         1
         MyPersistentDataObject
     -NAME : String = "MyVariable"                                                ProcessInstance
                                                                                                             ProcessInstance
                                                                                  DataObjectAware

                                                                                                         1

Project specific DataObjects                                                    Binding   (e.g.jBPM 3)   jBPM 3
Abstraction of Service Adapters
jBPM 3




                                                    API




Binding (e.g. jBPM 3)




                        Project specific adaptors
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
Process Engine Abstraction Layer (PEAL)
                                             ESB


                             Application              Services




                                           API

        BPMN                                     Binding
        Modell
                   Mapping

                                     Process
                                     Engine

                                                 Binding

                                    Connectivity



                 Services                                  Application

                                       ESB
Thank you for your attention – Any questions?
camunda services GmbH
 Thank You!                                                           Zossener Str. 55-58
                                                                      1096 Berlin
                                                                          1
                                                                      Telefon: +49 30 664 0409-00
                                                                      Telefax: +49 30 664 0409-29
                                                                      Email: info@camunda.com




                                                 Falko Menge
                         Consultant, trainer and software developer
                                      falko.menge@camunda.com


JUDCon
Berlin, 8 October 2010

                                                                      The BPM Blog
                                                                      www.bpm-guide.de

More Related Content

Similar to Executing bpmn 2.0 with j bpm 3 or (at your option) any later version

Overview Of .Net 4.0 Sanjay Vyas
Overview Of .Net 4.0   Sanjay VyasOverview Of .Net 4.0   Sanjay Vyas
Overview Of .Net 4.0 Sanjay Vyas
rsnarayanan
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
nobby
 
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
Jerry Chou
 
End-to-end Model-driven Development of Applications with Eclipse using the ...
End-to-end Model-driven Development of Applications with Eclipse using  the ...End-to-end Model-driven Development of Applications with Eclipse using  the ...
End-to-end Model-driven Development of Applications with Eclipse using the ...
emanuelemolteni
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack Implementation
Mert Çalışkan
 
ASP.NET MVC as the next step in web development
ASP.NET MVC as the next step in web developmentASP.NET MVC as the next step in web development
ASP.NET MVC as the next step in web development
Volodymyr Voytyshyn
 
Syllabus PS03CINT05 detailing
Syllabus PS03CINT05 detailingSyllabus PS03CINT05 detailing
Syllabus PS03CINT05 detailing
OPENLANE
 

Similar to Executing bpmn 2.0 with j bpm 3 or (at your option) any later version (20)

Getting started with entity framework
Getting started with entity framework Getting started with entity framework
Getting started with entity framework
 
Presenter manual RIA technology (specially for summer interns)
Presenter manual RIA technology (specially for summer interns)Presenter manual RIA technology (specially for summer interns)
Presenter manual RIA technology (specially for summer interns)
 
Scalable Services For Digital Preservation Ross King
Scalable Services For Digital Preservation Ross KingScalable Services For Digital Preservation Ross King
Scalable Services For Digital Preservation Ross King
 
Bringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJSBringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJS
 
DDSUG 2009 Back-porting DSpace 2.0 Services to DSpace 1.6.0
DDSUG 2009 Back-porting DSpace 2.0 Services to DSpace 1.6.0DDSUG 2009 Back-porting DSpace 2.0 Services to DSpace 1.6.0
DDSUG 2009 Back-porting DSpace 2.0 Services to DSpace 1.6.0
 
Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)
 
Overview Of .Net 4.0 Sanjay Vyas
Overview Of .Net 4.0   Sanjay VyasOverview Of .Net 4.0   Sanjay Vyas
Overview Of .Net 4.0 Sanjay Vyas
 
04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop
 
Sps bris - Customising Office 365 on the Client side
Sps bris - Customising Office 365 on the Client sideSps bris - Customising Office 365 on the Client side
Sps bris - Customising Office 365 on the Client side
 
Rest API and Client OM for Developer
Rest API and Client OM for DeveloperRest API and Client OM for Developer
Rest API and Client OM for Developer
 
Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...
Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...
Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
 
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
[PyCon 2014 APAC] How to integrate python into a scala stack to build realtim...
 
End-to-end Model-driven Development of Applications with Eclipse using the ...
End-to-end Model-driven Development of Applications with Eclipse using  the ...End-to-end Model-driven Development of Applications with Eclipse using  the ...
End-to-end Model-driven Development of Applications with Eclipse using the ...
 
Spring 3 MVC CodeMash 2009
Spring 3 MVC   CodeMash 2009Spring 3 MVC   CodeMash 2009
Spring 3 MVC CodeMash 2009
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack Implementation
 
ASP.NET MVC as the next step in web development
ASP.NET MVC as the next step in web developmentASP.NET MVC as the next step in web development
ASP.NET MVC as the next step in web development
 
Syllabus PS03CINT05 detailing
Syllabus PS03CINT05 detailingSyllabus PS03CINT05 detailing
Syllabus PS03CINT05 detailing
 
Applying EF Code First at Your Job
Applying EF Code First at Your JobApplying EF Code First at Your Job
Applying EF Code First at Your Job
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte Frühling
 

More from camunda services GmbH

Camunda BPM 7.13 Webinar
Camunda BPM 7.13 WebinarCamunda BPM 7.13 Webinar
Camunda BPM 7.13 Webinar
camunda services GmbH
 

More from camunda services GmbH (20)

Using Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through OperatorsUsing Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through Operators
 
Predictive Process Monitoring in Camunda
Predictive Process Monitoring in CamundaPredictive Process Monitoring in Camunda
Predictive Process Monitoring in Camunda
 
Camunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process AutomationCamunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process Automation
 
Tips on how to build Camunda Run for production
Tips on how to build Camunda Run for productionTips on how to build Camunda Run for production
Tips on how to build Camunda Run for production
 
Process Driven Customer Interaction
Process Driven Customer InteractionProcess Driven Customer Interaction
Process Driven Customer Interaction
 
Exploring Automation in Government
Exploring Automation in GovernmentExploring Automation in Government
Exploring Automation in Government
 
The Pulse of Process Automation
The Pulse of Process AutomationThe Pulse of Process Automation
The Pulse of Process Automation
 
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in UnternehmenBlitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
 
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
 
Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...
 
Camunda BPM 7.13 Webinar
Camunda BPM 7.13 WebinarCamunda BPM 7.13 Webinar
Camunda BPM 7.13 Webinar
 
[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0
 
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
 
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
 
Process Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG BankwareProcess Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG Bankware
 
Process Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss LifeProcess Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss Life
 
Process Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-ITProcess Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-IT
 
Process Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, RaiffeisenProcess Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, Raiffeisen
 
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AGProcess Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
 
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

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
  • 6.
  • 7. BPMN 2.0 – An Example
  • 9. Why does everybody want BPMN 2.0? <XML> Diagram Execution <XML> Interchange Semantics
  • 10. BPMN 1.x: Just Symbols Notation
  • 11. BPMN 2.0: Model and Notation Execution Examples Semantics Model Notation XML Diagram XML XMI Interchange XSLT
  • 13. What does that mean as well?
  • 14. Where are those BPMN process engines?
  • 15. Currently, jBPM 3 is used
  • 16. Isn‘t there a gap? ?
  • 17. Goal: Forward Engineering Mapping Or even Roundtrip? Process Process Analyst Engineer
  • 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
  • 22. What about my Java code?
  • 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)
  • 25. Data Object Abstraction API DataObject «interface» DataObjectAware +getPersistentDataObject() +getValue() +setPersistentDataObject() +setValue() +getTransientDataObject() 1 +setTransientDataObject() +...() PersistentDataObject TransientDataObject ExecutionContext ExecutionContext DataObjectAware +getValue() getValue() +getValue() getValue() +setValue() +setValue() 1 ContextInstace ContextInstance DataObjectAware 1 MyPersistentDataObject -NAME : String = "MyVariable" ProcessInstance ProcessInstance DataObjectAware 1 Project specific DataObjects Binding (e.g.jBPM 3) jBPM 3
  • 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
  • 29. Thank you for your attention – Any questions?
  • 30. camunda services GmbH Thank You! Zossener Str. 55-58 1096 Berlin 1 Telefon: +49 30 664 0409-00 Telefax: +49 30 664 0409-29 Email: info@camunda.com Falko Menge Consultant, trainer and software developer falko.menge@camunda.com JUDCon Berlin, 8 October 2010 The BPM Blog www.bpm-guide.de