JBoss jBPM Business Process Management BPM as a discipline BPM as software engineering Embeddability Modelling jBPM Key Values Status & Roadmap
Tom Baeyens Lead and founder of JBoss jBPM Consulting for numerous BPM projects Bringing BPM mainstream Articles InfoQ, TSS, Dzone, OnJava,… Blogs http://processdevelopments.blogspot.com/ Talks JavaOne, JBossWorld, JAOO, TSS,…
BPM as a Discipline Management discipline “They all seem very busy” Non technical People to people What, not how Can be vague Unrelated to software architecture Often include diagrams
BPM as Software Engineering Aspect of software expressed as a graph Specifies execution flow BPMS ‘runs’ process executions It’s software DSL Execute on one system Central dispatcher Multiple participants Wait states
Traditional BPM Vendors Stack Integrators Oracle, IBM, SAP BPEL is integration technology Atomic operation is WSDL service invocations Service orchestration as solution for BPM ?    Lost of tooling required to hide clumsy basics Pure plays Top down    Automagical BPM Suite has its own software architecture    Doesn’t embed within user’s software architecture  Monolithic server Hard to integrate
jBPM ! Bottom Up No magic Server or embedded Not monolithic Just a library Freedom Use the most appropriate tech Java, groovy, web services, SQL Java excellent dispatcher technology
jBPM’s Modelling Advantage Typical user story Order entry Business person goes “ Click on the button in the screen” “ Clerk gets an email” “ Escalate if it takes too long” Developer goes GWT gives me browser  RESTfull webservice communication with server SEAM can invoke my ejb 3 beans EJB 3 beans have required transaction demarcation SEAM integrates with my business process layer Sending email must be done asynchronous
jBPM’s Modelling Advantage No forced link between graph and transaction Embeddable Flexible transaction demarcation Hidden event listeners
jBPM’s Modelling Advantage Your App Your Architecture jBPM Business Analyst Developer
jBPM’s Modelling Advantage Your App Your Architecture jBPM Business Analyst Developer
jBPM’s Embeddable Advantage Structure your software Software is a combination of  Process Domain model UI Process inside your architecture Binds to user’s transaction (JEE, JSE, SEAM, Spring,…) Stores data in user’s database Links to domain model objects Test inside user’s test suite
jBPM’s Embeddable Advantage E.g. plain webapp Spring, hibernate Deployed on Tomcat jBPM has Job executor Transactional timers Asynchronous continuations Transaction 1 Transaction 2
jBPM’s Embeddable Advantage Works with plain Java code High level asynchronous transactional modelling Standard Java  thanks to jobexecutor Enterprise Java  without deployment descriptor hell Seam Spring
jBPM’s Use Cases Orchestrating Human Tasks Transactional Script EJB orchestration Service orchestration Pageflow
< process   name = &quot;TaskCandidateGroups&quot; > < start > < transition   to = &quot;review&quot;   /> </ start > < task   name = &quot;review&quot;   candidate-users = &quot;johndoe, joesmoe&quot; > < transition   to = &quot;wait&quot;   /> </ task > < state   name = &quot;wait&quot;  /> </ process >
deployJpdlResource( “… /process.jpdl.xml“ ); Execution execution = executionService .startProcessInstanceByKey( &quot;TaskCandidates&quot; ); String executionId = execution.getId(); List<Task> taskList =  taskService.getGroupTaskList( &quot;johndoe&quot; , 0, 10); assertEquals(1, taskList.size()); Task task = taskList.get(0); assertEquals( &quot;review&quot; , task.getName()); taskList =  taskService.getGroupTaskList( &quot;joesmoe&quot; , 0, 10); assertEquals(1, taskList.size()); task = taskList.get(0); assertEquals( &quot;review&quot; , task.getName());
Multiple Process Languages
jBPM Key Business Values Step away from  Business analysts can work with our tool :-) Real bridge Based on good communication Leaves tech things with developers Creates a common language First generally applicable solution for  ‘BPM as a discipline’
jBPM Key Technical Values No hokus pokus Take away the TX plumbing Structure software Get overview beyond transactions Learn 1 workflow/BPM technology Leverage that knowledge investment it in all your projects The one-stop-shop argument Simple & lightweight
jBPM Evolution jBPM 1 EJB state machine jBPM 2 Std Java Embeddable  Hibernate state machine jBPM 3 First Activity Pluggability First Multiple Languages First Enterprise Embeddability jBPM 4 Activity Pluggability API Command Based Services  Multiple Languages Many Execution modes DB Partitioning DB Evolution Full Embeddability Product Project
Current Status jBPM 3.2.6  Stable Productization being finished jBPM 4.0.0.Alpha2 is released jBPM 4.0.0.GA planned for July First scope for jBPM 4 is jBPM 3 functionality Then Improved node pluggability (easy extension) More integrated language coverage
jBPM Roadmap jBPM 4.0.0.Alpha1 released on time Deadlines fixed 4.0.0.GA minimal scope jBPM 3 1 January 1 March 1 May 1 July 1 September 1 April 1 June 4.0.0.Alpha1 4.0.0.Alpha2 4.0.0.Beta1 4.0.0.Beta2 4.0.0.CR1 4.0.0.GA
jBPM Improvements QA : From Community To Our Lab
jBPM Improvements Documentation User guide Developer guide API Basic usage Stable Supported Advanced pluggability Separated Easier to get started
jBPM Improvements DB evolution More flexibility inbetween minor releases Process language partitioning Simplifications Performance improvements
Designer
Console
Console
Q&A
Execution Modes
Execution Modes Processes Executions History JVM BPM Engine (1) Persistent  Dynamic
Execution Modes Executions History JVM BPM Engine Process Resources (2) Persistent  Process resource
Execution Modes Executions History JVM BPM Engine Process Resources (3) Persistent Embedded Referenced INSURANCE_CLAIMS ID … STATE …
Execution Modes History JVM BPM Engine Process Resources (4) Persistent Embedded Included “ review” INSURANCE_CLAIMS ID … STATE …
Execution Modes History JVM BPM Engine Process Resources Execution Objects (5) Memory With Persistent History
Execution Modes JVM BPM Engine Process Resources Execution Objects (6) Memory
Process Concurrency

jBPM 4 BeJUG Event March 20 2009

  • 1.
    JBoss jBPM BusinessProcess Management BPM as a discipline BPM as software engineering Embeddability Modelling jBPM Key Values Status & Roadmap
  • 2.
    Tom Baeyens Leadand founder of JBoss jBPM Consulting for numerous BPM projects Bringing BPM mainstream Articles InfoQ, TSS, Dzone, OnJava,… Blogs http://processdevelopments.blogspot.com/ Talks JavaOne, JBossWorld, JAOO, TSS,…
  • 3.
    BPM as aDiscipline Management discipline “They all seem very busy” Non technical People to people What, not how Can be vague Unrelated to software architecture Often include diagrams
  • 4.
    BPM as SoftwareEngineering Aspect of software expressed as a graph Specifies execution flow BPMS ‘runs’ process executions It’s software DSL Execute on one system Central dispatcher Multiple participants Wait states
  • 5.
    Traditional BPM VendorsStack Integrators Oracle, IBM, SAP BPEL is integration technology Atomic operation is WSDL service invocations Service orchestration as solution for BPM ?  Lost of tooling required to hide clumsy basics Pure plays Top down  Automagical BPM Suite has its own software architecture  Doesn’t embed within user’s software architecture Monolithic server Hard to integrate
  • 6.
    jBPM ! BottomUp No magic Server or embedded Not monolithic Just a library Freedom Use the most appropriate tech Java, groovy, web services, SQL Java excellent dispatcher technology
  • 7.
    jBPM’s Modelling AdvantageTypical user story Order entry Business person goes “ Click on the button in the screen” “ Clerk gets an email” “ Escalate if it takes too long” Developer goes GWT gives me browser RESTfull webservice communication with server SEAM can invoke my ejb 3 beans EJB 3 beans have required transaction demarcation SEAM integrates with my business process layer Sending email must be done asynchronous
  • 8.
    jBPM’s Modelling AdvantageNo forced link between graph and transaction Embeddable Flexible transaction demarcation Hidden event listeners
  • 9.
    jBPM’s Modelling AdvantageYour App Your Architecture jBPM Business Analyst Developer
  • 10.
    jBPM’s Modelling AdvantageYour App Your Architecture jBPM Business Analyst Developer
  • 11.
    jBPM’s Embeddable AdvantageStructure your software Software is a combination of Process Domain model UI Process inside your architecture Binds to user’s transaction (JEE, JSE, SEAM, Spring,…) Stores data in user’s database Links to domain model objects Test inside user’s test suite
  • 12.
    jBPM’s Embeddable AdvantageE.g. plain webapp Spring, hibernate Deployed on Tomcat jBPM has Job executor Transactional timers Asynchronous continuations Transaction 1 Transaction 2
  • 13.
    jBPM’s Embeddable AdvantageWorks with plain Java code High level asynchronous transactional modelling Standard Java thanks to jobexecutor Enterprise Java without deployment descriptor hell Seam Spring
  • 14.
    jBPM’s Use CasesOrchestrating Human Tasks Transactional Script EJB orchestration Service orchestration Pageflow
  • 15.
    < process name = &quot;TaskCandidateGroups&quot; > < start > < transition to = &quot;review&quot; /> </ start > < task name = &quot;review&quot; candidate-users = &quot;johndoe, joesmoe&quot; > < transition to = &quot;wait&quot; /> </ task > < state name = &quot;wait&quot; /> </ process >
  • 16.
    deployJpdlResource( “… /process.jpdl.xml“); Execution execution = executionService .startProcessInstanceByKey( &quot;TaskCandidates&quot; ); String executionId = execution.getId(); List<Task> taskList = taskService.getGroupTaskList( &quot;johndoe&quot; , 0, 10); assertEquals(1, taskList.size()); Task task = taskList.get(0); assertEquals( &quot;review&quot; , task.getName()); taskList = taskService.getGroupTaskList( &quot;joesmoe&quot; , 0, 10); assertEquals(1, taskList.size()); task = taskList.get(0); assertEquals( &quot;review&quot; , task.getName());
  • 17.
  • 18.
    jBPM Key BusinessValues Step away from Business analysts can work with our tool :-) Real bridge Based on good communication Leaves tech things with developers Creates a common language First generally applicable solution for ‘BPM as a discipline’
  • 19.
    jBPM Key TechnicalValues No hokus pokus Take away the TX plumbing Structure software Get overview beyond transactions Learn 1 workflow/BPM technology Leverage that knowledge investment it in all your projects The one-stop-shop argument Simple & lightweight
  • 20.
    jBPM Evolution jBPM1 EJB state machine jBPM 2 Std Java Embeddable Hibernate state machine jBPM 3 First Activity Pluggability First Multiple Languages First Enterprise Embeddability jBPM 4 Activity Pluggability API Command Based Services Multiple Languages Many Execution modes DB Partitioning DB Evolution Full Embeddability Product Project
  • 21.
    Current Status jBPM3.2.6 Stable Productization being finished jBPM 4.0.0.Alpha2 is released jBPM 4.0.0.GA planned for July First scope for jBPM 4 is jBPM 3 functionality Then Improved node pluggability (easy extension) More integrated language coverage
  • 22.
    jBPM Roadmap jBPM4.0.0.Alpha1 released on time Deadlines fixed 4.0.0.GA minimal scope jBPM 3 1 January 1 March 1 May 1 July 1 September 1 April 1 June 4.0.0.Alpha1 4.0.0.Alpha2 4.0.0.Beta1 4.0.0.Beta2 4.0.0.CR1 4.0.0.GA
  • 23.
    jBPM Improvements QA: From Community To Our Lab
  • 24.
    jBPM Improvements DocumentationUser guide Developer guide API Basic usage Stable Supported Advanced pluggability Separated Easier to get started
  • 25.
    jBPM Improvements DBevolution More flexibility inbetween minor releases Process language partitioning Simplifications Performance improvements
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
    Execution Modes ProcessesExecutions History JVM BPM Engine (1) Persistent Dynamic
  • 32.
    Execution Modes ExecutionsHistory JVM BPM Engine Process Resources (2) Persistent Process resource
  • 33.
    Execution Modes ExecutionsHistory JVM BPM Engine Process Resources (3) Persistent Embedded Referenced INSURANCE_CLAIMS ID … STATE …
  • 34.
    Execution Modes HistoryJVM BPM Engine Process Resources (4) Persistent Embedded Included “ review” INSURANCE_CLAIMS ID … STATE …
  • 35.
    Execution Modes HistoryJVM BPM Engine Process Resources Execution Objects (5) Memory With Persistent History
  • 36.
    Execution Modes JVMBPM Engine Process Resources Execution Objects (6) Memory
  • 37.