Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

jBPM5: Bringing more Power to your Business Processes

2,388 views

Published on

Overview of jBPM5 on Drools & jBPM Workshop

Published in: Technology
  • Be the first to comment

jBPM5: Bringing more Power to your Business Processes

  1. 1. Kris Verlaenen – jBPM Lead May 10 th , 2011 jBPM5 : Bringing more Power to your Business Processes
  2. 2. Overview <ul><li>What is BPM?
  3. 3. Overview of jBPM5
  4. 4. Flexible processes
  5. 5. Demo
  6. 6. Roadmap </li></ul>
  7. 7. What is BPM?
  8. 8. What is BPM? A business process is a process that describes the order in which a series of steps need to be executed, using a flow chart. Business Process Management
  9. 9. Why BPM? <ul><li>Visibility
  10. 10. Monitoring
  11. 11. Higher-level </li></ul><ul><li>Continuous improvement
  12. 12. Speed of development
  13. 13. Increased agility </li></ul>
  14. 14. Overview of jBPM5
  15. 15. Key Characteristics of jBPM5 <ul><li>Open-source business process management project offering: </li></ul><ul><ul><li>generic process engine supporting native BPMN 2.0 execution
  16. 16. targeting developers and business users
  17. 17. collaboration, management and monitoring using web-based consoles
  18. 18. powerful rules and event integration </li></ul></ul>
  19. 19. From Workflow to BPM <ul><li>Core engine is a workflow engine in pure Java </li></ul><ul><ul><li>state transitions
  20. 20. lightweight
  21. 21. embeddable
  22. 22. generic, extensible </li></ul></ul>Core Engine
  23. 23. Core Engine Knowledge Base Stateful Knowledge Session Process Definition Process Instance
  24. 24. Java Interface ProcessRuntime interface <ul><li>startProcess(processId)
  25. 25. startProcess(processId, parameters)
  26. 26. signalEvent(type, event)
  27. 27. signalEvent(type, event, instanceId)
  28. 28. abortProcessInstance(instanceId)
  29. 29. getProcessInstance(instanceId)
  30. 30. … </li></ul>
  31. 31. Java Example // (1) Create knowledge base and add process definition KnowledgeBuilder kbuilder = ... kbuilder.add( ..., &quot;sample.bpmn&quot;, ResourceType.BPMN2); KnowledgeBase kbase = kbuilder.newKnowledgeBase(); // (2) Create new stateful knowledge session StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); // (3) Start a new process instance ksession.startProcess(“com.sample.bpmn.hello”);
  32. 32. From Workflow to BPM Core Engine
  33. 33. From Workflow to BPM Core Engine BPMN 2.0 XML
  34. 34. BPMN 2.0 <ul><li>OMG specification </li><ul><li>Model
  35. 35. Notation
  36. 36. Execution semantics </li></ul><li>Understandable by all business users
  37. 37. Process, collaboration, choreography
  38. 38. Extensible </li></ul>
  39. 39. BPMN 2.0 Example < definitions ... > < process id=&quot;com.sample.bpmn.hello&quot; name=&quot;Hello World&quot; > < startEvent id=&quot;_1&quot; name=&quot;StartProcess&quot; /> < sequenceFlow sourceRef=&quot;_1&quot; targetRef=&quot;_2&quot; /> < scriptTask id=&quot;_2&quot; name=&quot;Hello&quot; > < script >System.out.println(&quot;Hello World&quot;);</ script > </ scriptTask > < sequenceFlow sourceRef=&quot;_2&quot; targetRef=&quot;_3&quot; /> < endEvent id=&quot;_3&quot; name=&quot;EndProcess&quot; /> </ process > </ definitions > < definitions ... > < process id=&quot;com.sample.bpmn.hello&quot; name=&quot;Hello World&quot; > < startEvent id=&quot;_1&quot; name=&quot;StartProcess&quot; /> < sequenceFlow sourceRef=&quot;_1&quot; targetRef=&quot;_2&quot; /> < scriptTask id=&quot;_2&quot; name=&quot;Hello&quot; > < script >System.out.println(&quot;Hello World&quot;);</ script > </ scriptTask > < sequenceFlow sourceRef=&quot;_2&quot; targetRef=&quot;_3&quot; /> < endEvent id=&quot;_3&quot; name=&quot;EndProcess&quot; /> </ process > </ definitions >
  40. 40. From Workflow to BPM Core Engine BPMN 2.0 XML Persistence Trans- actions JPA JTA
  41. 41. Persistence and Transactions <ul><li>Persistence (JPA, pluggable) </li><ul><li>Runtime persistence
  42. 42. History logging
  43. 43. Services </li></ul><li>Transactions (JTA, pluggable) </li><ul><li>Command-scoped
  44. 44. User-defined </li></ul></ul>
  45. 45. From Workflow to BPM Core Engine BPMN 2.0 XML Persistence Trans- actions Events History Log Management Console BAM
  46. 46. Console <ul><li>Web-based management
  47. 47. Business user
  48. 48. Features </li></ul><ul><ul><li>Process instance management
  49. 49. User task lists / forms
  50. 50. Reporting </li></ul></ul>
  51. 51. From Workflow to BPM Core Engine BPMN 2.0 XML Persistence Trans- actions Events Integration Domain-specific Processes Human Task Service ESB
  52. 52. Domain-specific Processes <ul><li>Extend palette with domain-specific, declarative service nodes </li></ul><ul><ul><li>define input / output parameters
  53. 53. runtime binding </li></ul></ul>
  54. 54. Human task service <ul><li>User task
  55. 55. Human task service (WS-HT) </li></ul><ul><ul><li>Task lists
  56. 56. Task life cycle </li></ul></ul><ul><li>Task clients </li></ul><ul><ul><li>Task forms </li></ul></ul>
  57. 57. Flexible Processes
  58. 59. What is flexibility? “ The quality of being adaptable or variable”
  59. 60. Flexibility = Variability + Change
  60. 61. Exceptional Control Flow 90% 5% 3% 2%
  61. 62. Exceptional Control Flow 90% Rule1 When ... Then ... Rule2 When ... Then ... Rule3 When ... Then ... 5% 3% 2%
  62. 63. Processes + Rules + Events
  63. 64. Combining processes and rules <ul><li>Integration </li><ul><li>From loose coupling (decision services)
  64. 65. To advanced integration (process rules) </li></ul><li>Unification </li><ul><li>Rules and processes are different types of business knowledge assets
  65. 66. Tooling (IDE, repository, management) </li></ul></ul>
  66. 67. Decision Service <ul><li>Different life cycle (agility)
  67. 68. Larger scope (reusable)
  68. 69. Higher-level
  69. 70. Loosely-coupled </li></ul>
  70. 71. <ul><li>RuleSet: Evaluating a set of rules in your process (= local decision service)
  71. 72. Process Rules : Data-driven constraints
  72. 73. Triggers : Rules / events start / signal process
  73. 74. Assignment rules
  74. 75. Describing exceptional situations using rules
  75. 76. Modularizing concerns using rules
  76. 77. Using rules to dynamically alter the behavior of the process </li></ul>Rules and Process Integration
  77. 78. Example: Clinical DSS
  78. 79. Example: Build Management Source: Hudson Execution and Scheduling Architecture
  79. 80. Example: Build Management Source: Hudson Execution and Scheduling Architecture
  80. 81. Continuum Data-driven Lifetime Stability Granularity Change Dynamic Complexity Declarative User-focused
  81. 82. TITLE SLIDE: HEADLINE Presenter name Title, Red Hat Date Demo
  82. 83. Roadmap <ul><li>jBPM 5.0: Februari 2011
  83. 84. jBPM 5.1: NOW ... </li><ul><li>Improve designer to support full round-tripping
  84. 85. New Eclipse BPMN2 editor
  85. 86. Lots of small feature improvements and bug fixes </li></ul><li>jBPM 5.2 – jBPM 6.x </li><ul><li>Simulation / testing / replay
  86. 87. Flexible, adaptive, goal-oriented processes
  87. 88. Integrated “no-code” tooling (form builder, etc.) </li></ul></ul>
  88. 89. jBPM5: What, where? <ul><li>jBPM home page
  89. 90. Source http://github.com/droolsjbpm/jbpm
  90. 91. Hudson http://hudson.jboss.org/hudson/job/jBPM
  91. 92. Blog http://kverlaen.blogspot.com/
  92. 93. #jbpm on irc.codehaus.org
  93. 94. [email_address]
  94. 95. jBPM user forum </li></ul>

×