SlideShare a Scribd company logo
jBPM 4 Tom Baeyens  JBoss, Red Hat
Agenda What is jBPM jBPM 4 Goals jBPM 4 Use Cases
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,…
What is jBPM Business Process Management BPM as a discipline BPM as software engineering jBPM  BPM for Java Developer Manage task lists for people Orchestrate POJO code Transactional state machine library Graphical
What is jBPM Your App Your Architecture jBPM
What is jBPM Model process Declare tasks Bind to your  POJO Java code Decorate Asynchronous  continuations Timers
jBPM 4 Goals Improve supportability  Grow to next level of adoption Raise 'ability to execute'  Implementation improvements
Improve Supportability Separation between normal usage from bleeding edge usage public API vs internal packages Userguide vs devguide More stable database / process definition caching Migration between 4.x releases (plan) Automatic JBoss installation No messing with configs and libs Tested configurations
Improve Supportability Continuous integration Ability to reproduce bugs Collect community knowledge in test suite  Ability to keep improving over longer time Longer lifespan of jBPM 4 Config import system  Less error prone Imports for hibernate tx, jta tx, spring tx Allows for default updates in default imports
Grow to Next Level of Adoption Lowering the treshold to get started Simpler API Split normal usage from bleeding edge API based queries Better container and app pluggability Much! improved docs Examples Automatic installations  Remove need for messing on your own Easier configuration abstraction through imports
Increase ‘Ability to Execute' Historical data separated from runtime data Queryable history information Keeps runtime data healthy Improved transaction mappings Proper handling of timers and external triggers More stable database  DB data migration becomes possible Improved job executor
Implementation Improvements Improved pluggable architecture Changed composition to inheritence.   Direct variable access Interfaces for activity implementations   Only exposing the methods that can be invoked. Changed recursion with iteration  Dealing with automatic long loops.
Use Case 1: Rapid Prototyping Model the process Include tasks Generate forms Deploy Show live demo
Use Cases 2: Transactional Script Model the script process Delegate activities  To POJO user code EJBeans SEAM beans Demarcate  Asynchonous continuations Timers Update control flow Hot redeploy Changed logic
Use Cases 3: Pageflow Pages are activities Navigations are transitions Persistence in HTTP session SEAM
jPDL Activities Control flow transition  start  end  end-cancel  end-error  decision  fork  join  super-state sub-process Functional state  sub-process  task  java  script  esb  hql  sql
jPDL Features Lots of functional activities mail, java, esb, task,… Concurrency Event listeners Timers Asynchronous continuations Transactional exception handlers
State Choice
State Choice < process   name = &quot;StateChoice&quot; > < start > < transition   to = &quot;wait for response&quot; /> </ start > < state   name = &quot;wait for response&quot;   > < transition   name = &quot;accept&quot;   to = &quot;submit document&quot;   /> < transition   name = &quot;reject&quot;   to = &quot;try again&quot;   /> </ state > < state   name = &quot;submit document&quot;   /> < state   name = &quot;try again&quot;   /> </ process >
State Choice // create a configuration Configuration configuration =  new  Configuration(); // build a process engine from a configuration ProcessEngine processEngine = configuration.buildProcessEngine(); // Obtain the services from the process engine // ProcessEngine and Services are to be used as singletons.  // ( ie  they are  threadsafe ) RepositoryService  repositoryService  =    processEngine.getRepositoryService(); ExecutionService  executionService  =    processEngine.getExecutionService(); TaskService  taskService  = processEngine.getTaskService();
State Choice repositoryService .createDeployment() .addResourceFromClasspath( &quot;org/jbpm/examples/state/choice/process.jpdl.xml“ ) .deploy();
State Choice ProcessInstance processInstance =  executionService .startProcessInstanceByKey( &quot;StateChoice&quot; ); String executionId = processInstance .findActiveExecutionIn( &quot;wait for response&quot; ) .getId(); processInstance =  executionService .signalExecutionById(executionId,  &quot;accept&quot; ); assertEquals( &quot;submit document&quot; , processInstance.getActivityName());
Designer
Console
Conclusion jBPM provides overview of application External triggers Wait states Business view jBPM adds a layer on top of TX basics Transactional timers Asynchronous messages Integrates with  Standard & Enterprise Java JBoss and other app servers SEAM Spring
Q&A
Process Concurrency

More Related Content

PDF
Load Testing & Apache JMeter
PDF
Revisiting HTTP/2
PDF
Tbp
PPSX
Virtual Assistance Made Easy
PPT
Grand Forks Central's Omnibus 2009
PPT
JBUG.be jBPM4
ODP
JBUG.be Infinispan
ODP
Kris Verlaenen on jBPM5 at JBUG.be
Load Testing & Apache JMeter
Revisiting HTTP/2
Tbp
Virtual Assistance Made Easy
Grand Forks Central's Omnibus 2009
JBUG.be jBPM4
JBUG.be Infinispan
Kris Verlaenen on jBPM5 at JBUG.be

Similar to JBUG.Jbpm.2009 (20)

PPT
jBPM 4 BeJUG Event March 20 2009
PPT
Sneak Preview of jBPM 4 at JAX conference
ODP
jBPM5: Bringing more Power to your Business Processes
ODP
JBossOneDayTalk 2011: Using jBPM to bring more power to your business processes
ODP
jBPM5 - Bringing more power to your business processes
PPT
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
PPTX
QSpiders - Installation and Brief Dose of Load Runner
ODP
EMEA Partner Summit: jBPM 5 - Bringing More Power to BPM
PPT
Seam Introduction
ODP
jBPM5 (Argentina workshop)
ODP
jBPM5 in action - a quickstart for developers
PPTX
performancetestingjmeter-121109061704-phpapp02
PPTX
performancetestingjmeter-121109061704-phpapp02 (1)
PPT
Spring integration with jBPM4
PPT
Internet Explorer 8 for Developers by Christian Thilmany
PPT
Struts,Jsp,Servlet
PPT
Strutsjspservlet
PPT
Strutsjspservlet
ODP
JBoss Brings More Power to your Business Processes (PTJUG)
PPT
20061122 JBoss-World Experiences with JBoss jBPM
jBPM 4 BeJUG Event March 20 2009
Sneak Preview of jBPM 4 at JAX conference
jBPM5: Bringing more Power to your Business Processes
JBossOneDayTalk 2011: Using jBPM to bring more power to your business processes
jBPM5 - Bringing more power to your business processes
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
QSpiders - Installation and Brief Dose of Load Runner
EMEA Partner Summit: jBPM 5 - Bringing More Power to BPM
Seam Introduction
jBPM5 (Argentina workshop)
jBPM5 in action - a quickstart for developers
performancetestingjmeter-121109061704-phpapp02
performancetestingjmeter-121109061704-phpapp02 (1)
Spring integration with jBPM4
Internet Explorer 8 for Developers by Christian Thilmany
Struts,Jsp,Servlet
Strutsjspservlet
Strutsjspservlet
JBoss Brings More Power to your Business Processes (PTJUG)
20061122 JBoss-World Experiences with JBoss jBPM
Ad

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Big Data Technologies - Introduction.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
NewMind AI Monthly Chronicles - July 2025
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Chapter 3 Spatial Domain Image Processing.pdf
Encapsulation theory and applications.pdf
Approach and Philosophy of On baking technology
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation_ Review paper, used for researhc scholars
Big Data Technologies - Introduction.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
The AUB Centre for AI in Media Proposal.docx
Empathic Computing: Creating Shared Understanding
Understanding_Digital_Forensics_Presentation.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Ad

JBUG.Jbpm.2009

  • 1. jBPM 4 Tom Baeyens JBoss, Red Hat
  • 2. Agenda What is jBPM jBPM 4 Goals jBPM 4 Use Cases
  • 3. 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,…
  • 4. What is jBPM Business Process Management BPM as a discipline BPM as software engineering jBPM BPM for Java Developer Manage task lists for people Orchestrate POJO code Transactional state machine library Graphical
  • 5. What is jBPM Your App Your Architecture jBPM
  • 6. What is jBPM Model process Declare tasks Bind to your POJO Java code Decorate Asynchronous continuations Timers
  • 7. jBPM 4 Goals Improve supportability Grow to next level of adoption Raise 'ability to execute' Implementation improvements
  • 8. Improve Supportability Separation between normal usage from bleeding edge usage public API vs internal packages Userguide vs devguide More stable database / process definition caching Migration between 4.x releases (plan) Automatic JBoss installation No messing with configs and libs Tested configurations
  • 9. Improve Supportability Continuous integration Ability to reproduce bugs Collect community knowledge in test suite Ability to keep improving over longer time Longer lifespan of jBPM 4 Config import system Less error prone Imports for hibernate tx, jta tx, spring tx Allows for default updates in default imports
  • 10. Grow to Next Level of Adoption Lowering the treshold to get started Simpler API Split normal usage from bleeding edge API based queries Better container and app pluggability Much! improved docs Examples Automatic installations Remove need for messing on your own Easier configuration abstraction through imports
  • 11. Increase ‘Ability to Execute' Historical data separated from runtime data Queryable history information Keeps runtime data healthy Improved transaction mappings Proper handling of timers and external triggers More stable database DB data migration becomes possible Improved job executor
  • 12. Implementation Improvements Improved pluggable architecture Changed composition to inheritence.  Direct variable access Interfaces for activity implementations  Only exposing the methods that can be invoked. Changed recursion with iteration Dealing with automatic long loops.
  • 13. Use Case 1: Rapid Prototyping Model the process Include tasks Generate forms Deploy Show live demo
  • 14. Use Cases 2: Transactional Script Model the script process Delegate activities To POJO user code EJBeans SEAM beans Demarcate Asynchonous continuations Timers Update control flow Hot redeploy Changed logic
  • 15. Use Cases 3: Pageflow Pages are activities Navigations are transitions Persistence in HTTP session SEAM
  • 16. jPDL Activities Control flow transition start end end-cancel end-error decision fork join super-state sub-process Functional state sub-process task java script esb hql sql
  • 17. jPDL Features Lots of functional activities mail, java, esb, task,… Concurrency Event listeners Timers Asynchronous continuations Transactional exception handlers
  • 19. State Choice < process name = &quot;StateChoice&quot; > < start > < transition to = &quot;wait for response&quot; /> </ start > < state name = &quot;wait for response&quot; > < transition name = &quot;accept&quot; to = &quot;submit document&quot; /> < transition name = &quot;reject&quot; to = &quot;try again&quot; /> </ state > < state name = &quot;submit document&quot; /> < state name = &quot;try again&quot; /> </ process >
  • 20. State Choice // create a configuration Configuration configuration = new Configuration(); // build a process engine from a configuration ProcessEngine processEngine = configuration.buildProcessEngine(); // Obtain the services from the process engine // ProcessEngine and Services are to be used as singletons. // ( ie they are threadsafe ) RepositoryService repositoryService = processEngine.getRepositoryService(); ExecutionService executionService = processEngine.getExecutionService(); TaskService taskService = processEngine.getTaskService();
  • 21. State Choice repositoryService .createDeployment() .addResourceFromClasspath( &quot;org/jbpm/examples/state/choice/process.jpdl.xml“ ) .deploy();
  • 22. State Choice ProcessInstance processInstance = executionService .startProcessInstanceByKey( &quot;StateChoice&quot; ); String executionId = processInstance .findActiveExecutionIn( &quot;wait for response&quot; ) .getId(); processInstance = executionService .signalExecutionById(executionId, &quot;accept&quot; ); assertEquals( &quot;submit document&quot; , processInstance.getActivityName());
  • 25. Conclusion jBPM provides overview of application External triggers Wait states Business view jBPM adds a layer on top of TX basics Transactional timers Asynchronous messages Integrates with Standard & Enterprise Java JBoss and other app servers SEAM Spring
  • 26. Q&A

Editor's Notes

  • #21: This shows the client API Indicate the transactions
  • #22: This shows the client API Indicate the transactions
  • #23: This shows the client API Indicate the transactions