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
•   Ar...
What is jBPM
• Business Process Management
  – BPM as a discipline
  – BPM as software engineering
• jBPM
  –   BPM for Ja...
What is jBPM

    Your App
Your Architecture

         jBPM




                    5
What is jBPM
• Model process
  – Declare tasks
  – Bind to your
    POJO Java code
• Decorate
  – Asynchronous
    continu...
jBPM 4 Goals
•   Improve supportability
•   Grow to next level of adoption
•   Raise 'ability to execute'
•   Implementati...
Improve Supportability
• Separation between normal usage from bleeding
  edge usage
   – public API vs internal packages
 ...
Improve Supportability
• Continuous integration
  – Ability to reproduce bugs
  – Collect community knowledge in test suit...
Grow to Next Level of Adoption
• Lowering the treshold to get started
   – Simpler API
      • Split normal usage from ble...
Increase ‘Ability to Execute'
• Historical data separated from runtime data
   – Queryable history information
   – Keeps ...
Implementation Improvements
• Improved pluggable architecture
   – Changed composition to inheritence.
   – Direct variabl...
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...
Use Cases 3: Pageflow
•   Pages are activities
•   Navigations are transitions
•   Persistence in HTTP session
•   SEAM


...
jPDL Activities
• Control flow           • Functional
   transition              state
   start                   sub-proc...
jPDL Features
• Lots of functional activities
    – mail, java, esb, task,…
•   Concurrency
•   Event listeners
•   Timers...
State Choice




               18
State Choice
<process name="StateChoice">

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

  <state name="w...
State Choice
// create a configuration
Configuration configuration = new Configuration();

// build a process engine from ...
State Choice
repositoryService.createDeployment()
  .addResourceFromClasspath(
     "org/jbpm/examples/state/choice/proces...
State Choice
ProcessInstance processInstance = executionService
  .startProcessInstanceByKey("StateChoice");

String execu...
Designer




           23
Console




          24
Conclusion
• jBPM provides overview of application
   – External triggers
   – Wait states
   – Business view
• jBPM adds ...
Q&A




      26
Process Concurrency




                      27
Upcoming SlideShare
Loading in...5
×

JBUG.be jBPM4

980

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
980
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JBUG.be jBPM4

  1. 1. jBPM 4 Tom Baeyens JBoss, Red Hat 1
  2. 2. Agenda • What is jBPM • jBPM 4 Goals • jBPM 4 Use Cases 2
  3. 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. 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. 5. What is jBPM Your App Your Architecture jBPM 5
  6. 6. What is jBPM • Model process – Declare tasks – Bind to your POJO Java code • Decorate – Asynchronous continuations – Timers 6
  7. 7. jBPM 4 Goals • Improve supportability • Grow to next level of adoption • Raise 'ability to execute' • Implementation improvements 7
  8. 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. 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. 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. 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. 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. 13. Use Case 1: Rapid Prototyping • Model the process • Include tasks • Generate forms • Deploy • Show live demo 13
  14. 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. 15. Use Cases 3: Pageflow • Pages are activities • Navigations are transitions • Persistence in HTTP session • SEAM 15
  16. 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. 17. jPDL Features • Lots of functional activities – mail, java, esb, task,… • Concurrency • Event listeners • Timers • Asynchronous continuations • Transactional exception handlers 17
  18. 18. State Choice 18
  19. 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. 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. 21. State Choice repositoryService.createDeployment() .addResourceFromClasspath( "org/jbpm/examples/state/choice/process.jpdl.xml“) .deploy(); 21
  22. 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. 23. Designer 23
  24. 24. Console 24
  25. 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. 26. Q&A 26
  27. 27. Process Concurrency 27

×