<!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 BPMN Extension to Enable the Explicit Modeling of Task Resources</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Paolo Bocciarelli, Andrea D'Ambrogio, Andrea Giglio and Emiliano Paglia Dept. of Enterprise Engineering, University of Rome “TorVergata” Viale del Politecnico 1</institution>
          ,
          <addr-line>00133 Rome</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Business Process Management (BPM) is an holistic meaning of the term resource could be similar among different approach for describing, analyzing, managing, improving and domains [22], as it emerges from many studies in different executing large enterprise business processes, which can be seen research areas, obtaining a unified approach for modeling taos raeancuhmwbeelrl-odfefirneleadteodbjteacstkisvetsh.at have to be executed in order such a pervasive entity is a non-trivial issue. This is due This paper introduces an approach to the specification and to the fact that the nature of the various researches and the management of the resources that are associated to each BP inherent complexity of the different domains often lead to task and that are required to support the execution of processes the identification of different characteristics and constraints and related complex systems. This work provides a notation governing the resources behaviour [22]. ttohedaefictnive,itiaets daetsidginffetrimenet, ltehveelsreaolf eanbtsittrieasctwiohni,chalswoillsppeecriffyoirnmg As aforementioned, BPs can be very complex as they their non-functional properties. This approach makes use of may involve different systems and may require a large composition patterns in order to model complex resources into amount of operational resources. Modern BP management tree structures allowing to represent part-whole hierarchies in approaches strongly recommend the adoption of techniques a flexible and scalable manner. To accomplish these modeling to concretely support the analysis of BP behaviour (e.g, obbeejencteivxetse,ntdheed.BuBsPinMeNss PisrotcheessdMe-ofadcetloingstaNnodtaatridonfo(rBPtMheNh)ihgahs- to verify the conformity of the BP functional or nonlevel description of business processes, but does not support the functional characteristics to initial requirements, in order to characterization of the business process or related resources in assess whether or not objectives are met and plan appropriate terms of non-functional properties. recovery actions when needed). In this context, simulationThe proposed extension Performability-enabled BPMN based techniques have proven to be effective for analyzing and (aPnydBPstManNd)aridss biansterdodouncedanbyaptphreoaMchodtehlatDreixvpelnoitAs rcphriitneccitpulrees validating the performance of a BP since the early lifecycle (MDA), thus obtaining considerable advantages in terms of easy phases, when the BP is commonly specified in Business customization and improved automation. PyBPMN has been Process Model &amp; Notation (BPMN) [20]. introduced in our previous contributions for performance and In previous works we have introduced approaches and reliability analysis, and has been extended in this work for tools to improve and to make easier the simulation-based BP addTrheessipnagpaelrsoaclsoompplreexsernetssousrocmeemoedxealminpgleasndofmtahneagpemroepnots.ed performance analysis. In this respect, we have presented: i) extension usage to show how it enables the description of complex Performability-enabled BPMN (PyBPMN), a BPMN extension resources and their non-functional properties. that is used to annotate performability-oriented properties Index Terms-BPMN, business process management, MDA, (i.e., properties that address both performance and reliability) resources management, process modeling. onto BPMN models [7], ii) eBPMN, a Java-based platform to execute BP simulations [9], [10], and iii) a model-driven I. INTRODUCTION framework to generate eBPMN code from PyBPMN models Modern society is increasingly dependent on complex by use of automated model transformations [5], [6], [8]. collaborations involving multiple and independent systems, The main objective of this paper is to broaden the ranging from large organizations or bureaucracies to in- scope of the aforementioned contributions by introducing dividuals, including software or hardware systems and a further BPMN extension which specifically addresses involving manual or automated tasks eventually executed by resource management. Such an extension is developed as an heterogeneous resources. Thus, modeling Business Processes enhancement of the PyBPMN metamodel, allowing to deal (BPs) that enable the analysis of such complex collaborations with the modeling and specification of resources in the generic is a challenging issue for large organizations or governmental context of heterogeneous systems and processes. institutions, both to improve systems functioning and also More specifically, the work we describe in this paper to provide a valuable way to better understand the role of addresses the performance- and reliability-oriented BP charindividual components of such systems. acterization by focusing on a more precise understanding and To this extent, the overall structure of such complex characterization of the resource entities. systems has to be considered, making clear how the role Furthermore, the contribution in this paper goes beyond the played by resources is crucial. However, although the general previous efforts and proposes an holistic approach to resource</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>specification and management by introducing facilities to
enable the dynamic allocation of resources to process tasks
(e.g, in case of resource failures and repairs). This dynamic
and flexible association of resources (or sets of resources)
to BP tasks offers a significant degree of customizability
since it allows the use of different policies (e.g, to specify
the behaviour of backup resources) and the specification of
complex (i.e., composite) systems of resources.</p>
      <p>Moreover, the proposed extension is implemented according
to a profiling-based mechanism, which allows to obtain
significant levels of flexibility and customizability, both in
case of BP analysis carried out by use of both analytical and
simulation approaches.</p>
      <p>Finally, the paper presents some application examples that
show how the proposed approach can be effectively used.</p>
      <p>The reminder of the paper is structured as follows: Section
2 reviews related work, Section 3 gives an overview of
the previous efforts regarding PyBPMN, Section 4 describes
the new metaclasses constituting the proposed resource
management extension, Section 5 gives an overall description
of the improved PyBPMN metamodel, while Section 6
discusses a set of usage examples. Finally, Section 7 gives
concluding remarks.</p>
    </sec>
    <sec id="sec-2">
      <title>II. RELATED WORK</title>
      <p>Multiple aspects of resource management have been
investigated from different perspectives and various fields of
research. The aim of this section is to provide a concise outline
of that work.</p>
      <p>
        In the workflow and process languages research areas
various approaches for resource specification are presented,
such as [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Among the workflow and process languages
that deal with resource management, APPL/A [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], Process
Weaver [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], BPEL4WS [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], APEL [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and MVP-L [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]
are the most representative.
      </p>
      <p>
        Despite their significance, the aforementioned languages
present a limited resource specification effectiveness.
Moreover, they provide restricted support for critical issues as
describing resource relationship, resource allocation or request
specification. More specifically, BPEL4WS only deals with
resources defined as web services, and BPEL4People [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
focuses on human participation in web services [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
      <p>
        A significant approach is presented in [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], where the
authors introduce the idea of workflow resource patterns.
However, they use a restrictive concept of resource, in which
a step can have only a single resource, without the capability
of specifying any additional resources. Unlike our approach,
they did not address the potential dynamic nature of complex
and composite resources.
      </p>
      <p>
        Furthermore, differently from the aforementioned
approaches, our work aims at providing a lightweight extension
realized in full compliance with the BPMN metamodel. The
PyBPMN extension in fact, being engineered following MDA
[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] principles and standards, enables model transformations
from annotated BPMN models to executable languages.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], an extension of BPMN to enable the specification
of performance properties is presented. In such contribution,
the authors explain that BPMN does not allow to specify
nonfunctional requirements and thus they introduce a metamodel
for evaluating non-functional aspects of BPs, as well as the
related extension.
      </p>
      <p>The aforementioned contributions are limited to the
introduction of BPMN extensions, in order to enhance its
expressive capabilities. This contribution instead, proposes the
adoption of a BPMN extension as part of a model-driven
approach that seamlessly enables the use of automated model
transformations.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], the authors analyze BPMN and its ability to
represent the resources utilization and to support business
process simulation. Such contribution states that BPMN needs
an extension in order to provide the ability to specify resources
and eventually support BP simulation enactment. As a solution
to this issue, the authors proposed the use of BPSim [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ],
which is a standard that provides a framework for structural
and capacity analysis of BP models specified by use of BPMN
or XPDL (XML Process Definition Language) [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
      </p>
      <p>In this respect, this paper approach is quite different, since
differently from BPSim, the proposed PyBPMN extension has
been implemented as a BPMN metamodel extension, in order
to be suitable for various operational contexts.</p>
    </sec>
    <sec id="sec-3">
      <title>III. PERFORMABILITY-ENABLED BPMN</title>
      <p>In order to provide a clear understanding of the proposed
approach, the following subsection motivates and outlines the
previous contributions upon which this work places its basis.</p>
      <p>
        More specifically, this section provides a description of the
Performability-enabled Business Process Modeling Notation
(PyBPMN) metamodel. Such metamodel is an extension of
the standard BPMN metamodel [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and has been designed
and implemented exploiting standards, principles and methods
suggested by MDA [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], i.e., metamodeling techniques
allowing formal abstract definition of models as well as
transformations between such models.
      </p>
      <p>
        To this purpose, MOF [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] constitutes the OMG standard
enabling the specification, construction, management of
technology neutral metamodels, taking advantage of its
abstract language and its framework.
      </p>
      <p>
        As specified in the MOF abstraction architecture [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], a
level M1 model is an instance of a MOF metamodel which
is specified at level M2. The latter, is in turn an instance of
the comprehensive MOF meta-metamodel at layer 3 which
is specified in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Using the XMI specification [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], models
defined at level M1 as well as metamodels defined at level M2,
can be seamlessly serialized into XML documents and XML
schemas, respectively. In this context, the PyBPMN extension
process exploits MOF and XMI, implementing a metamodel
at M2-level which extends the BPMN metamodel at M2-level
and specifying a mapping between such metamodels in terms
of their elements.
      </p>
      <p>The model-to-model transformation enables the automatic
generation of a PyBPMN model at level M1, from the
BPMN model at level M1. The starting BPMN model is
annotated with TextAnnotation elements according to a specific
syntax. Such annotation allows the automatic generation of the
PyBPMN model applying the model-to-model transformation.
The aforementioned syntax is described in section VI.</p>
      <p>
        Figure 1 depicts the PyBPMN extension process. PyBPMN
(Performability-enabled BPMN) is a lightweight BPMN
extension that deals with the specification of performance
and reliability properties of business processes. The work for
this paper places its basis on previous contributions [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. With the aim of enriching BPMN models with
nonfunctional properties, the Modeling and Analysis of
RealTime Embedded systems (MARTE) [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] UML profile has been
originally taken into account.
      </p>
      <p>
        Moreover, the method in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] for MARTE UML profile
usage has been analyzed, in order to extract PyBPMN
metaclasses and syntax for the annotation of BPMN elements.
      </p>
      <p>
        As suggested in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], the concepts of fault, error and failure
constitute the basis of the PyBPMN extension. In the following
a brief recall of such concepts is given.
      </p>
      <p>In order to be in a correct state, a business process execution
has to be fully compliant to its requirements and specifications.
Differently, if the business process execution differs from the
correct state, it means that a failure occurs and consequently
the process reaches an incorrect state. Thus, in an incorrect
state, the service which is delivered is not the expected one.</p>
      <p>
        A process execution can be seen as a sequence of observable
states, i.e., external states [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In this scheme, a failure occurs
when at least an external state deviates from its correct state.
Such a deviation is called an error. The cause of an error is
called a fault.
      </p>
      <p>Faults can be of different nature, and can be categorized as
follows:
human-made faults, effects of human action, typically
omissions or malicious actions;
natural faults, not related to human actions, but due to
natural phenomena;
interaction faults, related to different component
interfaces misalignment or incompatibilities;
physical faults, related to hardware failures;
development faults, typically programming inaccuracies,
introduced in the development phase.</p>
      <p>A fault is said to be active only if it determines an error.
Furthermore, an error can be observed only if it generates a
failure. In the case of a business process execution, a resource
failure prevents the process to perform its activities.</p>
      <p>Given the discussion above, it is worth noting that the
concepts of faults, errors and failures as well as the relationship
among them, imply the following notions:
a business process is a set of collaborating elements. An
element can involve a single resource or more resources
to perform its job;
an execution platform is defined by a finite set
of resources. The execution platform represents the
infrastructure that allows the actual business process
execution;
if the execution platform is capable of providing all the
resources required by a process element, such element is
said to be in a correct state; differently, if at least one
of the required resources is not available, the element is
said to be in an incorrect state;
a business process is said to be in a correct state if and
only if all its elements are in a correct state.</p>
      <p>The revised PyBPMN metamodel deals with four main areas
of non-functional properties:
workload definition: responsible for modeling the
workload related to the whole business process or to
the tasks associated to the process (i.e., the execution
of single activities). The key metaclasses for workload
specification are the GaWorkloadEvent metaclass and the
ArrivalPattern metaclass;
performance properties definition: responsible for
specifying the performance properties associated to both
the process and the single task. The most common
performance properties are the service demand (service time),
the time spent to accomplish the demand (response time),
and the throughput. The key metaclasses for specifying
performance properties are of type PaQualification, such
as PaResponse and PaService;
reliability properties definition: responsible for
modeling the reliability related properties of the resources
involved in a process or associated with a task. The most
common reliability properties are the occurrence rate of
the failure, the occurrence distribution of the failure, the
mean time to failure (MTTF) and the mean time to repair
(MTTR). In order to specify such properties, a metaclass
of type DaQualification is used, such as DaFault and
DaFailure;
resource management: responsible for specifying the
actual resource which is used to execute an activity.
Constituting the main contribution of this paper, the purpose
of the resource management section of the PyBPMN
metamodel is threefold, since it allows to define non
functional properties for atomic resources (PyPerformer),
as long as groups of resources (PySubsystem), and also
alternative resources (PyBroker).</p>
      <p>The aforementioned sets of PyBPMN metaclasses are not
exhaustive. In fact, the proposed BPMN extension can be fully
automated and the collection of new metaclasses enriching
the original BPMN metamodel can be customized in order to
address specific needs, with a negligible effort.</p>
      <p>
        As for workload, performance, and reliability perspectives,
the PyBPMN metamodel has been already described in our
previous contributions. The reader who is interested in a more
precise discussion is sent to [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>From the resource perspective, the next section explains
in more detail the PyBPMN metamodel enhancement for
resources modeling and characterization, which constitutes the
main innovative contribution presented in this paper. For the
sake of simplicity, only the metaclasses and attributes related
to that perspective are shown. Attributes which have already
been described will be omitted.</p>
      <p>Next, in Section V, an overall description of the
revised PyBPMN metamodel will be given to sum up the
different perspectives (i.e., preexisting metaclasses and latest
enhancements related to resource modeling).</p>
    </sec>
    <sec id="sec-4">
      <title>IV. RESOURCE CHARACTERIZATION</title>
      <p>As for the workload, performance and reliability extensions,
new metaclasses have been introduced with the aim of
specifying non functional properties of process elements.</p>
      <p>Differently, the resource extension introduces new key notions
to the process execution.</p>
      <p>More specifically, the standard BPMN resource definition is
augmented with the resource definition of PyBPMN.</p>
      <p>The standard BPMN resource definition is abstract, because
it only defines the resource notion without specifying its
details (i.e., the real resource which is executing the activity).</p>
      <p>Differently, the PyBPMN extension enables to define, at design
time, the actual entities which will execute the activities also
specifying their non-functional properties.</p>
      <p>The idea is that a PyBPMN resource is capable of modeling
a wide range of different entities, such as an employee, an
hardware equipment, a functional division of an organization,
a web service, an autonomous system, or any other entity
which can be modeled as an element able to perform a
service request. In this perspective, a PyBPMN resource can
be modeled at different levels of abstraction during the design
phase. The corresponding level of abstraction depends on both
the amount of information available to model the resource and
the analysts point of view. In fact, the aim of the proposed
extension is to provide a unifying way of modeling resources,
in a general context, rather than for specific domains.</p>
      <p>The following is a brief description of the metaclasses
introduced by PyBPMN to describe the resources used by the
process to perform its activities, as depicted in Figure 2:</p>
      <p>PyBaseResource: this is an abstract metaclass
representing a theoretical resource. It can be specialized as follows:
PyPerformer: this metaclass represents a real work
performer that accomplishes the service requests. It has
one attribute:
– units: represents the number of concurrent working</p>
      <p>units which constitute the performer.</p>
      <p>PyBroker: this metaclass represents a resource manager
which enables the selection of a resource from a set
of candidate resources. The chosen resource becomes
responsible for the execution of the service request.</p>
      <p>More specifically, the PyBroker acts as dispatcher which
forwards the service request to only one resource at a
time (i.e., the selected resource). The resource selection
is also dynamic, in case of resource failure or resource
repair. On the first hand, when the current resource is not
available anymore (e.g. due to a failure), and on the other
hand, when a more suitable resource is available (i.e., a
better resource has been repaired yet). In both cases the
selection process is repeated and a different resource can
be selected as the currently used resource. The PyBroker
metaclass has the following attributes:
– alternatives: represents the collection of resources
which can be chosen to accomplish the service
request;
– policy: represents the strategy used for selecting the
current resource. A number of selection strategies
can be adopted. Strategies differ as regards the
implementation of the selectResource() method. In
this respect, the PyBPMN metamodel provides the
following concrete metaclasses, which inherit from
the abstract metaclass BrokerPolicy:</p>
      <p>RoundRobin: in this strategy the next resource is
selected with the aim of ensuring a fair use of all
the available resources;
PerformanceFirst: in this strategy the next
resource is selected in order to maximize
performance;
ReliabilityFirst: in this strategy the next resource
is selected in order to maximize reliability;
– standby: defines the management strategy used for
the unselected resource, i.e., the nature of the standby
redundancy, as better illustrated later on.</p>
      <p>PySubsystem: this metaclass represents a collection of
resources in the case they are all required to satisfy the
service request. In this case, the PySubsystem sequentially
dispatch the request to all the resources composing
the subsystem. This is a different behaviour compared
to the PyBroker approach, where the request is sent
only to the currently selected resource. In fact, the
PySubsystem can be understood as a complex resource
whose non functional properties are defined in terms of
its constituting components. The PySubsystem metaclass
has the following attribute:
– components: the set of resources that compose the</p>
      <p>subsystem.</p>
      <p>
        As for the implementation perspective, the PyBPMN
resource extension has been modeled conforming to the
wellknown Composite design pattern defined by [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>The strength of this approach is the capability to compose
complex elements into tree structures allowing to represent
part-whole hierarchies. In fact, the proposed PyBPMN
extension enables the specification of a resource in two
different ways. On the first hand, a single and simple definition
(PyPerformer) can be adopted for the resource, which can be
actually used to accomplish a service request. On the other
hand, more complex structures (PyBroker and PySubsystem)
can be used, thus reaching a higher level of detail. With the
latter approach, it is feasible to specify complex patterns of
resource usage:</p>
      <p>PyBroker defines a set of resources that are all capable of
performing the required activity (i.e., the service request).</p>
      <p>
        According to a selection policy the actual resource is
chosen, and the remaining resources are kept in one of
the standby states, as defined in the system reliability
literature [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]:
ensuring an higher degree of reliability;
– warm standby: this policy implements an hybrid
mechanism and can thus be seen as a particular
case of the hot standby approach. In this case the
unselected resources are all powered on but they
show a lower failure probability. This is due to the
fact that they have no load, since the service requests
are forwarded only to the selected resource.
      </p>
      <p>As aforementioned, the alternatives attribute is of type
PyBaseResource, thus implying that each candidate
resource can be a PyPerformer, a PySubsystem or
even another PyBroker. Since a PyBroker has its own
alternative resources, it can manage alternative resources
in terms of a hierarchical tree structure. Moreover, a
PyBroker fails only when all its alternative resources are
failed.</p>
      <p>PySubsystem provides a way for defining a collection of
resources which all together constitute a more complex
resource. This approach enables to describe a subsystem,
from both the performance and the reliability
perspective, specifying such properties for each elementary
component constituting it. Moreover, the component
attribute is of type PyBaseResource, and subsequently
each constituting resource can be a PyPerformer, a
PyBroker or even another PySubsystem which in turn has
its own sub components. As a consequence, similarly
to the broker approach, a PySubsystem can regulate a
hierarchical tree structure of basic components and other
complex subsystems. As a difference from the PyBroker,
it is worth noting how a PySubsystem fails when at least
one the its components is failed.
– hot standby: in this case there is the choice of
preference for performance rather than reliability.</p>
      <p>More specifically, in the hot standby redundancy
policy the unselected resources (i.e., redundant or
backup units) are all up and running as the selected
one. This implies that also the unselected resources
are aging during the process execution, even if
they are not involved. As a result, the switching
mechanism is efficient, but the redundant resources
can fail even in reserve state, since they are all ready
to go;
– cold standby: in this case, reliability is preferred pFaigtt.e3rn. . A very complex resource definition allowed by the composite design
instead of performance. In more detail, in this policy
the redundant resources are not active while the Taking advantage on the aforementioned composite design
selected resource is in service. This implies that the pattern, one can define very complex resource structures, as
failure rate in reserve state is assumed to be zero, illustrated in Figure 3. One can easily understand that every
since the redundant resources do not age while they leaf of the tree structure must be a PyPerfomer which actually
are not operating. It is clear how in this case the accomplishes the service request (i.e., executes the activity).
switching mechanism is less efficient than the hot
standby, since the newly selected resource needs to V. REVISED PYBPMN METAMODEL DESCRIPTION
be started up. The strength of this approach is that In the previous section the fundamental elements and
the redundant resources can not fail in reserve state, the resource characterization enrichment of the PyBPMN
metamodel have been described. In this section, a description
of such revised metamodel is given, focusing on how it can
be exploited for the specification of both the non-functional
properties of BPMN process elements and the non-functional
properties of the resources used by the process to execute
its activities. The revised PyBPMN metamodel, as shown in</p>
      <p>Figure 4, is based on the following fundamental metaclasses:</p>
      <p>PyData: this metaclass acts as a top-level container for all
elements that can be defined for the process. With the aim
of separating the standard elements from the extended
elements, this approach enables to arrange PyBPMN
extension elements under a single node within the BPMN
model. To this purpose, the PyData metaclass derives
from the standard Artifacts metaclass, and occurs as
an element into the artifacts attribute of the process.</p>
      <p>Furthermore, in order to augment a model with a
complete set of data over the business process, the PyData
element enables to gather both the simulation data and
the execution data in the same model. This approach
enables business analysts to master the business process,
evaluating both collected data and business process
behavior, and eventually taking appropriate actions in
the redesign phase. A single attribute characterizes the
PyData root element:
– configurations: a set of PyConfiguration elements.</p>
      <p>
        Each of these elements defines a particular
configuration of the execution platform;
PyConfiguration: a set of non functional parameters
related to a configuration. Such parameters can be
originated in different ways: required in the design
phase, estimated through simulation or measured during
business process execution. In the case of values obtained
from design or simulation, each configuration can be
assumed as a candidate execution platform for process
execution. Differently, in case of values obtained from
a real process execution, they are acquired from a
process instance. The PyConfiguration metaclass owns
the following attributes:
– refersTo: this attribute is responsible for creating
relations among different configurations (i.e., to
relate the actual measured values to those predicted
in the design phase);
– elements: a set of PyConfiguration elements, used
to specify the business process non functional
parameters;
PyElement: this metaclass is responsible for the
workload, performance and reliability characterization of
the business process, since it contains the related
non-functional properties. PyElement is defined as an
abstract metaclass, and therefore can be specialized in
PyDescriptor and PyBaseResource, the latter described
in section V. The following attributes are owned by the
PyElement metaclass and therefore by the aforementioned
derived metaclasses:
– workloadParams: responsible for specifying the
workload characterization exploiting the
GaWorkloadEvent introduced in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ];
– performanceParams: responsible for specifying the
performance characterization as introduced in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. It exploits a metaclass derived from the abstract
metaclass PaQualification (i.e., the PaService
metaclass or the PaResponse metaclass);
– reliabilityParams: responsible for specifying the
reliability characterization as introduced in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. It
exploits a metaclass derived from the abstract
metaclass DaQualification (i.e., the DaFailure metaclass
or the DaFault metaclass.
      </p>
      <p>
        With the purpose of providing a better understanding of
a PyElement data, the PyBPMN metamodel exploits the
source attribute defined for basic data type in compliance
with the UML MARTE profile [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <p>
        As illustrated in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the source attribute can take different
values, each one having a different meaning: req (i.e.,
required), est (i.e., estimated), calc (i.e., calculated) and
meas (i.e., measured). A required parameter is utilized to
specify a value which has to be satisfied by the system,
as in the case of a constraint or a requirement. An
estimated parameter is utilized to specify a prediction
for a parameter value, as typically happens in the case
of the output produced by a simulation. A calculated
parameter is utilized to specify a value which is a result
of a combination of other parameter values. Finally, a
measured parameter is utilized to specify the value of
data obtained during the execution of a business process.
      </p>
      <p>PyDescriptor: this metaclass is responsible for putting
in relation non functional properties, which are defined
exploiting the aforementioned PyBPMN extension
metaclasses, with standard BPMN elements of type FlowNode.</p>
      <p>This metaclass owns the following attributes:
– resources: this attribute represents the collection of
resources of the execution platform exploited by the</p>
      <p>BPMN element;
– targetRef : this attribute represents the unique
identifier of the BPMN FlowNode element. The
referred element will be augmented with resources
and non functional properties.</p>
      <p>A PyDescriptor and a BPMN element can be associated
in two ways:
– in the first case, the non functional properties for the</p>
      <p>BPMN element are owned by the related
PyDescriptor element, which is of kind PyElement. In this way
the BPMN element can be characterized at a high
level of abstraction with workload, performance and
reliability properties, leaving the details related to
the execution platform in background. This approach
could be suitable for a coarse analysis;
– differently, adopting the second approach, one can
explicitly define the execution platform through the
resources metaclasses, such as PyPerformer,
PyBroker or PySubsystem. After defining the execution
platform, the PyDescriptor is allowed to realize the
association between one or more resources to the
BPMN element. In this case several benefits are
obtained:
since the execution platform is clearly defined, the
business process behavior can be more precisely
analyzed;
since the PyDescriptor can reference different
resources, a sequential usage of a set of resource
can be easily modeled;
several PyDescriptor elements can refer the same
resource. The case in which the same resource
can be used by more than one BPMN elements
can thus be modeled. In such a scenario, a failure
of such resource will have an impact on all the
associated BPMN elements.</p>
    </sec>
    <sec id="sec-5">
      <title>VI. EXTENSION USAGE</title>
      <p>This Section briefly outlines the typical usage of PyBPMN
and the proposed extension for resource management
presented in Section IV. As introduced in Section II, the
PyBPMN model can be automatically obtained applying a
model-to-model transformation to a standard BPMN model.</p>
      <p>While the elements used to define the flow of tasks
and activities are natively part of the BPMN meta-model,
the non-functional aspects along with resource management
and characterization attributes are included as TextAnnotation
elements compliant with a specific syntax, according to the
proposed extension meta-model.</p>
      <p>Figure 5 gives a graphic representation of the annotation
step, as seen through a BPMN visual editor. A TextAnnotation
including some PyBPMN specification is called a
PyAnnotation. Such annotations conform to the following general
syntax:
&lt;&lt;metaclass name&gt;&gt; attribute name =</p>
      <p>{tag1=’value1’, tag2=’value2’, ...}</p>
      <p>In order to clarify the specification of PyBPMN elements,
the rest of this section gives a short application example.</p>
      <p>Let us consider a business process for managing the
delivery of a commercial proposal, which includes a task
(SendHardCopy that sends hard copy contracts to the legal
office for internal review. In this respect, the task requires
a resource, named PrinterA, to both scan the contract and
send the resulting file. Moreover, for reliability purposes, a
backup solution consisting of a scanner (e.g., ScannerB) and
a file server (FileServerB) is adopted as a backup resource
for the SendHardCopy task. In order to represent such
a scenario, several PyBPMN text annotations are required.
First of all, the following three resources are defined (for
the sake of conciseness, the serviceTime, MTTF and MTTR
attributes have been omitted from the specification of resources
ScannerB and FileServerB):
&lt;&lt;PyPerformer&gt;&gt; {
name=PrinterA,
serviceTime=(value=12, unit=s),
MTTF=(value=3, unit=year),</p>
      <p>MTTR=(value=6, unit=hour)}
&lt;&lt;PyPerformer&gt;&gt; {</p>
      <p>name=ScannerB, ...}
&lt;&lt;PyPerformer&gt;&gt; {</p>
      <p>name=FileServerB, ...}</p>
      <p>In addition, the subsystem composed of resources ScannerB
and FileServerB is specified as follows:
&lt;&lt;PySubsystem&gt;&gt; {
name=SubSystem-B,
components=(ScannerB, FileServerB)}</p>
      <p>The broker that manages the access to the different resources
is then introduced. Let us suppose that the cold standby policy
is adopted in order to maximize the overall reliability. Then
the broker is specified as follows:
&lt;&lt;PyBroker&gt;&gt; {
name=SendHardCopy,
standby=Cold,
alternatives=(PrinterA, SubSystem-B)}</p>
      <p>Finally, the association between the BPMN
SendHardCopy task and the broker is carried out through
a PyDescriptor element, as shown in the following listing:
&lt;&lt;PyDescriptor&gt;&gt; {
name=SendHardCopy_descriptor,
resources=(SendHardCopy)}</p>
    </sec>
    <sec id="sec-6">
      <title>VII. CONCLUSION</title>
      <p>This paper has introduced a metamodeling approach to
address the problem of resource management in dynamic and
complex processes.</p>
      <p>More specifically, a BPMN metamodel extension has been
presented for managing resources involved in the execution
of a BP. Since the concept of resource can assume a wide
range of meanings (resources can be humans, software or
hardware systems, etc.) the proposed approach aims to provide
an efficient support to model complex resources exploiting
composition patterns.</p>
      <p>The aforementioned approach is domain-independent and
enables a flexible and scalable way to model subsystems of
resources, possibly in a hierarchical structure.</p>
      <p>Moreover, in the proposed extension a BP task can have
a set of different resources (each one characterized by its
own non-functional parameters) associated to it, thus allowing,
during BP execution, the use of different resource selection
and allocation policies.</p>
      <p>
        This work is focused on resources characterization and
configures itself as further enhancement of PyBPMN, a
lightweight BPMN extension to enable the non-functional
characterization of BPs. PyBPMN and its resource
management extension presented in this paper are part of a
model-driven framework that enables simulation-based BP
performance and reliability analysis [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Algirdas</given-names>
            <surname>Avizienis</surname>
          </string-name>
          ,
          <string-name>
            <surname>Jean-Claude</surname>
            <given-names>Laprie</given-names>
          </string-name>
          , Brian Randell, and
          <string-name>
            <given-names>Carl</given-names>
            <surname>Landwehr</surname>
          </string-name>
          .
          <article-title>Basic concepts and taxonomy of dependable and secure computing</article-title>
          .
          <source>IEEE Trans. Dependable Secur. Comput.</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>11</fpage>
          -
          <lpage>33</lpage>
          ,
          <year>January 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>E.</given-names>
            <surname>Bauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.A.</given-names>
            <surname>Kimber</surname>
          </string-name>
          . Practical System Reliability. Wiley,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Simona</given-names>
            <surname>Bernardi</surname>
          </string-name>
          , Jos Merseguer, and
          <string-name>
            <surname>Dorina</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Petriu</surname>
          </string-name>
          .
          <article-title>Adding dependability analysis capabilities to the marte profile</article-title>
          .
          <source>In Proc. of 11 t h International Conference on Model Driven Engineering Languages and Systems (MoDELS)</source>
          , volume
          <volume>5301</volume>
          of Lecture Notes in Computer Sciences, pages
          <fpage>736</fpage>
          -
          <lpage>750</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Birolini</surname>
          </string-name>
          . Reliability Engineering:
          <article-title>Theory and Practice</article-title>
          . Engineering online library. Springer Berlin Heidelberg,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bocciarelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. D'Ambrogio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Giglio</surname>
            , and
            <given-names>E. Paglia.</given-names>
          </string-name>
          <article-title>Towards performance-oriented perfective evolution of BPMN models</article-title>
          .
          <source>In Proceedings of the Symposium on Theory of Modeling and Simulation, part of the SCS SpringSim</source>
          <year>2016</year>
          conference, Pasadena, CA, USA,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bocciarelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. D'Ambrogio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Giglio</surname>
            , E. Paglia, and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Gianni</surname>
          </string-name>
          .
          <article-title>A Transformation Approach to Enact the Design-Time Simulation of BPMN Models</article-title>
          .
          <source>In 2014 IEEE 23rd International WETICE Conference</source>
          , pages
          <fpage>199</fpage>
          -
          <lpage>204</lpage>
          . IEEE, jun
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Bocciarelli and Andrea D'Ambrogio. A BPMN</surname>
          </string-name>
          <article-title>Extension for Modeling Non Functional Properties of Business Processes</article-title>
          .
          <source>In Proceedings of the Symposium on Theory of Modeling and Simulation</source>
          , DEVS-TMS '
          <fpage>11</fpage>
          , Boston, MA, USA,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Bocciarelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>Andrea D'Ambrogio</surname>
            ,
            <given-names>Andrea</given-names>
          </string-name>
          <string-name>
            <surname>Giglio</surname>
            , and
            <given-names>Emiliano</given-names>
          </string-name>
          <string-name>
            <surname>Paglia</surname>
          </string-name>
          .
          <article-title>Simulation-based performance and reliability analysis of business processes</article-title>
          .
          <source>In Proceedings of the Winter Simulation Conference</source>
          <year>2014</year>
          , volume 2015-Janua, pages
          <fpage>3012</fpage>
          -
          <lpage>3023</lpage>
          . IEEE, dec
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Bocciarelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>Andrea D'Ambrogio</surname>
            , Andrea Giglio, Emiliano Paglia, and
            <given-names>Daniele</given-names>
          </string-name>
          <string-name>
            <surname>Gianni</surname>
          </string-name>
          .
          <article-title>Empowering business process simulation through automated model transformations</article-title>
          .
          <source>In Simulation Series</source>
          , volume
          <volume>46</volume>
          , pages
          <fpage>278</fpage>
          -
          <lpage>286</lpage>
          . The Society for Modeling and Simulation International,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Paolo</surname>
            <given-names>Bocciarelli</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andrea D'Ambrogio</surname>
            ,
            <given-names>and Emiliano</given-names>
          </string-name>
          <string-name>
            <surname>Paglia</surname>
          </string-name>
          .
          <article-title>A Language for Enabling Model-driven Analysis of Business Processes</article-title>
          .
          <source>In Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development</source>
          ,
          <source>MODELSWARD '14</source>
          , Lisbon, Portugal. SciTePress.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>M. Le Brasseur</surname>
            and
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Perdreau</surname>
          </string-name>
          .
          <article-title>Process weaver: from case to workflow applications. In CSCW (Computer Supported Co-operative Working) and the Software Process (Digest No.</article-title>
          <year>1995</year>
          /036),
          <source>IEE Colloquium on, pages 7/1-7/5</source>
          ,
          <string-name>
            <surname>Feb</surname>
          </string-name>
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Dami</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Estublier</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Amiour</surname>
          </string-name>
          .
          <article-title>Apel: A graphical yet executable formalism forprocess modeling</article-title>
          .
          <source>Automated Software Engg.</source>
          ,
          <volume>5</volume>
          (
          <issue>1</issue>
          ):
          <fpage>61</fpage>
          -
          <lpage>96</lpage>
          ,
          <year>January 1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Erich</surname>
            <given-names>Gamma</given-names>
          </string-name>
          , Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns:
          <article-title>Elements of Reusable Object-oriented Software</article-title>
          .
          <article-title>Addison-Wesley Longman Publishing Co</article-title>
          ., Inc., Boston, MA, USA,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Koenig D. Leymann F. Pfau G. Rickayzen A. von Riegen C. Schmidt P. Trickovic</surname>
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Kloppmann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Ws-bpel extension for people</article-title>
          .
          <source>Technical report</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Azeem</surname>
            <given-names>Lodhi</given-names>
          </string-name>
          , Veit Ku¨ppen, and
          <string-name>
            <given-names>Gunter</given-names>
            <surname>Saake</surname>
          </string-name>
          .
          <article-title>An extension of bpmn meta-model for evaluation of business processes</article-title>
          .
          <source>Sci. J</source>
          . Riga Tech. Univ.,
          <volume>43</volume>
          (
          <issue>1</issue>
          ):
          <fpage>27</fpage>
          -
          <lpage>34</lpage>
          ,
          <year>January 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>OASIS</given-names>
            <surname>Web Services Business Process Execution Language (WSBPEL)</surname>
            , Diane Jordan
          </string-name>
          ,
          <string-name>
            <given-names>and Alexandre</given-names>
            <surname>Alves</surname>
          </string-name>
          .
          <source>Web Services Business Process Execution Language Version 2 . 0. Language</source>
          ,
          <volume>11</volume>
          (April):
          <fpage>1</fpage>
          -
          <lpage>264</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <source>[17] OMG. MDA Guide, version 1.0</source>
          .1.,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>OMG. Meta Object</surname>
          </string-name>
          <article-title>Facility (MOF) Specification, version 2</article-title>
          .0.
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>OMG. XML Metadata</surname>
          </string-name>
          <article-title>Interchange (XMI) Specification, version 2</article-title>
          .1.1.
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>OMG. Business Process Modeling</surname>
          </string-name>
          <article-title>Notation (BPMN), version 2</article-title>
          .0, http://www.omg.org/spec/BPMN/2.0/.
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>OMG. UML</surname>
          </string-name>
          <article-title>Profile for MARTE : Modeling and Analysis of Real-Time Embedded Systems</article-title>
          , volume
          <volume>33</volume>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M S</given-names>
            <surname>Raunak and L J Osterweil.</surname>
          </string-name>
          <article-title>Resource Management for Complex, Dynamic Environments</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>39</volume>
          (X):
          <fpage>384</fpage>
          -
          <lpage>402</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>M.</given-names>
            <surname>Rausand</surname>
          </string-name>
          and
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>H?yland</article-title>
          .
          <source>System Reliability Theory: Models</source>
          ,
          <string-name>
            <given-names>Statistical</given-names>
            <surname>Methods</surname>
          </string-name>
          , and Applications. Wiley Series in Probability and Statistics - Applied Probability and Statistics Section. Wiley,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>H. Dieter</given-names>
            <surname>Rombach</surname>
          </string-name>
          .
          <article-title>Mvp-l: A language for process modeling in-thelarge</article-title>
          .
          <source>Technical report</source>
          , College Park, MD, USA,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Nick</surname>
            <given-names>Russell</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wil M. P. van der Aalst</surname>
          </string-name>
          ,
          <string-name>
            <surname>Arthur H. M. ter Hofstede</surname>
          </string-name>
          , and David Edmond.
          <article-title>Workflow resource patterns: Identification, representation and tool support</article-title>
          .
          <source>In Proceedings of the 17th International Conference on Advanced Information Systems Engineering</source>
          , CAiSE'
          <volume>05</volume>
          , pages
          <fpage>216</fpage>
          -
          <lpage>232</lpage>
          , Berlin, Heidelberg,
          <year>2005</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Stanley</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Sutton</surname>
            , Jr.,
            <given-names>Dennis</given-names>
          </string-name>
          <string-name>
            <surname>Heimbigner</surname>
            , and
            <given-names>Leon J.</given-names>
          </string-name>
          <string-name>
            <surname>Osterweil</surname>
          </string-name>
          .
          <article-title>Appl/a: A language for software process programming</article-title>
          .
          <source>ACM Trans. Softw</source>
          . Eng. Methodol.,
          <volume>4</volume>
          (
          <issue>3</issue>
          ):
          <fpage>221</fpage>
          -
          <lpage>286</lpage>
          ,
          <year>July 1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tortorella</surname>
          </string-name>
          . Reliability, Maintainability, and
          <article-title>Supportability: Best Practices for Systems Engineers</article-title>
          . Wiley Series in Systems Engineering and Management. Wiley,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          and
          <string-name>
            <surname>A. H. M. ter Hofstede</surname>
          </string-name>
          .
          <article-title>Yawl: Yet another workflow language</article-title>
          .
          <source>Inf</source>
          . Syst.,
          <volume>30</volume>
          (
          <issue>4</issue>
          ):
          <fpage>245</fpage>
          -
          <lpage>275</lpage>
          ,
          <year>June 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>Olegas</surname>
            <given-names>Vasilecas</given-names>
          </string-name>
          , Evaldas Laureckas, and
          <string-name>
            <given-names>Audrius</given-names>
            <surname>Rima</surname>
          </string-name>
          .
          <article-title>Analysis of using resources in business process modeling and simulation</article-title>
          .
          <source>Appl. Comput. Syst.</source>
          ,
          <volume>16</volume>
          (
          <issue>1</issue>
          ):
          <fpage>19</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>December 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>WfMC. XML Process Definition Language (XPDL</surname>
          </string-name>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <surname>WfMC</surname>
          </string-name>
          .
          <source>Business Process Simulation Specification (BPSim)</source>
          . pages
          <fpage>1</fpage>
          -
          <lpage>35</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>