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