Skip to content
LuisePufahl edited this page Mar 22, 2018 · 6 revisions

Scylla Developer Wiki

Business process simulation is an important means for quantitative analysis of a business process. With the Business Process Model and Notation (BPMN) being the state-of-the-art language for the graphical representation of business processes, a variety of process simulators exist which already support the simulation of BPMN process diagrams. However, they do not provide well-defined interfaces to integrate new concepts into the simulation environment. Scylla is an open and extensible BPMN process simulator written in Java with defined entry points for extensions based on a plug-in structure.

image

The Process Analyst accesses the BPMN Process Simulator via the Simulation Controller – the current user interface of the simulator. Here, a user of the simulator can select the simulation input and can configure a simulation run. As the simulator allows simulation of multiple process models at the same time, the simulation input can consist of an arbitrary number of BPMN Process Diagrams and a Simulation Configuration for each process diagram, in which the arrival rate distribution, the activity duration distribution, the branching probability etc. is given. As resources can be involved in multiple processes of their organization, the resources are defined in one Global Configuration File, where the type of resources, the number of resources, and their timetables are described; concrete resources can be defined, too. To ease extensibility, all configuration files are provided in XML.

The selected simulation input is loaded by the Simulation Manager which accesses all other components of the process simulator. First, it calls the Configurations & Process Model Parser consisting of several parsers to convert the different simulation input files into internal structures which can be efficiently queried during the simulation. With this, the Simulation Model Translator & Instantiator is called which is responsible to translate the simulation input into a DES simulation model and to initialize the DES experiment executing the simulation model. Therefore, first, the parsed input is translated into static model components like queues, distributions, and structures for data collection. Second, the initial state of the simulation model is instantiated. Initial events, e.g., an event representing the generation of a process instance, for the event list of the Discrete Event Simulator, are created and activated.

From the insights collected by the Simulation Manager, the Output Logger creates the artificial process logs and a simulation report including several calculated key performance indicators (KPIs), such as the average throughput time. Regarding the extensibility, well-defined entry points are desired for the architecture of the process simulator.

We provide the concept of Plug-ins, allowing the development of new functionality for the process simulator. A plug-in refers to one single feature and can be switched on and off in the Simulation Controller before simulation, thus supporting modularity on simulation usage level. By switching a plug-in on, its code is additionally executed at the defined entry point.