<!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>A Resource Manager for Advanced Resource Management and Allocation in Processes</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sven Ihde</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Maximilian Völker</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luise Pufahl</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mathias Weske</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Hasso Plattner Institut, University of Potsdam</institution>
          ,
          <addr-line>Potsdam</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Software &amp; Business Engineering</institution>
          ,
          <addr-line>Technische Universitaet Berlin, Berlin</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>2</fpage>
      <lpage>6</lpage>
      <abstract>
        <p>Resources play an essential role in the execution of business processes as they perform the work of the business steps. Thus, resource management and allocation has a high impact on the efectiveness and eficiency of the business processes. In existing process execution systems, the capabilities of managing and allocating resources are limited. In this demo, we present a resource manager, Rembrandt, that supports to specify resources with the help of hierarchies and attributes, as well as resource allocation recipes. The allocation recipes can also be executed, whereby advanced allocation algorithms of any programming languages can be integrated. Rembrandt ofers a front-end and REST APIs that can be used by practitioners and researchers to apply its capabilities in process execution systems or simulators.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Resources are essential for the process execution (human and non-human) ensuring the process
progress by executing the tasks of a process case. Often resources are limited and expensive such
that companies strive to optimize their resource utilization whenever possible [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Traditional
process execution engines, such as Camunda1, ofer only limited techniques for resource
management, where resources are grouped into roles and allocated in a simple rule-based manner.
However, rule-based approaches can lead to sub-optimal solutions [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. An efective and eficient
process execution needs more complex resource management with a problem-oriented resource
allocation [
        <xref ref-type="bibr" rid="ref1 ref3">1, 3</xref>
        ].
      </p>
      <p>
        In this demo, we present an open-source resource manager, called Rembrandt2, enhancing
process execution engines or process simulators by advanced resource management and
allocation capabilities. Rembrandt enables users, on the one hand, to represent the organization’s
resources and resource hierarchies and specify their attributes. On the other hand, resource
allocation plans (i.e. allocation recipes) can be defined where the input, all available resources,
and the output, the allocated resources, can be specified. For running these plans, one or
several techniques or heuristics (e.g., the Munkres algorithm [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]) from other domains, such
as operations management, can be specified by the user. They can be specified in any coding
language, as Rembrandt uses docker3 for executing the allocation algorithms.
      </p>
      <p>In the remainder, we present the main functionalities in more detail. To show the maturity of
the approach, we demonstrate two integrations of the tool.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Main functionality</title>
      <p>The resource manager Rembrandt can be used to create, store, and delete resources and is
able to integrate optimization algorithms to use them for the advanced allocation of resources.
The back-end consists of two components as shown in the architecture in Fig. 1, the resource
organization and the resource optimization. The resource manager provides diferent
interfaces to connect to, a user interface for human operators and a REST API for other systems,
such as Camunda.</p>
      <sec id="sec-2-1">
        <title>2.1. Resource Organization</title>
        <p>In this component, resource types and instances can be defined, either via the Rembrandt
front-end or the provided REST API.</p>
        <p>Rembrandt allows to define hierarchies between resource types. As shown in Fig. 2, Letter
and Parcel can be modelled as sub-types of a Shipment type, and therefore share the attributes
receiver, sender, and delivered, but the attributes dimensions and weight are exclusive to parcels.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Resource Optimization</title>
        <p>In this component, resource recipes can be
defined, that are executed during run-time
via the provided REST API to receive an
optimized resource allocation for a process
activity.
1–5
Allocation recipes. Resource allocations
ifrst need to define the resources required
as well as additional constraints. This can
be specified via so-called allocation recipes
in Rembrandt. They contain step-by-step
instructions executed by the resource optimiza- Figure 2: Example of a class hierarchy of
shiption component as soon as the corresponding ment resources
optimization is requested. Rembrandt ofers in its front-end a user interface for the creation of
recipes as depicted in Fig. 3. It is a block based plug-in system with four diferent types of basic
blocks, called ingredients: Ingredients are independent parts of the recipe that are self-contained,
reusable components. Each recipe starts with at least one input ingredient, which is one of
the predefined resource types. They are used to gather all resource instances of this specific
resource type. In front and behind of optimization algorithms, transformer ingredients can be
used. They ofer functionality to modify resources to fit the respective needs of the following
building block. Transformers can change values of resource attributes, filter the list of resources,
or even change the type of the object they are working on. The most important ingredient is
the optimization ingredient. It symbolizes a concrete optimization algorithm created by the
optimization expert and has an arbitrary number of input ports and output ports, depending on
the number of defined inputs and outputs when registering the algorithm to the platform via a
docker container. At the end of each recipe an output ingredient is placed which contains the
result of the optimization. Each output ingredient saves its result in the resource manager as
one resource instance of the respective type so that the platform can continue working with
it. Furthermore, recipes can be reused within other recipes to build upon previous work and
merge common steps into one block. This allows combining multiple smaller solutions to one
complex optimization pipeline, without loss of structure and clarity.</p>
        <p>Resource Allocation Resource allocation is responsible for taking resource allocation
requests, e.g., from a process execution system, collecting them, and executing recipes inside the
resource manager. A resource allocation requests describes the requested type of resource(s) and
the needed allocation recipe. During execution, all resource instances of all input resource types
for this recipe are gathered first. Secondly, transformers are applied to the collected resource
instances and subsequently, their results are passed to the algorithm which is executed using
the respective docker container. Lastly, the output of it is stored as a new or modified resource
instance and returned to the requestor.</p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Resource Manager Workflow</title>
        <p>Working with the platform follows a clear sequence of steps. To execute a complete resource
management cycle, a few steps have to be performed: First, the general structure of resources has
to be modelled by creating a type hierarchy. As soon as this is done, concrete resource
representations can be instantiated and later modified. In parallel to the instantiation, the resource
allocation can be defined. This includes registering the available optimization algorithms, matching
them to corresponding resources as inputs and outputs, and creating appropriate recipes. Lastly,
resource allocations can be initiated by a process execution engine or a simulator. The concrete
step-by-step guide can be found here: https://rembrandt.gitbook.io/docs/use-case-guide/set-up.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Demonstration</title>
      <p>
        As mentioned before, our tool is stand-alone and thus runs separately from any process engine.
However, to fully leverage the benefits of our tool, an integration into an existing process
execution engine or simulator is necessary. The tool can be integrated into existing approaches
by using the documented application programming interface (API) based on REST/HTTP. For
demonstration purposes, we have integrated Rembrandt with the process engine Chimera4, the
process modeler Gryphon5 and the simulation tool Scylla6 as shown in the following.
Integration with a Process Execution Engine In the first use case, we integrated
Rembrandt with the process engine Chimera [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Based on the use case of a last mile parcel
delivery [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], we observed the need to extend existing BPMS in our past work [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. We extended
4https://bptlab.github.io/chimera
5https://bptlab.github.io/gryphon
6https://bptlab.github.io/scylla
the BPMS in two ways: First, we extended the process modeler, so that resource type information
and goals for the optimization can be configured in the model for each task if necessary. Second,
we extended the execution engine so that a request is sent via an extended Service Task that
calls the REST interface of Rembrandt and triggers the resource allocation7.
Integration with a Process Simulator We integrated the functionalities of Rembrandt8 into
an extensible process simulator, called Scylla [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], to demonstrate that it can enhance process
analysis capabilities of simulators. Traditionally, simulators only provide simplistic resource
allocations. We extended this behaviour9, so that more sophisticated algorithms can be used,
therefore allowing for example to identify the impact of diferent resource allocations in a
process.
      </p>
    </sec>
    <sec id="sec-4">
      <title>Acknowledgments</title>
      <p>The research leading to these results has been partly funded by the BMWi under grant agreement
01MD18012C, Project SMile.
http://smile-project.de</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>C.</given-names>
            <surname>Cabanillas</surname>
          </string-name>
          ,
          <article-title>Process-and resource-aware information systems</article-title>
          , in: EDOC,
          <year>2016</year>
          IEEE 20th International, IEEE,
          <year>2016</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>G.</given-names>
            <surname>Havur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Cabanillas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mendling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Polleres</surname>
          </string-name>
          ,
          <article-title>Resource allocation with dependencies in business process management systems</article-title>
          , in: BPM, Springer,
          <year>2016</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>19</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ihde</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pufahl</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.-B. Lin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Goel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Weske</surname>
          </string-name>
          ,
          <article-title>Optimized resource allocations in business process models, in: Business Process Management Forum</article-title>
          .
          <source>BPM</source>
          <year>2019</year>
          ., Springer,
          <year>2019</year>
          , pp.
          <fpage>55</fpage>
          -
          <lpage>71</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Munkres</surname>
          </string-name>
          ,
          <article-title>Algorithms for the assignment and transportation problems</article-title>
          ,
          <source>Journal of the society for industrial and applied mathematics 5</source>
          (
          <year>1957</year>
          )
          <fpage>32</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Haarmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Podlesny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hewelt</surname>
          </string-name>
          , A. Meyer, M. Weske,
          <article-title>Production case management: A prototypical process engine to execute flexible business processes</article-title>
          .,
          <source>in: BPM (Demos)</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>110</fpage>
          -
          <lpage>114</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L.</given-names>
            <surname>Pufahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ihde</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Glöckner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Franczyk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Paulus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Weske</surname>
          </string-name>
          ,
          <article-title>Countering congestion: A white-label platform for the last mile parcel delivery</article-title>
          ,
          <source>in: 23rd International Conference on Business Information Systems</source>
          , Springer,
          <year>2020</year>
          , pp.
          <fpage>210</fpage>
          -
          <lpage>223</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>L.</given-names>
            <surname>Pufahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. Y.</given-names>
            <surname>Wong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Weske</surname>
          </string-name>
          ,
          <article-title>Design of an extensible bpmn process simulator</article-title>
          ,
          <source>in: International conference on business process management</source>
          , Springer,
          <year>2017</year>
          , pp.
          <fpage>782</fpage>
          -
          <lpage>795</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>