20080215 jbpm Business Process Simulation with Jboss jBPM


Published on

  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

20080215 jbpm Business Process Simulation with Jboss jBPM

  1. 1. Master ThesisBuilding an open sourceBusiness Process Simulationtoolwith JBoss jBPM<br />Stuttgart University of applied science<br />15.02.2007<br />Bernd Rücker<br />
  2. 2. Objective<br />Building an open source Business Process<br />Simulation toolwithJboss jBPM<br />Examine simulation of business processes<br />business perspective<br />technical perspective<br />Implement a business process simulation tool based on open source components<br />Develop a tutorial & use the tool in a real life case study<br />
  3. 3. Agenda<br />Basics<br />Business Process Management (BPM) <br />Business Process Simulation (BPS)<br />Typical Simulation goals<br />Discrete Event Simulation<br />The developed tool<br />Used Open Source components<br />Combine BPM & Simulation<br />Example & Demo<br />
  4. 4. What is a business process?<br />Create defined output from a given input<br />Ordered activities<br />Creates business value / business motivated<br />Long running (maybe months or years)<br />Contain wait states<br />Activities can be automated or done by humans<br />
  5. 5. How are they supported by software?<br />Gui 1<br />Gui 2<br />Gui 3<br />Customer<br />Component<br />GUI<br />Paper<br />Email<br />Software systems<br />SAP<br />Server<br />EAI-Tool<br />Web-Service<br />
  6. 6. Types of integration<br />App 1<br />App 2<br />Processes<br />BPM<br />Activity 1<br /> Activity 2<br /> Activity 3<br />Process-<br />integration<br />SOA<br />Services<br />Applications<br />Function-<br />integration<br />Middleware<br />Data<br />Logical DB<br />Data-<br />integration<br />DB 2<br />DB 1<br />
  7. 7. Business Process Engine<br />Administrator<br />Clerk<br />Business Analyst<br />Developer<br />Task<br />Management<br />Business ProcessEngine<br />Process<br />Execution<br />Other systems<br />Process<br />definitions<br />Administration<br />Process<br />Logs<br />Persistence<br />
  8. 8. The BPM life-cycle<br />Analysis<br />Design<br />Control<br />Iterative Improvement<br /> Implementation<br />Execution<br />
  9. 9. The problem with process changes<br />The future is hard to predict<br />Unintuitive results, especially if different processes are involved<br />Changes in processes are<br />Expensive<br />Explosive for e.g. “team spirit” in companies<br />Lots of risks<br />
  10. 10. Simulation<br />Simulation is the process of describing a real system and using this model for experimentation, with the goal of understanding the system’s behavior or to explore alternative strategies for its operation.<br />Shannon<br />
  11. 11. Business Process Simulation (BPS)<br />Model of reality = business process + additional information<br />Helps to predict outcome without putting new processes into production<br />Use cases:<br />Process changes<br />New processes (“Business Process Reengineering”)<br />Changed environment<br />
  12. 12. BPS vision<br />Same model as for process execution<br />process model & additional info<br />Analysis<br />benchmarks,<br />KPI, …<br />Design<br />Control<br />(stochastic)<br />simulation<br />alternative process structures<br />Iterative Improvement<br /> Implementation<br />Execution<br />BAM<br />Life data from history<br />
  13. 13. Typical Simulation Goals<br />Identify cycle times for new or changed processes<br />Identify process costs<br />Benchmark alternative process structures<br />Forecast effects of changing amount of input events (for example the double amount of orders)<br />Support capacity or staff planning<br />Benchmark different parameter configurations<br />
  14. 14. Example: Returned Goods<br />Swimlane<br />Avg, duration (standard derivation)<br />process runs: 195<br />100<br />95<br />Accountant<br />180 (30)<br />195<br />Clerk<br />180 (60)<br />165<br />Tester<br />732,25 (448)<br />30<br />145<br />20<br />Accountant<br />180 (30)<br />dispatcher<br />325.50 (182)<br />175<br />20<br />
  15. 15. Example<br />Questions:<br /><ul><li> How many people do I need for a special amount of work?
  16. 16. What is the best tradeoff between too much and too less people?</li></ul>Swimlane<br />Avg, duration (standard derivation)<br />process runs: 195<br />100<br />95<br />Accountant<br />180 (30)<br />195<br />Clerk<br />180 (60)<br />165<br />Tester<br />732,25 (448)<br />30<br />145<br />20<br />Accountant<br />180 (30)<br />dispatcher<br />325.50 (182)<br />175<br />20<br />
  17. 17. Example<br />Questions:<br /><ul><li> Is it maybe cheaper to skip the extended tests and so also refund some not defect goods
  18. 18. Is it maybe cheaper to skip all tests?</li></ul>Swimlane<br />Avg, duration (standard derivation)<br />process runs: 195<br />100<br />95<br />Accountant<br />180 (30)<br />195<br />Clerk<br />180 (60)<br />165<br />Tester<br />732,25 (448)<br />30<br />145<br />20<br />Accountant<br />180 (30)<br />dispatcher<br />325.50 (182)<br />175<br />20<br />
  19. 19. Simulation input<br />distribution of start events (amount and time)<br />distribution of waiting time<br />resource pools<br />distribution of duration/processing time for task<br />distribution of duration/processing time for task<br />
  20. 20. Simulation<br />discrete simulation<br />Discrete Event Simulation (DES)<br />continuous simulation<br />
  21. 21. Discrete Event Simulation<br />State changes happen at discrete events in time<br />Nothing happens between 2 neighboring points in time<br />Finite sequence of model states<br />Model time is independent of real time<br />
  22. 22. Event oriented modeling style<br />1<br />3<br />2<br />2<br />1<br />3<br />
  23. 23. Components of DES<br />Model state<br />Simulation clock<br />Event list<br />Central controller<br />Random number generator / Distributions<br />Statistical counters / data collectors<br />
  24. 24. Statistics<br /><ul><li>Theoretical Distributions</li></ul>Warm up period<br />
  25. 25. My BPS tool – used components<br />JBoss jBPM<br />Business Process Engine<br />Open Source (LGPL)<br />Backed by RedHat / JBoss<br />DESMO-J<br />Java Simulation Framework (DES)<br />Developed & maintained by the University of Hamburg<br />Open Source (Apache License)<br />JasperReports as reporting generator<br />
  26. 26. Business Process Engine:<br />JBoss jBPM<br />DES-Framework:<br />DESMO-J<br />Combination of BPM & DES<br />?<br />
  27. 27. Combination of BPM & DES in action<br />21:33<br />21:33<br />Eventlist<br />21:40 start process<br />Distributions<br />Counters & <br />data <br />collectors<br />
  28. 28. 21:33<br />Combination of BPM & DES in action<br />21:40<br />21:40<br />Eventlist<br />21:40 start process<br />21:40 start process<br />22:07 start process<br />22:55 parcel arrived<br />Distributions<br />Counters & <br />data <br />collectors<br />
  29. 29. 22:55 parcel arrived<br />Combination of BPM & DES in action<br />22:55<br />22:55<br />Eventlist<br />22:55 parcel arrived<br />Distributions<br />Counters & <br />data <br />collectors<br />
  30. 30. Combination of BPM & DES in action<br />23:41<br />23:41<br />Eventlist<br />Distributions<br />Counters & <br />data <br />collectors<br />
  31. 31. What was needed for combination?<br />Special Events in DESMO-J<br />Clock-Synchronization<br />Event-Generation at special points in the process execution<br />Additionally:<br />Resource pools<br />Queues<br />Automatic decision taking<br />Influence on service calls<br />
  32. 32. jBPM Simulation<br />Architecture<br />jBPM Designer<br />support planned<br />jBPM (used for simulation)<br />Configuration<br />BAM<br />Production jBPM<br />DESMO-J<br />Reporting<br />Data source<br />Event Generator & Queue<br />In memory objects<br />DB<br />JasperReports<br />
  33. 33. Simulation configuration example<br />&lt;experiment name=&apos;ReturnDefectiveGoods&apos; time-unit=&apos;second&apos; <br /> run-time=&apos;28800&apos; real-start-time=&apos;30.03.1980 00:00:00:000&apos; <br /> currency=&apos;EUR&apos; unutilized-time-cost-factor=&apos;0.0&apos;&gt; <br /> &lt;!-- 28800 seconds = 8 hours = 1 working day --&gt; <br />&lt;scenario name=&quot;status_quo&quot;&gt;<br /> &lt;distribution name=&quot;start&quot; sample-type=&quot;real&quot; <br /> type=&quot;erlang&quot; mean=&quot;95&quot;/&gt; <br /> &lt;distribution name=&quot;parcel&quot; sample-type=&quot;real&quot; <br /> type=&quot;normal&quot; mean=&quot;28&quot; standardDeviation=&quot;17&quot;/&gt;<br /> ...<br /> &lt;resource-pool name=&quot;tester&quot; pool-size=&quot;5&quot; costs-per-time-unit=&quot;0.025&quot;/&gt;<br /> ...<br /> &lt;sim-process path=&quot;/.../ReturnDefectiveGoods/processdefinition.xml&quot;&gt;<br /> &lt;process-overwrite start-distribution=&quot;start&quot;/&gt;<br /> &lt;state-overwrite state-name=&quot;wait for parcel&quot; time-distribution=&quot;parcel&quot;&gt;<br /> &lt;transition name=&quot;parcel arrived&quot; probability=&quot;195&quot;/&gt;<br /> &lt;/state-overwrite&gt;<br /> &lt;decision-overwrite decision-name=&quot;ordered within the last two weeks?&quot;&gt;<br /> &lt;transition name=&quot;YES&quot; probability=&quot;100&quot;/&gt;<br /> &lt;transition name=&quot;NO&quot; probability=&quot;95&quot;/&gt;<br /> &lt;/decision-overwrite&gt;<br /> ...<br /> &lt;/sim-process&gt;<br />&lt;/scenario&gt;<br />
  34. 34. Live Demo & Result<br />Live-Demo<br />
  35. 35. Further topics<br />Analyzing simulation results<br />Results are just “samples”<br />Repetitions are needed<br />Use statistical theory to calculate confidence<br />Optimization<br />Not addresses by simulation itself<br />Simulation only evaluate given scenarios<br />Open Issues / Possible future work<br />GUI, support all jBPM features, better reporting, process animation, optimization<br />
  36. 36. Conclusion<br />Tool was developed and is working<br />Source Code contributed to JBoss jBPM<br />A showcase / tutorial was developed and is available on camunda homepage<br />A real-life case study was done with dataphone (Vienna)<br />Tool can leverage BPS to a wider range of people<br />
  37. 37. Thankyou!<br />Questions?<br />bernd.ruecker@camunda.com<br />Thesis availableonline: www.camunda.com<br />