jBPM, open source BPM

7,887 views
7,580 views

Published on

jBPM & Drools Workshop, NY
2012-06-19

Published in: Technology, Education

jBPM, open source BPM

  1. 1. jBPM5: Bringing more Power jBPM, to your Business Open Source BPM Processes Kris Verlaenen jBPM Project Lead June, 2012 1
  2. 2. jBPM Overview• jBPM Project• jBPM walkthrough• Roadmap
  3. 3. What is BPM? Business Process Management A business process is a process that describesthe order in which a series of steps need to be executed, using a flow chart.
  4. 4. Why BPM?• Visibility • Continuous improvement• Monitoring • Speed of development• Higher-level • Increased agility
  5. 5. jBPM Project• (Executable) business processes – light-weight, native BPMN2 engine – from embedded to as a service• Entire life cycle• Both developers and business users• Advanced, adaptive processes
  6. 6. Life Cycle Business Analyst Model Developer SystemAdministrator Monitor BPM Deploy Execute End User
  7. 7. End User r ito on Your jBPM Console Application M e Core Services ut ec Your Core History Task Ex Services Engine Log Service Rules y lo ep Guvnor D Repository el Web-Based Eclipse Editor od DesignerM Developer Business Analyst
  8. 8. Key Characteristics• Open-source, lightweight• Native BPMN 2.0• High-level business processes• Business user & developer collaborate• Advanced, adaptive processes• Modularized, pluggable, standards
  9. 9. Advanced, adaptive processes• (One of the) most advanced open- source BPMN2 engine• Adaptive, ad-hoc, dynamic processes• Integration and unification with business rules and complex event processing
  10. 10. jBPM Walkthrough• Core engine• From Workflow to BPM• Extra features• Social, Cloud and Mobile
  11. 11. Core Engine• Core engine is a workflow engine in pure Java – state transitions – lightweight – embeddable – generic, extensible Core Engine
  12. 12. Core Engine StatefulKnowledge Knowledge Base SessionProcess ProcessDefinition Instance
  13. 13. Java InterfaceProcessRuntime interface• startProcess(processId)• startProcess(processId, parameters)• signalEvent(type, event)• signalEvent(type, event, instanceId)• abortProcessInstance(instanceId)• getProcessInstance(instanceId)• …
  14. 14. Java Example// (1) Create knowledge base and add process definitionKnowledgeBuilder kbuilder = ...kbuilder.add( ..., "sample.bpmn", ResourceType.BPMN2);KnowledgeBase kbase = kbuilder.newKnowledgeBase();// (2) Create new stateful knowledge sessionStatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();// (3) Start a new process instanceksession.startProcess(“com.sample.bpmn.hello”);
  15. 15. From Workflow to BPM
  16. 16. From Workflow to BPM XML Core Engine BPMN 2.0
  17. 17. BPMN 2.0<definitions ... > <process id="com.sample.bpmn.hello" name="Hello World" > <startEvent id="_1" name="StartProcess" /> <sequenceFlow sourceRef="_1" targetRef="_2" /> <scriptTask id="_2" name="Hello" > <script>System.out.println("Hello World");</script> </scriptTask> <sequenceFlow sourceRef="_2" targetRef="_3" /> <endEvent id="_3" name="EndProcess" /> </process> </definitions>
  18. 18. jBPM Eclipse Plugin• Developer-focused• Features: – Wizards, runtimes, perspective – Graphical editor – Testing and debugging – Service repository, generators – Guvnor integration
  19. 19. Web-based Designer• Business User-focused• Features – Graphical Editor – Visual validation – Service repository, generators – Guvnor integration• Based on Oryx Designer – JavaScript, JSON
  20. 20. From Workflow to BPM JPA Persistence XMLJTA Trans- actions Core Engine BPMN 2.0
  21. 21. Persistence and Transactions• Persistence (JPA, pluggable) – Runtime persistence – History logging – Services• Transactions (JTA, pluggable) – Command-scoped – User-defined
  22. 22. Persistence• Core engine no persistence• Macro transactions• Binary persistence of runtime data• Separation of history information• External services – using work items, async – independent task service
  23. 23. ProcessInstancestartProcess Process 1 active d/m/yy hh:mm ... Runtime Engine addTask Task 1 Task1 sales ... Service Tasks 2 Task2 HR ... Task Task
  24. 24. ProcessInstance Process 1 active d/m/yy hh:mm ... Runtime Enginecomplete Task 1 Task1 sales ... Service Tasks 2 Task2 HR ... Task Task complete
  25. 25. ProcessInstance Process 1 active d/m/yy hh:mm ... Runtime Enginecomplete Task 1 Task1 sales ... Service Tasks 2 Task2 HR ... Task Task complete
  26. 26. From Workflow to BPM Persistence XML Trans- actions Core Engine BPMN 2.0History Events Log Management Console BAM
  27. 27. Console• Web-based management• Business user• Features – Process instance management – User task lists / forms – Reporting
  28. 28. Console• GWT• Generic BPM console – jBPM integration code• REST API• One embedded session – Persistence, history logging• Eclipse BIRT reporting: custom reports
  29. 29. From Workflow to BPM Persistence XML Trans- actions Core Engine BPMN 2.0 Events Domain-specific Integration Processes Human Task ESB Service
  30. 30. Domain-specific Processes• Extend palette with domain-specific, declarative service nodes – define input / output parameters – runtime binding
  31. 31. Domain-specific Processes• Why? • Other examples – Domain-specific – Human task – Java method – Declarative – WS, Rest – High-level – Email, Twitter – Context-defined – FTP, RSS, Jabber – Finder, Exec, Archive – Google CalendarRepository ! – YOUR SERVICES !
  32. 32. Service Repository
  33. 33. Example: Notification[ [ "name" : "Notification", "parameters" : [ "Message" : new StringDataType(), "From" : new StringDataType(), "To" : new StringDataType(), "Priority" : new StringDataType(), ], "displayName" : "Notification", "icon" : "icons/notification.gif" ]]
  34. 34. Example: Notificationclass NotificationHandler implements WorkItemHandler { public void executeWorkItem(WorkItem wI, WorkItemManager manager) { String from = (String) wI.getParameter("From"); String to = (String) wI.getParameter("To"); String m = (String) wI.getParameter("Message"); // send email EmailService service = ...; service.sendEmail(from, to, "Notification", m); manager.completeWorkItem(wI.getId(), null); }}
  35. 35. Human task service• User task• Human task service (WS-HT) – Task lists – Task life cycle• Task clients – Task forms
  36. 36. Human Task Service• Independent, pure Java implementation• Different underlying technologies – Local – Apache Mina, HornetQ, JMS• I18N, calendar, deadlines, escalation• UserGroupCallback
  37. 37. SwitchYard Lightweight service delivery framework providing full lifecycle support for developing, deploying, and managingservice-oriented applications • SwitchYard BPM component
  38. 38. Extra Features
  39. 39. Extra features• Process instance migration• JUnit testing• Spring• OSGi• Migration from jBPM3(/4)
  40. 40. Installer• Out-of-the-box working environment• Sample process• Components – Eclipse (jBPM + Drools) – Guvnor + Designer – jbpm-console – Services • H2 DB, human task service, history log
  41. 41. Examples• Evaluation• Examples module – Looping – Multi-instances – Human tasks (including user / group assignment, delegation, forms, etc.) – Process + rules integration
  42. 42. Social, Cloud and Mobile
  43. 43. Ready for the future?Traditional BPM systems have problems with change, complexity, flexibility, data- intensive applications, etc. • Adaptive Case Management (ACM) • Unstructured, non-lineair or flexible processes • Event-driven BPM (edBPM)
  44. 44. MotivationA business solution usually involves the interaction between these technologies. Technology overlap Business overlap Attribute the same importance to the three complementary business modeling techniques
  45. 45. Processes Rules Events Business Logic
  46. 46. Example: Build Management Source: Hudson Execution and Scheduling Architecture
  47. 47. Example: Build Management Source: Hudson Execution and Scheduling Architecture
  48. 48. Logistic Company - Solution Vehicle Aircraft Traffic Flow Traffic Incident Weather Event Stream Event Stream Event Stream Event Stream Event Stream Knowledge Bases Shipment Event Stream New Inferred Facts Facts Stop Event Stream Reasoning Knowledge Based Reasoning CEP [Temporal Reasoning] Spatial Reasoning Source: E. Tirelli & A. Mollenkopf - ORF2009
  49. 49. VisionA knowledge-oriented platform for developers and business users
  50. 50. Exceptional Control Flow90%5%3%2%
  51. 51. Exceptional Control Flow90% Rule1 Rule2 Rule3 When When When ... ... ... Then Then Then ... ... ... 5% 3% 2%
  52. 52. Example: Clinical DSS
  53. 53. Combining Processes, Rules and Events• Integration – From loose coupling – To advanced integration• Unification – Processes and (event) rules are different types of business knowledge assets – Tooling (IDE, repository, management)
  54. 54. JBoss AS 7• Blazingly fast• Lightweight• Module core• jBPM5 on AS7: Lightning !
  55. 55. OpenShift• Based on Open Source• Innovation• Choice• Java, PHP, Ruby, Python, Perl & more• Express, Flex, Power• Amazon EC2
  56. 56. jBPM Everywhere • Run jBPM5 natively on Android
  57. 57. Roadmap Feb11 Jun11 Dec11 Apr12jBPM 5.0 5.2 5.1 Service repository 5.3 5.x 6.x Web Designer Examples Eclipse Designer Common Executable AS7 Documentation Form Builder Simulation JUnit test OpenShift As a service
  58. 58. JBoss Enterprise Product Delivery ModelExample: jBPM Community and Enterprise Product 3 3.2 JBoss SOA-P 5 Full Support (3yrs) Transition (1yr) Maintenance (1yr) Flow Enterprise versions provide long-term 4 support, regular releases including fixes, 5 new features, and new platforms certifications. JBoss BRMS 5.3 Full Support (3yrs) Transition (1yr) 6 New community features may be backported to Enterprise 7 versions While community projects continue to rapidly evolve, enterprise middleware products focus on long term stability.
  59. 59. Roadmap: jBPM 5.3Date: May 21st, 2012• Eclipse Designer• Form Builder• Web Designer• Test and form generators
  60. 60. Eclipse BPMN2 editorhttp://eclipse.org/projects/project.php?id=soa.bpmn2-modeler
  61. 61. Eclipse BPMN2 editor• eclipse.org project• Using Eclipse BPMN2 EMF model• Graphical editor for full BPMN2 specification (based on Graphiti)• Target engine + profiles• Custom jBPM editors / extensions
  62. 62. Form Builder• Generate form for process / task• Graphically design process (D&D)• Triggers, validation• Integrated into Guvnor
  63. 63. Roadmap: jBPM 5.x• Simulation and replay• BPM as a service – Expose as ... – Session mgmt and HA – Integrate with external services• Cloud
  64. 64. jBPM5: Bringing more Power jBPM, to your Business Open Source BPM Processes Kris Verlaenen jBPM Project Lead June, 2012 72

×