<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Hasso Plattner Institute at the University of Potsdam</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>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. This work demonstrates an open and extensible BPMN process simulator written in Java with defined entry points for extensions based on a plug-in structure. The demo presents the architecture of the simulator and presents how it can be extended. It is aimed at researchers in the business process management field who want to evaluate new modeling artifacts by simulation.</p>
      </abstract>
      <kwd-group>
        <kwd>Business process simulation</kwd>
        <kwd>extensibility</kwd>
        <kwd>BPMN</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Business process simulation (BPS) as a quantitative analysis form for business processes
is a cost-effective way to get insights into the throughput times, costs, resource utilization
etc. of different business process designs [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The goal of a business process simulator is
to imitate the execution of a number of process instances – different process executions –
based on a given simulation input, such as a process model, stochastic information on
activity durations etc., and the resource information, to generate artificial logs as basis
for the different process statistics. With Business Process Model and Notation (BPMN)
becoming an industry-standard, widely used in research and practice, different BPMN
simulators exists, e.g., Bizagi Modeler, BonitaSoft, Visual Paradigm, and Trisotech
Modeler [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], for which a translation of the BPMN process diagram in a specific simulation
language is not necessary anymore. This avoids errors in the pre- and post-phase of
process simulation and eases the usability.
      </p>
      <p>
        BPS is also used by researchers to evaluate new modeling artifacts. However,
commercial BPMN simulators of tool vendors and also academic products, such as BIMP [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
are mainly proprietary and do not support the extensibility to new BPMN constructs.
      </p>
      <p>
        In this demo, we present an open and extensible BPMN process simulator which
builds up on a discrete simulation software called Desmo-J1. It provides a plug-in
structure with different entry points into the simulator which covers the complete simulation
flow from input parsing to output logging. The current version of the simulator consists
1 http://desmoj.sourceforge.net/
a_Architecture
of several plug-ins for advanced BPMN concept. Further, plug-ins for a new BPMN
concept, batch activities [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] which allow batch processing in business processes. This is
used to evaluate the functionality of batch activities. Additionally, the simulator is able
to simulate several process models using same resources in one simulation run.
      </p>
      <p>In the remainder, we present the basic architecture and functionality of the simulator
in Section 2. Then, the plug-in structure is presented in Section 3 in which we will also
describe existing plug-ins and how a new plug-in can be added. In Section 4, we draw a
short conclusion.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Tool Architecture and Implementation</title>
      <p>
        The current architecture of the extensible BPMN process simulator, which is written in
Java, is shown in Fig. 1 as FMC block diagram [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] in which data stores are represented
as ellipses and active components reading and writing in data stores as rectangles.
      </p>
      <p>Simulation User
ConfGigloubraatlions
Process Models</p>
      <p>Simulation
Configurations
Simulation Input</p>
      <p>R</p>
      <p>Simulation
Controller
R
Simulation
Manager
R</p>
      <p>R
R
R</p>
      <p>Log Files
Output Logger</p>
      <p>Configurations &amp;
Process Model Parser</p>
      <p>Simulation Model
Translator &amp; Instantiator
Discrete Event Simulator</p>
      <p>R
R
R</p>
      <p>Developer</p>
      <p>Plug-ins
Business Process Simulator</p>
      <p>The Process Analyst accesses the BPMN Process Simulator via the Simulation
Controller – the current user interface of the simulator shown in Fig. 2. 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 consists 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 (cf. Fig. 2). 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 time tables are described; concrete resources can be defined, too. To ease
extensibility, all configuration files are provided in XML.</p>
      <p>The selected simulation input is loaded by the Simulation Manager which accesses
all other components of the process simulator. First, it calls the Configurations &amp;
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 &amp; 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 process instance, for the event list of the Discrete
Event Simulator, are created and activated.</p>
      <p>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 (cf. Fig. 2) 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. The plug-in concept will be presented in next section.</p>
      <p>
        Details on the actual prototypical implementation of the extensible BPMN process
simulator called Scylla2 can be found in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Plug-In Concept</title>
      <p>The demonstrated process simulator is open-source, but provides also a list of abstractions
which can be refined to extend the process simulator with new concepts.</p>
      <p>Therefore, several abstract classes are defined as entry points for developers to write
plug-ins. In Fig. 3, they are categorized into the different stages of simulation: parsing,
initialization, execution, and reporting. The ParserPluggable offers an entry point to
the input parsers, such that new simulation input, e.g., a new BPMN element, can be
parsed. During initialization of the DES simulation model, the DESMO-J distribution
for the arrival rate and activity distributions are set. The entry point
DistributionConversionPluggable allows the initialization of additional distributions. While executing a
2 Its source code is available at https://github.com/bptlab/scylla and a screen cast
is available at https://bpt.hpi.uni-potsdam.de/Public/scylla.</p>
      <sec id="sec-3-1">
        <title>Initialization</title>
      </sec>
      <sec id="sec-3-2">
        <title>Execution</title>
        <sec id="sec-3-2-1">
          <title>Parser</title>
        </sec>
        <sec id="sec-3-2-2">
          <title>Pluggable</title>
        </sec>
        <sec id="sec-3-2-3">
          <title>Distribution</title>
        </sec>
        <sec id="sec-3-2-4">
          <title>Conversion</title>
        </sec>
        <sec id="sec-3-2-5">
          <title>Pluggable</title>
        </sec>
        <sec id="sec-3-2-6">
          <title>EventCreation</title>
        </sec>
        <sec id="sec-3-2-7">
          <title>Pluggable</title>
        </sec>
        <sec id="sec-3-2-8">
          <title>EventScheduling</title>
        </sec>
        <sec id="sec-3-2-9">
          <title>Pluggable</title>
        </sec>
        <sec id="sec-3-2-10">
          <title>EventOrderType</title>
        </sec>
        <sec id="sec-3-2-11">
          <title>Pluggable</title>
        </sec>
        <sec id="sec-3-2-12">
          <title>BPMNConstructs</title>
        </sec>
        <sec id="sec-3-2-13">
          <title>Pluggable</title>
        </sec>
        <sec id="sec-3-2-14">
          <title>ProcessInstance</title>
        </sec>
        <sec id="sec-3-2-15">
          <title>GenerationEvent</title>
        </sec>
        <sec id="sec-3-2-16">
          <title>Pluggable</title>
        </sec>
        <sec id="sec-3-2-17">
          <title>ExternalEvent</title>
        </sec>
        <sec id="sec-3-2-18">
          <title>Pluggable</title>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>Reporting</title>
        <sec id="sec-3-3-1">
          <title>OutputLogger</title>
        </sec>
        <sec id="sec-3-3-2">
          <title>Pluggable</title>
          <p>simulation experiment, events are generated, stored in queues, and if an event occurs,
their event routines are executed which usually results in new events. Different entry
points are available to influence DES events: EventCreationPluggable to generate new
type of events, EventSchedulingPluggable to influence the scheduling of events, and
EventOrderTypePluggable to adapt the priorities of events and changing their order in
the queues. For influencing the implemented BPMN behavior of the simulator, two entry
points exists: one on the process instance level –
ProcessInstanceGenerationEventPluggable– and one on the BPMN events level – BPMNConstructsPluggable. The latter ones
includes several sub-classes to influence the behavior of the minimum set of BPMN
elements supported by the basic simulator, for instance, BPMNStartEventPluggable,
TaskEnableEventPluggable. The ExternalEventPluggable offers the opportunity to add
behavior which is not strictly related to a single process instance, but to the general
behavior of business process simulation.</p>
          <p>
            Fig. 4 shows which
BPMN concepts are sup- 0% 25% 50% 75%
ported by the core process Normal FTlaoswk
simulator (shown in bold), End Event
whereas constructs sup- (None) Start Event
ported as plug-ins are not Data-BasedPXoOoRl
emphasized. These were Start Message
selected based on their TeMxteAsnsangoetaFtlioown
usage frequency by prac- Parallel Fork/Join
titioners [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]. Constructs Lanes
which are currently not Sub-Process (CoGllaatpesweady)
itsnautpigoprnoasryt,ehdea.vgai.rn,egTdenxisotpAliannyflneuod-- Int eInrmteermdieaDAdteaisatsMtaoeceOTisabismtjaieogecnert SCWeoemnbsiunlatring
ence on the process exe- End Terminate
cution or Message Flow Sub-Process (Expanded)
which requires an
interaction with another organi- Fig. 4. List of frequently used BPMN constructs and their support
zation. Additional to the in the business process simulator, cf. [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ].
plug-ins for advanced BPMN concepts, the simulator was extended to support batch
activities [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]. A batch activity allows to bundle the execution of groups of process
instances at this activity to increase process performance. The integration of bath activities
100%
required an extension with regards to all steps of a simulation: parsing of a new type of
BPMN element, changing the execution to allow the collection of process instances and
their synchronized execution, and logging of batch-specific KPIs (e.g., costs reduction or
waiting time due to batch processing). The developed plug-ins for supporting the batch
activity are shown in Fig. 2. With the existing entry points, it was possible to adapt the
execution semantics of business processes and to synchronize the execution of several
process instances.
          </p>
          <p>For extending the simulator, a plug-in developer can use the presented
pluggableclasses to extend them for modifying the simulator at different stages. Therefore, a
developer would generate a package to which all plug-in classes and additional needed classes
are added. This package can be added as jar-file to the simulator-project. The new plug-in
package, then, has to be registered in the plug-in list nMETA-INFnpluginsnplugins list
which can be found in the project resources.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>This paper presented an extensible BPMN process simulator with its architecture and its
plug-in structure to extend and modify the basic BPMN simulator. The current simulator
already includes plug-in packages for several advanced BPMN constructs which can
be selected or deselected for a simulation run. Further, the entry points to the simulator
were used to integrate a new BPMN concept – batch activities for batch processing in
business processes. In future, we aim to extend the simulator user interface to show the
generated simulator reports graphically.</p>
      <p>A special thanks to the student Leon Bein which developed the simulator user interface.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Lightning Fast Business Process Simulator</article-title>
          .
          <source>Master's thesis</source>
          , Institute of Computer Science, University of Tartu (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>La</given-names>
            <surname>Rosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Mendling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Reijers</surname>
          </string-name>
          ,
          <string-name>
            <surname>H.A.</surname>
          </string-name>
          , et al.:
          <article-title>Fundamentals of business process management</article-title>
          ,
          <source>vol. 1</source>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Freitas</surname>
            ,
            <given-names>A.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pereira</surname>
            ,
            <given-names>J.L.M.:</given-names>
          </string-name>
          <article-title>Process simulation support in bpm tools: The case of bpmn</article-title>
          .
          <source>In: 5th International Conference on Business Sustainability. 2100 Projects</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Kno¨pfel,
          <string-name>
            <surname>A.</surname>
          </string-name>
          , Gro¨ne,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Tabeling</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.</surname>
          </string-name>
          :
          <article-title>Fundamental Modeling Concepts: Effective Communication of IT Systems</article-title>
          . Wiley (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Pufahl</surname>
            , L., Meyer,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weske</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Batch regions: process instance synchronization based on data</article-title>
          .
          <source>In: 18th International Enterprise Distributed Object Computing Conference (EDOC)</source>
          . pp.
          <fpage>150</fpage>
          -
          <lpage>159</lpage>
          . IEEE (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Wong</surname>
          </string-name>
          , T.Y.:
          <article-title>Extensible BPMN Process Simulator</article-title>
          .
          <source>Master's thesis</source>
          , Hasso Plattner Institut, University of Potsdam (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Zur</given-names>
            <surname>Muehlen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Recker</surname>
          </string-name>
          , J.:
          <article-title>How much language is enough? theoretical and practical use of the business process modeling notation</article-title>
          .
          <source>In: International Conference on Advanced Information Systems Engineering</source>
          . pp.
          <fpage>465</fpage>
          -
          <lpage>479</lpage>
          . Springer (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>