More Related Content


2012 02-04 fosdem 2012 - guvnor and j bpm designer

  1. Geoffrey De Smet Marco Rietveld Managing workflows and business rules with Guvnor and jBPM designer
  2. Business Logic Integration Business Logic Integration Platform Rule engine Workflow Complex event processing (CEP) Business Rule Management System (BRMS) Automated planning
  3. Geoffrey De Smet Why would I need Drools and Guvnor?
  4. Use cases I have hammer, so every problem is a nail?
  5. Easier to read, better at scaling
  6. Change often/fast
  7. Insurances acceptance and fee calculation
  8. Mortgages example
  9. Which field has the result our application needs? Version 1 Version 2
  10. Business rules are hard coded in Java Invalid: must be a number
  11. when income below 1000 and age above 50
  12. when income below 1% of mortgage amount Invalid: must be a number
  13. My business requires domain expertise Only mortgage managers understand mortgage rules
  14. participated in mortgages conferences/courses? No
  15. years of mortgage customer experience? No
  16. participated in mortgages conferences/courses? No
  17. participated in mortgages conferences/courses? No
  18. Domain experts can read rules in the Guided Rule Editor
  19. Domain experts can write rules in the Guided Rule Editor Change
  20. Translated to DRL Executed on JavaBeans
  21. Guided Rule Editor demo video Demo video
  22. Domain experts make the building Source: wikipedia
  23. My business rules change often This mortgage rule change must be released by noon
  24. Deliver changes fast
  25. Deliver changes fast
  26. Deliver changes fast
  27. Self-service by mortgage manager
  28. Deployment infrastructure
  29. Auditable and reproducible Why was that mortgage approved last year?
  30. Summary
  31. Change often/fast
  32. Marco Rietveld
  33. How do we keep business analysts from bothering us? Wait, you want A to do D, but not B and C?!?
  34. How do we let business analysts do their work?
  35. What does jBPM Designer do?
  36. Demo
  37. Summary
  38. Monitoring
  39. Speed of development
  40. Increased agility A business process is a collection of steps that when executed, accomplish a specific goal. It can often be described using a flow chart.
  41. Notation
  42. Extensible
  43. BPMN 2.0 Example <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <definitions id=&quot;Definition&quot; targetNamespace=&quot;; xmlns=&quot;; xmlns:xsi=&quot;; xsi:schemaLocation=&quot; BPMN20.xsd&quot;> <process processType=&quot;Private&quot; isExecutable=&quot;true&quot; id=&quot;ScriptTask&quot; name=&quot;ScriptTask Process&quot; tns:packageName=&quot;com.sample&quot; > <!-- nodes --> <startEvent id=&quot;_1&quot; name=&quot;StartProcess&quot; /> <scriptTask id=&quot;_2&quot; name=&quot;Hello&quot; scriptFormat=&quot;; > <script>System.out.println(&quot;Hello World&quot;);</script> </scriptTask> <endEvent id=&quot;_3&quot; name=&quot;EndProcess&quot; > <terminateEventDefinition/> </endEvent> <!-- connections --> <sequenceFlow id=&quot;_1-_2&quot; sourceRef=&quot;_1&quot; targetRef=&quot;_2&quot; /> <sequenceFlow id=&quot;_2-_3&quot; sourceRef=&quot;_2&quot; targetRef=&quot;_3&quot; /> </process> <bpmndi:BPMNDiagram> <bpmndi:BPMNPlane bpmnElement=&quot;ScriptTask&quot; > <bpmndi:BPMNShape bpmnElement=&quot;_1&quot; > <dc:Bounds x=&quot;16&quot; y=&quot;16&quot; width=&quot;48&quot; height=&quot;48&quot; /> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement=&quot;_2&quot; > <dc:Bounds x=&quot;96&quot; y=&quot;16&quot; width=&quot;80&quot; height=&quot;48&quot; /> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement=&quot;_3&quot; > <dc:Bounds x=&quot;208&quot; y=&quot;16&quot; width=&quot;48&quot; height=&quot;48&quot; /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge bpmnElement=&quot;_1-_2&quot; > <di:waypoint x=&quot;40&quot; y=&quot;40&quot; /> <di:waypoint x=&quot;136&quot; y=&quot;40&quot; /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge bpmnElement=&quot;_2-_3&quot; > <di:waypoint x=&quot;136&quot; y=&quot;40&quot; /> ...
  44. So.. we have a way of looking at business processes and a way of specifying them..
  45. Eclipse-based and web-based editor
  46. Pluggable persistence and transactions (JPA / JTA)
  47. Pluggable human task service based on WS-HumanTask
  48. Management console (process instance management, task lists, task form management, and reporting)
  49. History logging (querying / monitoring / analysis)
  50. Etc..
  51. jBPM application architecture Core Services Business Analyst End User Developer Rules Core Engine Guvnor Repository Eclipse Editor Web-Based Designer History Log Task Service jBPM Console Your Application Your Services
  52. What does jBPM Designer do?
  53. Demo
  54. Summary
  55. Supports the jBPM BPMN subset
  56. jBPM Designer Features 1. Shape repository panel 2. Canvas 3. Properties panel 4. Toolbar 5. Footer 6. Process information
  57. Designer: Shape Menu 1. Connection section 2. Morphing section
  58. human task data I/O parameters and associations
  59. (HTML/Javascript) Source immediately available
  60. Generated forms are stored in Guvnor
  61. All forms are fully usable inside jBPM console
  62. Each form includes basic JavaScript form validation à à
  63. Obligatory introduction to project
  64. Demo!
  65. Summary (AKA The End)
  66. The Slide that you guys look at while I switch to the demo! Bonus: how many (full or partial) circles are on this slide?
  67. 5. Run process!
  68. Summary
  69. Google+: Geoffrey De Smet & Marco Rietveld
  70. IRC: #drools, #droolsdev and #jbpm on Codehaus
  73. JBPM online documentation:

Editor's Notes

  1. Who’s heard of BPM? Who’s actually written BPMN? Who’s heard of jBPM? Who’s worked with business analysts? Who has enjoyed working with business analysts? Who’s sees themselves becoming a business analyst in the coming years? ... my apologies.
  2. Please, if you become a business analyst, let the developers do their work. I’ve worked a few different places where the software requirements were filled with business terms that took a while to learn. Regardless of where you work, as a developer you have to learn the domain: bank accounts, freight logistics, insurance models, etc. Part of the problem here is that not only do the business analysts have to create and write down the business process – we then have to translate it into code. There’s a duplication of effort in the sense that both analyst and developer sometimes have to understand the business process fully. And of course, there are always “gotcha’s” -- my housemate was complaining the other day about how they wanted generic screens for processing orders (train-related company) except for that 1 (of 7) screen.
  3. This is a slightly more polite version of the last slide. We want the business analysts to concentrate on the business process – not the code. (Anecdote: an ex-colleague analyst of mine was great – but he was an old developer, and wanted us to code things certain way. I would say to him: “The hell with that – you do your work, I’ll do mine!”) Make them active participants in the process.
  4. This is what I’m going to talk about: - Business Analyst stuff and what we then use to implement it - What is this thing i’m talking about and.. what does it do? - Demo! (people who are taking naps, please wake up) - Summary, because you’ll have forgotten everything I said before the demo
  5. It’s why developers at companies who don’t make software, get paid. Not really – it’s more than that: it’s whole interaction. Visibility: Hey, I can understand what’s happening! Monitoring: Wow, I can really see what’s happening now! High-level: Huh, I understand what’s going on here. Continuous: Modification of BP’s without developer involvement Speed: Which means work is done more quickly Agility: Which means companies/development can respond more quickly
  6. Worked at a logistics company, and changing how incoming freight information was processed was a nightmare. - Change requests - New Projects - AHHH... I’m having flashbacks. Unstructured/Non-linear: maybe it’s not a A, B, C process: - for example: Monitoring, processing incoming streams of input Adaptive Case Management - Basically, data-driven processes – where the process is based on the data, not the other way around Event-driven: - Multiple events “processed” in one process
  7. Model: graphical Notation: xml-based syntax Execution: how things should be done “ Understandable” -- see next slide, xml, not easily readable - collaboration between different parties - and we’re moving on, now..
  8. Ehh.. no one wants to write bpmn 2. Which is why we have the designer
  9. Hey, we’re done with the Business Analyst stuff..
  10. JBPM is an open-source business process management project, for those of you who don’t know how to read
  11. Explain diagram Point out integration with rules
  12. So, done with the background, and now we’re going to look at Designe Lead on Designer in Tihomir Surdilovic, based on the Oryx project with lots of additionsr
  13. So, we edit BPMN processes here. The BPMN it creates conforms to the BPMN syntax (big surprise!) and it works with BPMN internally. But it does more.. (and I’ll get to that in a sec). Guvnor integration helps make guvnor the “one-stop shop” Some people have built their own applications by embedding Designer and using the Guvnor rest api.
  14. This is just a brief overview so that you guys will know where to look when I’m doing the demo.
  15. On the left is a set of images showing how the shape menu works.
  16. Task form generation