<!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>
      <title-group>
        <article-title>MIDA: Multiple Instances and Data Animator</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Flavio Corradini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Chiara Muzi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Barbara Re</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lorenzo Rossi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Francesco Tiezzi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Science and Technology, University of Camerino</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The BPMN standard is largely adopted by industry and academia due to its intuitive graphical notation. Nevertheless, fully understanding the behaviour of BPMN collaboration models may be difficult when dealing at the same time with multiple instances, exchange of messages, and data manipulation. Figuring out the interplay between such concepts by statically looking at models is in general error-prone and time-consuming. To overcome this issue we provide a novel model animator tool, called MIDA. It turns out to be an effective supporting tool for enhancing the understanding of BPMN collaborations and debugging errors that can easily arise in modelling them.</p>
      </abstract>
      <kwd-group>
        <kwd>BPMN</kwd>
        <kwd>Multi-Instance Collaborations</kwd>
        <kwd>Data Handling</kwd>
        <kwd>Animation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        The BPMN standard [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] is nowadays the most prominent modelling notation for
business processes. In particular, BPMN collaboration diagrams provide an effective way
to describe how multiple participants cooperate to reach a shared goal. However, the
standard leaves unformalised the interplay between control flow, data handling and
exchange of messages in scenarios requiring multiple instances of some interacting
participants. These concepts are indeed strictly related to each other. The arrival of a message
can create a new process instance if caught by a start message event, or can drive the
behaviour of a running instance if caught during the process flow. In both cases, messages
deliver data whose content can be used to fill data objects and to influence the process
behaviour. In particular, the content of messages is used by the correlation mechanism
to deliver them to the appropriate process instances. This is particularly useful in case
of models including multi-instance pools. However, the lack of formalisation has
consequently led to a lack of tools supporting designers in the modelling and debugging
of collaborations involving these tricky, yet crucial, features of BPMN. In fact,
designers are currently not assisted in figuring out the (possibly complex) behaviour of such
models, and just looking at their static descriptions is in general an error-prone task.
      </p>
      <p>To clarify this issue, we resort to a multi-instance collaboration model that will be
used as a case study throughout this demo paper. The collaboration diagram depicted in
Fig. 1 concerns with the management of a hotel booking involving three participants: the
Customer, the Booking System, and the Hotel. The collaboration represents a scenario
in which the Customer interacts with the Booking System in order to get a list of hotel
quotes for a desired travel. To serve the customer request, the Booking System creates
a process instance. This, in its turn, sends multiple requests (via a multi-instance
sending task) to the Hotel pool, thus creating many instances of this latter participant. The
F. Casati et al. (Eds.): Proceedings of the Dissertation Award and Demonstration, Industrial Track at BPM 2018,
CEUR-WS.org, 2018. Copyright © 2018 for this paper by its authors. Copying permitted for private and academic
purposes. This volume is published and copyrighted by its editors.
Canvas</p>
      <p>Booking System collects the quotes for the Customer and sends them to him. Finally, the
Customer communicates the selected hotel to the Booking System, which consequently
gives a feedback to both selected and discarded Hotel instances. To model correctly this
collaboration the diagram must contain enough information to correlate each message
with the appropriate instance. For example, if messages are not properly delivered, an
Hotel instance may save a transaction even if it has not been selected.</p>
      <p>
        Model animation plays an important role to address the issues that may arise when
modelling multi-instance collaborations, such as the intricate management of the
correlation mechanism or the handling of data and messages. Animation can enhance the
understanding of business processes behaviour [
        <xref ref-type="bibr" rid="ref4 ref5">5,4</xref>
        ], especially in presence of a faithful
correspondence with a precise semantics [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] (which, in our case, is described in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]). In
the literature, few relevant contributions have been proposed: the animator by Allweyer
and Schweitzer [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], and those developed by Signavio and Visual Paradigm. However,
these tools do not support the interplay between multiple instances, messages and data,
hence they do not allow designers to deal with the mentioned issues.
      </p>
      <p>Therefore, we have developed MIDA (Multiple Instances and Data Animator), a
novel animator tool. It supports designers in achieving a more precise understanding of
the behaviour of a collaboration by means of the visualisation of the model execution,
also in terms of the values evolution of data objects and messages. MIDA animation
features result helpful both in educational contexts, for explaining the behaviour of
BPMN elements, and in practical modelling activities, for debugging errors that can
easily arise in multi-instance collaborations.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Main Features of MIDA</title>
      <p>In this section, we present the MIDA modelling and animation features, specifically
focussing on the interplay between data, messages and multiple instances.</p>
      <p>Travel Info
Travel Order</p>
      <p>Travel
m
e
t
s
y
S
ikgn Quote
oo Management
B</p>
      <p>Customer</p>
      <p>Choices
Require
Quotes</p>
      <p>Receive and
Combine Quotes</p>
      <p>Travel Quotes</p>
      <p>Selected Quote
Send
Quotes
Customer</p>
      <p>Quotes</p>
      <p>Travel Quote
if (Travel_destination != undefined</p>
      <p>&amp; Travel_period != undefined) {
var TravelInfo_customer =Quotes
vvaaCrrTCTaQrulrucTTaasuovrrvtlteaaaeeoltvvelmee_elldrIIeNnnsafftmooie__n;RdpQaTeeeurtcaosreivttiieeovslioennd;QSauet=onitdeon = TSrCaeovleenclfitQrmaFuRnoeaQdteeeucdoebitavecek</p>
      <p>Receive
Selected
Quotes</p>
      <p>Send
Feedback</p>
      <p>Quote</p>
      <p>Managed
MIDA: Multiple Instances and Data Animator</p>
      <p>Feedback</p>
      <p>Save
yes Transaction
Animation. The key characteristic of MIDA is the animation of collaboration models,
supporting in particular the visualisation of data evolution and multiple instances
execution. At any time, the animation can be paused by the user to check the distribution of</p>
      <p>Fig. 4: MIDA Animation.
tokens and the current state of data. From a practical point of view, this allows
designers to debug their collaboration models. They can indeed detect undesired executions,
where e.g. a control flow is blocked, and deduce the cause beyond them by possibly
checking the values of the involved data. These debugging facilities are particularly
useful in case of multi-instance collaborations, where data values are used to regulate
the correlation of messages with instances. Anyway, like in software code debugging,
the identification and fixing of bugs are still in charge of the human user.</p>
      <p>
        By selecting the Animation Mode in the MIDA interface, a play button will appear
over each fireable start event. Once this button is clicked, one or more instances of the
desired process are activated, depending on the multi-instance information specified in
the model. This creates a new token labelled by a fresh instance identifier. Then, as
shown in Fig. 4, the token starts to cross the model according to the operational rules
induced by our formal semantics [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The animation terminates once all tokens cannot
move forward. In case a token remains blocked due to a data handling issue, e.g. a
wrong correlation or a guard condition violation, MIDA highlights it in red as in Fig. 5.
      </p>
      <p>The Data Panel of the MIDA
interface allows the user to monitor the
evolution of data values. Fig. 6 shows how
data values change after the execution of
the task Require Quotes, which stores the
values received via the Travel Info
message in the fields destination, period and
customer of the Customer Choices data
object.</p>
      <p>Fig. 5: Guard Violation.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Model Debugging with MIDA</title>
      <p>In this section, we present how MIDA can effectively support designers in debugging
their models. We resort to our case study in Fig. 1 to show how issues related to instance
correlation can be detected.</p>
      <p>Let us consider the effect of messages arrival into the Hotel pool. The arrival of a
Travel Order message triggers the activation of a new process instance, while a
Feedback message has to be routed to an already existing instance. Hence, in the latter case,
the message needs to be properly correlated. In fact, after the choice performed by the
Customer, only the selected Hotel instance has to receive a positive Feedback and then
perform the Save Transaction task. To do that, each Feedback message contains the
unique name of the Hotel that has to receive it. However, if the correlation check would
be not properly specified in the receive task Receive Quote Feedback (e.g., only the
travel period is used as correlation data or no correlation data is provided), the feedback
messages would be not correctelly delivered. As consequence, the unwanted Hotel
instances may book an overnight stay in vain, while the one selected by the Customer
would not. This bug can be detected by MIDA as the Hotel chosen by the customer,
stored in Customer Quotes, would not be the one stored in the Order Quote data object
of the corresponding Hotel instance. To fix the bug, the designer can specify the
conditional expression OrderQuote_hotelName === Feedback_hotelName of
the receive task thus enabling the right message correlation.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Screencast and Website</title>
      <p>The MIDA tool, as well as its source code, examples, user guide and screencast, are
available at http://pros.unicam.it/mida/. In particular, the screencast shows
a typical scenario where the user requires to model, animate, and debug a BPMN model.
MIDA can be redistributed and/or modified under the terms of the MIT License.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Allweyer</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schweitzer</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A tool for animating BPMN token flow</article-title>
          .
          <source>In: BPMN Workshop. LNBIP</source>
          , vol.
          <volume>125</volume>
          , pp.
          <fpage>98</fpage>
          -
          <lpage>106</lpage>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Becker</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kugeler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosemann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Process management: a guide for the design of business processes</article-title>
          . Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Corradini</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Muzi</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Re</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rossi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tiezzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Animating Multiple Instances in BPMN Collaborations: from Formal Semantics to Tool Support (</article-title>
          <year>2018</year>
          ), BPM'
          <fpage>18</fpage>
          - To Appear.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Desel</surname>
          </string-name>
          , J.:
          <article-title>Teaching system modeling, simulation and validation</article-title>
          .
          <source>In: WSC</source>
          . pp.
          <fpage>1669</fpage>
          -
          <lpage>1675</lpage>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. Hermann et al.,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Collaborative business process management - a literature-based analysis of methods for supporting model understandability</article-title>
          .
          <source>In: WI</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. OMG:
          <article-title>Business Process Model and Notation (BPMN V 2.0) (</article-title>
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Philipp</given-names>
            <surname>Fromme</surname>
          </string-name>
          and
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Warnke</surname>
          </string-name>
          and
          <article-title>Patrick Dehn: bpmn-js Token Simulation (</article-title>
          <year>2017</year>
          ), https://github.com/bpmn-io/
          <article-title>bpmn-js-token-simulation</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>