<!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>Production Case Management: A Prototypical Process Engine to Execute Flexible Business Processes</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stephan Haarmann</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nikolai J. Podlesny</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marcin Hewelt</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Meyer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mathias Weske</string-name>
          <email>Mathias.Weskeg@hpi.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Hasso Plattner Institute at the University of Potsdam</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>In Business Process Management (BPM) recently several approaches have been proposed to handle flexible process execution, counter the strict adherence to process models at run-time, and allow for adaptations unforeseen at design-time. One of those approaches is Production Case Management (PCM) that aims at combining the strengths of structured process modeling and dynamic adaptation during run-time. PCM is an approach to model and execute flexible, data-driven, and user-centric business processes. Complementing the conceptual framework, we introduce a modeler and an engine for PCM in this paper.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Business Process Management (BPM) is an approach to systematically structure,
support, and optimize the business operations of organizations. Usually, they are described
by means of process models containing partially ordered control and data flow nodes
and can be executed automatically by business process management systems [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In
practice, process execution may deviate from process models due to unexpected
happenings or because some employee found a more suitable way achieving the same goal.
Targeting such situations, flexible process approaches have been introduced; one of
them is Production Case Management (PCM) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. PCM builds upon the industry
standard BPMN, the Business Process Model and Notation, and introduces design- and
run-time flexibility. Thereby, PCM aims at combining the structure and guidance
provided by traditional activity-centric BPM approaches, e.g., BPMN, with the flexibility
of object-centric approaches like Adaptive Case Management (ACM) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and case
handling [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. While a conceptual framework for PCM has been initially described in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], a
concrete implementation of these concepts was left open.
      </p>
      <p>In this paper, we present our prototypical implementation for PCM allowing
modeling and execution of business processes represented as PCM scenarios. Therefore,
we first summarize the PCM approach in Section 2. Afterwards, Section 3 presents the
architecture of our tool, which is complemented by the information flow described in
Section 4. Finally, Section 5 concludes the paper.</p>
      <p>Copyright c 2015 for this paper by its authors. Copying permitted for private and academic
purposes.</p>
    </sec>
    <sec id="sec-2">
      <title>Production Case Management</title>
      <p>
        Production Case Management (PCM) utilizes BPMN as process modeling language.
But instead of using one large diagram for a single process model, PCM distributes the
process logic over multiple smaller process fragments collectively defining the process
model. Fragments may be added to a PCM scenario at any time, even during run-time,
thus increasing the degree of freedom. At run-time, they are combined dynamically
based on data dependencies. In fact, PCM distinguishes between control flow
enablement and data enablement. An activity is control flow enabled, when the control flow
reaches it; an activity is data flow enabled, when one specified input data set is
completely available. An activity is enabled, if it is control-flow enabled and data-flow
enabled. Additionally, the set of process fragments is accompanied by a data model
together specifying a PCM scenario. Figure 1 shows four process fragments for an offer
creation process adapted from a real-world process in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], where fragments A and C
show alternative ways of creating the offer and fragments B and D allow termination of
the process model by either sending out or canceling the offer. In PCM, the termination
event visualizes the termination condition, i.e. when a business process is completed;
here: an offer object in state canceled or sent. Activities with a bold border are
considered link activities meaning they are executed together in specific cases.
      </p>
      <p>Offer
[init]</p>
      <sec id="sec-2-1">
        <title>Offer Offer Offer</title>
        <p>[created] [approved] r[ecqhuaensgte]
Create
offer
Validate</p>
        <p>offer
(a) Fragment “A”.</p>
        <p>Offer
[init]</p>
        <p>Offer
[created]</p>
      </sec>
      <sec id="sec-2-2">
        <title>Offer Offer Offer</title>
        <p>[extended] [approved] r[ecqhuaensgte]
Create
offer</p>
        <p>Enter
offer
restrictions
(c) Fragment “C”.</p>
        <p>Validate
offer</p>
        <p>Offer
[approved]</p>
        <p>Offer
[sent]
Send
offer
(b) Fragment “B”.</p>
        <p>Offer
[*]</p>
        <p>Offer
[canceled]
Cancel
case
(d) Fragment “D”.</p>
        <p>When a PCM scenario is instantiated, the start event of all process fragments occurs
and the first control flow nodes, here four activities, get control flow enabled.
Additionally, the data objects are initialized – usually in state init. However, since data objects
may be used across process model boundaries, some objects may also be in some other
state. In this paper, we assume an initialization in state init. Based on these data states,
data availability is computed. In the given example, activities Create offer and Cancel
offer are data flow enabled (the star * in the data node means that any state matches the
condition). Consequently, these activities may be executed since they are enabled from
both control and data flow perspective.</p>
        <p>
          Fragments are executed concurrently and repeatedly, i.e., once a fragment
terminates a new instance of this fragment is created except if the termination condition is
fullfilled. Then, all fragment instances terminate. Details on the operational semantics
are provided in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] and thus omitted here.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Architecture and Implementation</title>
      <p>PCM database</p>
      <p>JAnalytics
Modeler
Process
editor
Admin</p>
      <p>User
JCore</p>
      <p>R</p>
      <p>JEngine
JComparser</p>
      <p>REST</p>
      <p>JFrontend</p>
      <p>JEngine. The JEngine consists of multiple sub-components. The JComparser fetches
the process models, i.e., PCM scenarios, from the model repository of the process
editor, deserializes the models following our domain model, and caches the information in
1 Fundamental Modeling Concepts, www.fmc-modeling.org/
2 http://frapu.de/code/processeditor/
3 Details are given in the tool documentation at https://bpt.hpi.uni-potsdam.de/</p>
      <p>Public/JEngineDoc
Plain Old Java Objects (POJOs). Afterwards, they are persisted in the engine-internal
PCM database, which is the only place where the models are referenced for the actual
execution. Adaptations to the process models are also stored in the database that
supports revision control to allow execution on old data sets if required by some process
model. Generally, we migrate running process instances, the actual executions, to the
latest data set, if only new process fragments were added. Otherwise, we preserve the
old version with which the process instance was started.</p>
      <p>
        This execution is handled by the JCore which encapsulates the corresponding logic
based on the operational semantics given in the implementation framework in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. For
the actual execution, scenarios, fragments, activities, and data objects are resources as
defined in the REST specification. They are accessible through a unique URI. With
regards to the CRUD schema [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], all resources can be used for interactions realized
through the HTTP methods POST, GET, PUT and DELETE referring to create, read,
update, and delete actions. Following the operational semantics, the JCore provides
all currently enabled activities to the process participant who then chooses one for
execution. Upon termination (or cancellation) of an activity, the JCore recomputes the
enabled activities. If the next enabled activity is a web service or an email task – the
two types of service tasks we currently support – it will be performed automatically by
the JCore.
      </p>
      <p>The JAnalytics sub-component stores each state change of an activity and data
object including their attribute changes. Based thereon, we provide process monitoring
capabilities and build-up a large event log for later statistical computations. This
subcomponent provides a dynamic model-controller pattern for simply adding new
algorithms and dynamic communication through REST for accessing the extended
algorithms.</p>
      <p>Frontend. The JFrontend implements the web interface for our PCM engine, thus
allowing to monitor the process execution and to selectt the next activity to be executed.
Our frontend is based on the widely used JavaScript library AngularJS4. To fetch the
information to be displayed to the process participant and for PCM scenario deployment,
execution, and configuration, the JFrontend utilizes the previously stated REST
interfaces. The user interface provides two views: one for configuration and another one for
execution. In the former, for instance, the service tasks are configured by specifying the
web service to be accessed or the email specifics to be used for sending emails. The
latter consists of fine-grained information-boxes that allow dynamic representation of the
process progress. A detailed view on the user interface is provided in our screencast at
https://bpt.hpi.uni-potsdam.de/Public/JEngineDoc while the
upcoming section provides a walk-through of our tool.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Information Flow</title>
      <p>Successful execution of process scenarios comprises five steps assuming that modeling
is already completed and the scenarios are available in the process model repository.
4 https://angularjs.org/
(1) The PCM scenarios are retrieved from the model repository and deployed through
a REST call from the JFrontend to the JComparser and further to the process editor
(chain of responsibility). Thereby, the process participant (user) selects the PCM
scenarios to be fetched. Additionally, all corresponding process fragments are retrieved.
Upon retrieval, the JComparser parses all fragments into the domain-model-format and
enables persistence in the execution database. (2) Once imported, the JFrontend can
execute the scenario through the JCore. Requests from the user (manual task) or from the
JCore (service task) allow the start and termination of process instances and activities as
well as manipulation of data objects. (3) All changes are saved in the history
(JAnalytics) and can be accessed through corresponding REST interface. (4) While analysis can
be performed based on historic and current data through our analysis framework, there
is no generic user interface for the JAnalytics framework such that new algorithms must
be integrated manually. (5) Finally, all information is returned to the JFrontend and
visualized to the process participant.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, we presented our prototypical implementation of a process engine to
execute process models following the concept of Production Case Management (PCM).
PCM is a novel approach to allow design-time and run-time flexibility for BPMN
while benefiting from BPMN’s acceptance and preserving its idea of structural and
guidance-based model enactment. The publicly available source code, the
documentation, and a screencast of our process engine are available at https://bpt.hpi.
uni-potsdam.de/Public/JEngineDoc.</p>
      <p>Acknowledgements. We thank Jaspar Mang, Juliane Imme, Jan Selke, and Sven Ihde for their
continuous support towards implementation of this prototypical process engine for PCM.
Additinally, we thank Frank Puhlmann for many fruitful discussions and Bosch Software Innovations
GmbH for funding the connected research project.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weske</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Gru¨nbauer, D.:
          <article-title>Case Handling: A New Paradigm for Business Process Support</article-title>
          .
          <source>Data &amp; Knowledge Engineering</source>
          <volume>53</volume>
          (
          <issue>2</issue>
          ),
          <fpage>129</fpage>
          -
          <lpage>162</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Fielding</surname>
            ,
            <given-names>R.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taylor</surname>
          </string-name>
          , R.N.:
          <article-title>Principled Design of the Modern Web Architecture</article-title>
          .
          <source>ACM Transactions on Internet Technology (TOIT) 2</source>
          (
          <issue>2</issue>
          ),
          <fpage>115</fpage>
          -
          <lpage>150</lpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. 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>
          :
          <source>Fundamental Modeling Concepts</source>
          .
          <source>Wiley</source>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Meyer, A.,
          <string-name>
            <surname>Herzberg</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Puhlmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weske</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Implementation Framework for Production Case Management: Modeling and Execution</article-title>
          . In: EDOC. pp.
          <fpage>190</fpage>
          -
          <lpage>199</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Richardson</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruby</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : RESTful
          <string-name>
            <given-names>Web</given-names>
            <surname>Services. O'Reilly Media</surname>
          </string-name>
          , Inc. (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Silberschatz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Korth</surname>
            ,
            <given-names>H.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sudarshan</surname>
            ,
            <given-names>S.: Database</given-names>
          </string-name>
          <string-name>
            <surname>System Concepts. McGraw-Hill Book</surname>
          </string-name>
          Company (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Swenson</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palmer</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pucher</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Case Management: Contrasting Production vs</article-title>
          .
          <source>Adaptive. In: How Knowledge Workers Get Things Done</source>
          . pp.
          <fpage>109</fpage>
          -
          <lpage>118</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Weske</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Business Process Management: Concepts, Languages, Architectures</article-title>
          .
          <source>Second Edition</source>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>