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

What's hot (20)

PDF
EAP6 performance Tuning
Praveen Adupa
 
PDF
Analyzing OTM Logs and Troubleshooting
MavenWire
 
PDF
Devoxx 2013, WildFly BOF
Dimitris Andreadis
 
PPTX
Veeam backup Oracle DB in a VM is easy and reliable way to protect data
Aleks Y
 
PDF
Gearman - Northeast PHP 2012
Mike Willbanks
 
PPT
Collaborate 2011-tuning-ebusiness-416502
kaziul Islam Bulbul
 
PDF
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
Dimitris Andreadis
 
PDF
Performance Tuning Best Practices
webhostingguy
 
PPTX
SQL Server Query Optimization, Execution and Debugging Query Performance
Vinod Kumar
 
PDF
DB2 10 Smarter Database - IBM Tech Forum
Surekha Parekh
 
PDF
Got Problems? Let's Do a Health Check
Luis Guirigay
 
PDF
BP103 - Got Problems? Let's Do a Health Check
Luis Guirigay
 
PPTX
Handling Massive Writes
Liran Zelkha
 
PPT
MySQL Performance Tuning - GNUnify 2010
OSSCube
 
PDF
Introduction to Role Based Administration in WildFly 8
Dimitris Andreadis
 
PDF
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Red Hat Developers
 
PPT
Sql Server Performance Tuning
Bala Subra
 
PDF
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf
 
PDF
JBPM Past Present Future
Eric D. Schabell
 
EAP6 performance Tuning
Praveen Adupa
 
Analyzing OTM Logs and Troubleshooting
MavenWire
 
Devoxx 2013, WildFly BOF
Dimitris Andreadis
 
Veeam backup Oracle DB in a VM is easy and reliable way to protect data
Aleks Y
 
Gearman - Northeast PHP 2012
Mike Willbanks
 
Collaborate 2011-tuning-ebusiness-416502
kaziul Islam Bulbul
 
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
Dimitris Andreadis
 
Performance Tuning Best Practices
webhostingguy
 
SQL Server Query Optimization, Execution and Debugging Query Performance
Vinod Kumar
 
DB2 10 Smarter Database - IBM Tech Forum
Surekha Parekh
 
Got Problems? Let's Do a Health Check
Luis Guirigay
 
BP103 - Got Problems? Let's Do a Health Check
Luis Guirigay
 
Handling Massive Writes
Liran Zelkha
 
MySQL Performance Tuning - GNUnify 2010
OSSCube
 
Introduction to Role Based Administration in WildFly 8
Dimitris Andreadis
 
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Red Hat Developers
 
Sql Server Performance Tuning
Bala Subra
 
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf
 
JBPM Past Present Future
Eric D. Schabell
 

Viewers also liked (7)

PPT
Grand Forks Central's Omnibus 2009
Nancy Devine
 
PPT
JBUG.Jbpm.2009
Andries Inzé
 
PPSX
Virtual Assistance Made Easy
Nicole Brooks
 
ODP
JBUG.be Infinispan
Andries Inzé
 
ODP
Kris Verlaenen on jBPM5 at JBUG.be
Andries Inzé
 
PPT
Cultivating Creativity to Cut Competition
Austin Baker
 
KEY
Kabir Khan on AS6 at JBUG.be
Andries Inzé
 
Grand Forks Central's Omnibus 2009
Nancy Devine
 
JBUG.Jbpm.2009
Andries Inzé
 
Virtual Assistance Made Easy
Nicole Brooks
 
JBUG.be Infinispan
Andries Inzé
 
Kris Verlaenen on jBPM5 at JBUG.be
Andries Inzé
 
Cultivating Creativity to Cut Competition
Austin Baker
 
Kabir Khan on AS6 at JBUG.be
Andries Inzé
 
Ad

Similar to JBUG.be jBPM4 (20)

PPTX
Optimizing performance
Zend by Rogue Wave Software
 
PDF
Automate workflows with leading open-source BPM
Kris Verlaenen
 
DOC
Datastage Online Training
Srihitha Technologies
 
PDF
Devoxx 2009 Conference session Jbpm4 In Action
Joram Barrez
 
KEY
improving the performance of Rails web Applications
John McCaffrey
 
PPTX
Alfresco Devcon 2010: A new kind of BPM with Activiti
Joram Barrez
 
PPTX
Enhanced Reframework Session_16-07-2022.pptx
Rohit Radhakrishnan
 
PPTX
La vita nella corsia di sorpasso; A tutta velocità, XPages!
Ulrich Krause
 
PDF
Know More About Rational Performance - Snehamoy K
Roopa Nadkarni
 
PDF
3 know more_about_rational_performance_tester_8-1-snehamoy_k
IBM
 
PPTX
Ginsbourg.com presentation of open source performance validation
Perfecto Mobile
 
PPTX
From Pilot to Product - Morning@Lohika
Ivan Verhun
 
PPTX
Alfresco Devcon 2010: Introduction to Activiti BPM
Joram Barrez
 
PDF
SharePoint Saturday San Antonio: SharePoint 2010 Performance
Brian Culver
 
PPTX
Change management in hybrid landscapes
Chris Kernaghan
 
PDF
Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Re...
BI Brainz
 
PDF
Life in the Fast Lane: Full Speed XPages!, #dd13
Dominopoint - Italian Lotus User Group
 
PPTX
jBPM Suite admin workshop
József Lenti
 
PDF
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
Teamstudio
 
DOC
Informatica online training from inida
Qualitytrainings
 
Optimizing performance
Zend by Rogue Wave Software
 
Automate workflows with leading open-source BPM
Kris Verlaenen
 
Datastage Online Training
Srihitha Technologies
 
Devoxx 2009 Conference session Jbpm4 In Action
Joram Barrez
 
improving the performance of Rails web Applications
John McCaffrey
 
Alfresco Devcon 2010: A new kind of BPM with Activiti
Joram Barrez
 
Enhanced Reframework Session_16-07-2022.pptx
Rohit Radhakrishnan
 
La vita nella corsia di sorpasso; A tutta velocità, XPages!
Ulrich Krause
 
Know More About Rational Performance - Snehamoy K
Roopa Nadkarni
 
3 know more_about_rational_performance_tester_8-1-snehamoy_k
IBM
 
Ginsbourg.com presentation of open source performance validation
Perfecto Mobile
 
From Pilot to Product - Morning@Lohika
Ivan Verhun
 
Alfresco Devcon 2010: Introduction to Activiti BPM
Joram Barrez
 
SharePoint Saturday San Antonio: SharePoint 2010 Performance
Brian Culver
 
Change management in hybrid landscapes
Chris Kernaghan
 
Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Re...
BI Brainz
 
Life in the Fast Lane: Full Speed XPages!, #dd13
Dominopoint - Italian Lotus User Group
 
jBPM Suite admin workshop
József Lenti
 
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
Teamstudio
 
Informatica online training from inida
Qualitytrainings
 
Ad

Recently uploaded (20)

PDF
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PDF
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
The Future of Artificial Intelligence (AI)
Mukul
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 

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