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 (Argentina workshop)

3,741 views

Published on

Published in: Technology
  • Be the first to comment

jBPM5 (Argentina workshop)

  1. 1. Kris Verlaenen – jBPM Lead June 17 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. Core Services Business Analyst End User Developer Rules Your Services Core Engine Guvnor Repository Eclipse Editor Web-Based Designer History Log Task Service jBPM Console Your Application
  20. 20. From Workflow to BPM <ul><li>Core engine is a workflow engine in pure Java </li></ul><ul><ul><li>state transitions
  21. 21. lightweight
  22. 22. embeddable
  23. 23. generic, extensible </li></ul></ul>Core Engine
  24. 24. Core Engine Knowledge Base Stateful Knowledge Session Process Definition Process Instance
  25. 25. Java Interface ProcessRuntime interface <ul><li>startProcess(processId)
  26. 26. startProcess(processId, parameters)
  27. 27. signalEvent(type, event)
  28. 28. signalEvent(type, event, instanceId)
  29. 29. abortProcessInstance(instanceId)
  30. 30. getProcessInstance(instanceId)
  31. 31. … </li></ul>
  32. 32. 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”);
  33. 33. From Workflow to BPM Core Engine
  34. 34. From Workflow to BPM Core Engine BPMN 2.0 XML
  35. 35. BPMN 2.0 <ul><li>OMG specification </li><ul><li>Model
  36. 36. Notation
  37. 37. Execution semantics </li></ul><li>Understandable by all business users
  38. 38. Process, collaboration, choreography
  39. 39. Extensible </li></ul>
  40. 40. 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 >
  41. 43. From Workflow to BPM Core Engine BPMN 2.0 XML Persistence Trans- actions JPA JTA
  42. 44. Persistence and Transactions <ul><li>Persistence (JPA, pluggable) </li><ul><li>Runtime persistence
  43. 45. History logging
  44. 46. Services </li></ul><li>Transactions (JTA, pluggable) </li><ul><li>Command-scoped
  45. 47. User-defined </li></ul></ul>
  46. 48. From Workflow to BPM Core Engine BPMN 2.0 XML Persistence Trans- actions Events History Log Management Console BAM
  47. 49. Console <ul><li>Web-based management
  48. 50. Business user
  49. 51. Features </li></ul><ul><ul><li>Process instance management
  50. 52. User task lists / forms
  51. 53. Reporting </li></ul></ul>
  52. 57. From Workflow to BPM Core Engine BPMN 2.0 XML Persistence Trans- actions Events Integration Domain-specific Processes Human Task Service ESB
  53. 58. Domain-specific Processes <ul><li>Extend palette with domain-specific, declarative service nodes </li></ul><ul><ul><li>define input / output parameters
  54. 59. runtime binding </li></ul></ul>
  55. 60. Human task service <ul><li>User task
  56. 61. Human task service (WS-HT) </li></ul><ul><ul><li>Task lists
  57. 62. Task life cycle </li></ul></ul><ul><li>Task clients </li></ul><ul><ul><li>Task forms </li></ul></ul>
  58. 63. Flexible Processes
  59. 65. What is flexibility? “ The quality of being adaptable or variable”
  60. 66. Flexibility = Variability + Change
  61. 67. Exceptional Control Flow 90% 5% 3% 2%
  62. 68. Exceptional Control Flow 90% Rule1 When ... Then ... Rule2 When ... Then ... Rule3 When ... Then ... 5% 3% 2%
  63. 69. Processes + Rules + Events
  64. 70. Combining processes and rules <ul><li>Integration </li><ul><li>From loose coupling (decision services)
  65. 71. To advanced integration (process rules) </li></ul><li>Unification </li><ul><li>Rules and processes are different types of business knowledge assets
  66. 72. Tooling (IDE, repository, management) </li></ul></ul>
  67. 73. Decision Service <ul><li>Different life cycle (agility)
  68. 74. Larger scope (reusable)
  69. 75. Higher-level
  70. 76. Loosely-coupled </li></ul>
  71. 77. Example: Clinical DSS
  72. 78. Example: Build Management Source: Hudson Execution and Scheduling Architecture
  73. 79. Example: Build Management Source: Hudson Execution and Scheduling Architecture
  74. 80. Roadmap <ul><li>jBPM 5.0: Februari 2011
  75. 81. jBPM 5.1: NOW ... </li><ul><li>Improve designer to support full round-tripping
  76. 82. New Eclipse BPMN2 editor
  77. 83. Lots of small feature improvements and bug fixes </li></ul><li>jBPM 5.2 – jBPM 6.x </li><ul><li>Simulation / testing / replay
  78. 84. Flexible, adaptive, goal-oriented processes
  79. 85. Integrated “no-code” tooling (form builder, etc.) </li></ul></ul>
  80. 86. jBPM5: What, where? <ul><li>jBPM home page
  81. 87. Source http://github.com/droolsjbpm/jbpm
  82. 88. Hudson http://hudson.jboss.org/hudson/job/jBPM
  83. 89. Blog http://kverlaen.blogspot.com/
  84. 90. #jbpm on irc.codehaus.org
  85. 91. [email_address]
  86. 92. jBPM user forum </li></ul>

×