SlideShare a Scribd company logo
jBPM 4

 Tom Baeyens
JBoss, Red Hat



                 1
Agenda
• What is jBPM
• jBPM 4 Goals
• jBPM 4 Use Cases




                              2
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,…
                                                 3
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
                                            4
What is jBPM

    Your App
Your Architecture

         jBPM




                    5
What is jBPM
• Model process
  – Declare tasks
  – Bind to your
    POJO Java code
• Decorate
  – Asynchronous
    continuations
  – Timers


                                   6
jBPM 4 Goals
•   Improve supportability
•   Grow to next level of adoption
•   Raise 'ability to execute'
•   Implementation improvements




                                     7
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
                                                      8
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

                                                    9
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   10
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

                                                    11
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.



                                                      12
Use Case 1: Rapid Prototyping
•   Model the process
•   Include tasks
•   Generate forms
•   Deploy
•   Show live demo




                                      13
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
                                            14
Use Cases 3: Pageflow
•   Pages are activities
•   Navigations are transitions
•   Persistence in HTTP session
•   SEAM




                                    15
jPDL Activities
• Control flow           • Functional
   transition              state
   start                   sub-process
   end                     task
   end-cancel              java
   end-error               script
   decision                esb
   fork                    hql
   join                    sql
   super-state
   sub-process
                                         16
jPDL Features
• Lots of functional activities
    – mail, java, esb, task,…
•   Concurrency
•   Event listeners
•   Timers
•   Asynchronous continuations
•   Transactional exception handlers


                                       17
State Choice




               18
State Choice
<process name="StateChoice">

  <start>
    <transition to="wait for response"/>
  </start>

  <state name="wait for response" >
    <transition name="accept" to="submit document" />
    <transition name="reject" to="try again" />
  </state>

  <state name="submit document" />
  <state name="try again" />

</process>
                                                        19
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();
                                                              20
State Choice
repositoryService.createDeployment()
  .addResourceFromClasspath(
     "org/jbpm/examples/state/choice/process.jpdl.xml“)
  .deploy();




                                                          21
State Choice
ProcessInstance processInstance = executionService
  .startProcessInstanceByKey("StateChoice");

String executionId = processInstance
  .findActiveExecutionIn("wait for response")
  .getId();

processInstance = executionService
  .signalExecutionById(executionId, "accept");

assertEquals("submit document",
             processInstance.getActivityName());




                                                     22
Designer




           23
Console




          24
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
                                          25
Q&A




      26
Process Concurrency




                      27

More Related Content

PPTX
Speed up your XPages Application performance
PDF
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
PPTX
Introduction to Business Processes 3.7
PPT
XPages Performance
PDF
Ad109 - XPages Performance and Scalability
PDF
What's in the Box?: An Intro to HFM System Utilities
PPTX
Life in the fast lane. Full speed XPages
PPT
Life In The FastLane: Full Speed XPages
Speed up your XPages Application performance
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
Introduction to Business Processes 3.7
XPages Performance
Ad109 - XPages Performance and Scalability
What's in the Box?: An Intro to HFM System Utilities
Life in the fast lane. Full speed XPages
Life In The FastLane: Full Speed XPages

What's hot (20)

PDF
EAP6 performance Tuning
PDF
Analyzing OTM Logs and Troubleshooting
PDF
Devoxx 2013, WildFly BOF
PPTX
Veeam backup Oracle DB in a VM is easy and reliable way to protect data
PDF
Gearman - Northeast PHP 2012
PPT
Collaborate 2011-tuning-ebusiness-416502
PDF
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
PDF
Performance Tuning Best Practices
PPTX
SQL Server Query Optimization, Execution and Debugging Query Performance
PDF
DB2 10 Smarter Database - IBM Tech Forum
PDF
Got Problems? Let's Do a Health Check
PDF
BP103 - Got Problems? Let's Do a Health Check
PPTX
Handling Massive Writes
PPT
MySQL Performance Tuning - GNUnify 2010
PDF
Introduction to Role Based Administration in WildFly 8
PDF
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
PPT
Sql Server Performance Tuning
PDF
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
PDF
JBPM Past Present Future
EAP6 performance Tuning
Analyzing OTM Logs and Troubleshooting
Devoxx 2013, WildFly BOF
Veeam backup Oracle DB in a VM is easy and reliable way to protect data
Gearman - Northeast PHP 2012
Collaborate 2011-tuning-ebusiness-416502
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
Performance Tuning Best Practices
SQL Server Query Optimization, Execution and Debugging Query Performance
DB2 10 Smarter Database - IBM Tech Forum
Got Problems? Let's Do a Health Check
BP103 - Got Problems? Let's Do a Health Check
Handling Massive Writes
MySQL Performance Tuning - GNUnify 2010
Introduction to Role Based Administration in WildFly 8
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Sql Server Performance Tuning
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
JBPM Past Present Future
Ad

Viewers also liked (7)

PPT
Grand Forks Central's Omnibus 2009
PPT
JBUG.Jbpm.2009
PPSX
Virtual Assistance Made Easy
ODP
JBUG.be Infinispan
ODP
Kris Verlaenen on jBPM5 at JBUG.be
PPT
Cultivating Creativity to Cut Competition
KEY
Kabir Khan on AS6 at JBUG.be
Grand Forks Central's Omnibus 2009
JBUG.Jbpm.2009
Virtual Assistance Made Easy
JBUG.be Infinispan
Kris Verlaenen on jBPM5 at JBUG.be
Cultivating Creativity to Cut Competition
Kabir Khan on AS6 at JBUG.be
Ad

Similar to JBUG.be jBPM4 (20)

PDF
Devoxx 2009 Conference session Jbpm4 In Action
PPT
20061122 JBoss-World Experiences with JBoss jBPM
ODP
jBPM, open source BPM
PPTX
Alfresco Devcon 2010: A new kind of BPM with Activiti
PPTX
PPT
jBPM 4 BeJUG Event March 20 2009
PPT
jBPM At Riviera JUG
ODP
Business processes, business rules, complex event processing, the JBoss way
PDF
jBPM Overview & Alfresco Workflows
PPT
Sneak Preview of jBPM 4 at JAX conference
PPTX
Presentation jBPM Community Day 2009 - First steps with jBPM4
PPTX
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
ODP
JBug.be The future of (j)BPM 2010-06-03
PPTX
Alfresco Devcon 2010: Introduction to Activiti BPM
PPT
jBPM at JBossWorld Chicago 2009
PDF
JBoss jBPM, the future is now for all your Business Processes
PDF
JBoss jBPM, the future is now for all your Business Processes by Eric Schabell
PPTX
A new kind of BPM with Activiti
PPT
J2EE Batch Processing
PDF
Drools Happenings 7.0 - Devnation 2016
Devoxx 2009 Conference session Jbpm4 In Action
20061122 JBoss-World Experiences with JBoss jBPM
jBPM, open source BPM
Alfresco Devcon 2010: A new kind of BPM with Activiti
jBPM 4 BeJUG Event March 20 2009
jBPM At Riviera JUG
Business processes, business rules, complex event processing, the JBoss way
jBPM Overview & Alfresco Workflows
Sneak Preview of jBPM 4 at JAX conference
Presentation jBPM Community Day 2009 - First steps with jBPM4
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
JBug.be The future of (j)BPM 2010-06-03
Alfresco Devcon 2010: Introduction to Activiti BPM
jBPM at JBossWorld Chicago 2009
JBoss jBPM, the future is now for all your Business Processes
JBoss jBPM, the future is now for all your Business Processes by Eric Schabell
A new kind of BPM with Activiti
J2EE Batch Processing
Drools Happenings 7.0 - Devnation 2016

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Encapsulation theory and applications.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Electronic commerce courselecture one. Pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Modernizing your data center with Dell and AMD
PPTX
Cloud computing and distributed systems.
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
A Presentation on Artificial Intelligence
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
cuic standard and advanced reporting.pdf
Understanding_Digital_Forensics_Presentation.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Building Integrated photovoltaic BIPV_UPV.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Encapsulation theory and applications.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
Electronic commerce courselecture one. Pdf
Empathic Computing: Creating Shared Understanding
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Modernizing your data center with Dell and AMD
Cloud computing and distributed systems.
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
A Presentation on Artificial Intelligence
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
cuic standard and advanced reporting.pdf

JBUG.be jBPM4

  • 1. jBPM 4 Tom Baeyens JBoss, Red Hat 1
  • 2. Agenda • What is jBPM • jBPM 4 Goals • jBPM 4 Use Cases 2
  • 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,… 3
  • 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 4
  • 5. What is jBPM Your App Your Architecture jBPM 5
  • 6. What is jBPM • Model process – Declare tasks – Bind to your POJO Java code • Decorate – Asynchronous continuations – Timers 6
  • 7. jBPM 4 Goals • Improve supportability • Grow to next level of adoption • Raise 'ability to execute' • Implementation improvements 7
  • 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 8
  • 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 9
  • 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 10
  • 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 11
  • 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. 12
  • 13. Use Case 1: Rapid Prototyping • Model the process • Include tasks • Generate forms • Deploy • Show live demo 13
  • 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 14
  • 15. Use Cases 3: Pageflow • Pages are activities • Navigations are transitions • Persistence in HTTP session • SEAM 15
  • 16. jPDL Activities • Control flow • Functional transition state start sub-process end task end-cancel java end-error script decision esb fork hql join sql super-state sub-process 16
  • 17. jPDL Features • Lots of functional activities – mail, java, esb, task,… • Concurrency • Event listeners • Timers • Asynchronous continuations • Transactional exception handlers 17
  • 19. State Choice <process name="StateChoice"> <start> <transition to="wait for response"/> </start> <state name="wait for response" > <transition name="accept" to="submit document" /> <transition name="reject" to="try again" /> </state> <state name="submit document" /> <state name="try again" /> </process> 19
  • 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(); 20
  • 21. State Choice repositoryService.createDeployment() .addResourceFromClasspath( "org/jbpm/examples/state/choice/process.jpdl.xml“) .deploy(); 21
  • 22. State Choice ProcessInstance processInstance = executionService .startProcessInstanceByKey("StateChoice"); String executionId = processInstance .findActiveExecutionIn("wait for response") .getId(); processInstance = executionService .signalExecutionById(executionId, "accept"); assertEquals("submit document", processInstance.getActivityName()); 22
  • 23. Designer 23
  • 24. Console 24
  • 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 25
  • 26. Q&A 26