<!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>Resource Contention Analysis of Service-Based Systems through fUML-Driven Model Execution</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Martin Fleck</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luca Berardinelli</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Philip Langer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tanja Mayerhofer</string-name>
          <email>mayerhoferg@big.tuwien.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vittorio Cortellessa</string-name>
          <email>cortellessag@univaq.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Business Informatics Group, Vienna University of Technology</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dept. of Information Engineering and Computer Science and Mathematics</institution>
          ,
          <addr-line>L'Aquila</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2013</year>
      </pub-date>
      <fpage>6</fpage>
      <lpage>15</lpage>
      <abstract>
        <p>Model-driven software engineering not only enables the efficient development of software but also facilitates the analysis of non-functional properties (NFPs). As UML, the most adopted modeling language for designing software, lacks in formal execution semantics, current approaches translate UML models into dedicated analysis models, before NFPs can be computed. However, such transformations introduce additional complexity for the users and developers of analysis tools. To avoid this additional complexity, we show how the analysis of certain NFPs can be performed solely based on UML models without translating them into, e.g., queuing networks. Therefore, we leverage the execution semantics of fUML, a recent OMG standard, to gain execution traces from UML models and, based on these traces, compute indices, such as response time, taking into account the contention of resources, as well as different resource management configurations, such as balancing and scaling strategies.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        With the advent of model-driven software engineering, developers are empowered to
raise the level of abstraction during the development using high-level models and to
automatically generate executable code. This shift from code to models facilitates also the
analysis of non-functional properties (NFPs) from early stages of its development [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        UML [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is currently the most adopted design modeling language whose
extensibility, through UML profiles, lead to the emergence of several UML-based approaches
for analyzing NFPs of the modeled software. However, due to the lack of a formal
execution semantics of UML and the lack of UML-based tools for NFPs analysis,
current approaches translate UML models into different kinds of analysis models, such as
queuing networks (QN), for sake of performance analysis. Thus, a semantic gap
between UML models and analysis models has to be bridged using often complex chains
of model transformations before NFPs can be analyzed.
      </p>
      <p>
        Although researchers have accomplished significant advances in transforming UML
models in combination with applied UML profiles, such as MARTE [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], to dedicated
      </p>
      <p>
        This work is co-funded by the European Commission under the ICT Policy Support
Programme, grant no. 317859, and by the PRESTO ARTEMIS project (GA n. 269362).
analysis models, translational approaches suffer from some inherent drawbacks.
Transformations have to generate analysis models that correctly reflect the heretofore
informal semantics of UML models using concepts of the target analysis modeling
language. Implementing such transformations is a complex task that requires deep
knowledge not only of the semantics of UML and of the target analysis languages, but also
of model transformation techniques, which hampers significantly the development and
emergence of novel analysis tools. Even though transformations already exist, such
transformation chains introduce inevitably an additional level of indirection, additional
notations, and hence additional complexity, such as the consistent propagation of UML
model changes to the analysis model and analysis results back on the UML model. This
is a very relevant obstacle to the usability of analysis tools, because usually software
developers are not trained in understanding formal languages applied for the analysis [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        To address these drawbacks, France et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] suggested to integrate analysis
algorithms directly with the source modeling language, such as UML. Following this
suggestion, we proposed in previous work [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] an approach for analyzing NFPs based on
executing UML models directly. Instead of translating UML models into different
notations, we showed how the execution semantics of the Foundational UML (fUML) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
(i.e. a formally defined subset of UML standardized by the OMG) can be exploited to
obtain model-based execution traces [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] from UML models and how these traces can be
processed to compute NFPs, such as resource usage and execution time. As our previous
work supported only the analysis of single independent execution traces, we could not
consider the contention of resources. This aspect, however, is of uttermost importance
when it comes to analyzing, for instance, the scalability of cloud-based applications on
the IaaS layer or the thread contention in multicore systems.
      </p>
      <p>
        In this paper, we address this limitation and extend our previous work to study the
influence of resource contention on NFPs, such as response time, throughput, and
utilization, that require the consideration of multiple overlapping executions. We enable
this analysis within our fUML-based framework by obtaining execution traces from
executing UML models that are annotated with the MARTE profile [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], attach timing
information to these execution traces according to a workload specification, compute
the temporal relation of these execution traces, and calculate performance indices that
can so far be only obtained through translating UML models and performing the
analysis based on other notations and formalisms, such as QNs.
      </p>
      <p>As no transformation and no notation other than UML is involved, the presented
framework is easily extensible with respect to the integration of additional analysis
aspects. Thus, we further incorporated the analysis of load balancing and scaling
strategies into our framework. Thereby, developers are equipped with methods for reasoning
about optimal resource management configurations of the modeled components.</p>
      <p>This paper is organized as follows. Section 2 briefly describes how we leveraged
fUML in previous work to enable NFP analysis based on profile applications and
execution traces and discusses its current limitations. In Section 3, we present an approach
based on fUML execution traces for overcoming these limitations to also enable the
analysis of NFPs taking resource contention into account. Section 4 showcases the
applicability and benefits of our framework in a case study, before we discuss related work
in Section 5 and conclude the paper in Section 6 with an outlook on future work.</p>
    </sec>
    <sec id="sec-2">
      <title>Model Analysis with fUML</title>
      <p>The fUML standard formally defines the execution semantics of a subset of UML. This
subset consists of the structural and behavioral kernel of UML and comprises the most
important modeling concepts for defining the structure of a system using UML classes
and its behavior using UML activities. The fUML standard is accompanied by a
Javabased reference implementation of a virtual machine, which allows to compute outputs
from executing fUML activities with specified input parameters. While this enables
executing fUML-compliant models and validating their execution output, a thorough
analysis of a performed model execution is not possible. This prevents the model-based
analysis of functional and non-functional properties of the modeled system.</p>
      <p>
        To address the limitation, we extended the reference implementation of the fUML
virtual machine in previous work [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] in order to capture execution traces and to provide
them as additional output of a performed model execution. An execution trace provides
the information necessary for analyzing the runtime behavior of the executed model. It
captures information about the call hierarchy among executed activities, the
chronological execution order of activities and contained activity nodes, the input provided to and
the output produced by the activities and activity nodes, as well the token flow.
      </p>
      <p>
        We may now exploit this rich information contained by the execution traces for
performing further analyses of the system, such as performance analysis. However,
we therefore require additional information, such as execution times of single
activity nodes or activities. This information is usually provided by making use of dedicated
UML profiles, such as MARTE [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Unfortunately, fUML does not support profiles. To
address this issue, we presented a framework [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], which takes common UML models
and applied profiles as input, seamlessly adapts those models to fUML for executing
them, and transparently maps the resulting execution traces back to the level of UML,
where the information on profile applications is again accessible. Thus, our framework
enables the development of analysis components that leverage the well-defined
semantics of fUML for capturing the runtime behavior of UML models in combination with
the additional information from UML profiles. Based on this framework, we showed
how performance analysis methodologies that are based on execution graphs [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] can
be conducted directly on UML models and execution traces to aggregate demands of
computing, storage, and communication resources.
3
      </p>
      <p>Analyzing Resource Contention based on Execution Traces
To carry out a performance analysis that considers the contention of resources, we have
to deal not only with single independent executions but multiple overlapping
executions. This, however, is not possible yet as neither plain fUML nor our existing analysis
framework allows to run competing executions of models concurrently within a shared
runtime environment. Only sequential executions are supported so far, resulting in
execution traces that are independent of each other. However, when analyzing software
systems, performance indices concerning the contention of resources, such as response
time, utilization, and throughput, are of utmost importance.</p>
      <p>In this section, we show how we addressed this limitation to enable the analysis
of resource contention based solely on UML models, profile application, and model
Framework Overview</p>
      <p>Input
Software
Model
Workload</p>
      <p>Workload
Generator</p>
      <p>Trace</p>
      <p>Extractor
SC2 SC3 SC1
SC3 SC2 SC1
SC2 SC3 SC1
SC3 SC2 SC1</p>
      <p>Tracing &amp; Analysis</p>
      <p>Timed Execution</p>
      <p>Trace
00:01 SC2 SC3 SC2
00:02 SC3 SC2 SC1
00:02 SC2 SC3 SC2
00:03 SC3 SC2 SC1</p>
      <p>Performance</p>
      <p>
        Analyzer
00:01 00:02 00:03 00:04 00:05
SC2 SC3 SC2
waiting SC3 SC2 SC1
SC2 waiting SC3 SC2
waiting SC3 …
execution, without the need to translate the involved models into different notations and
formalisms, as it is done in existing approaches. Note, however, that in this paper we
consider software components as shared resources, whereas we plan to extend this work
to platform resources in the future.
4
Overview. As proposed by Di Marco [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], we adopt the idea of considering software
components as service centers [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. A job has an arrival time specifying the point in
time at which it enters the system and requires the services of different service centers.
As long as a request is processed by a service center, further requests to this service
center are stored in a queue until the service center is available. The next request from
the queue is chosen, in our case, following the first-come, first-serve (FCFS)
principle. Based on these concepts, mature algorithms are available to compute performance
indices under resource contention.
      </p>
      <p>For applying these concepts and algorithms to UML models directly, without
translating them into dedicated performance models, we propose to: (i) trigger executions of
UML models according to specific workloads for obtaining execution traces that reflect
the runtime behavior of jobs (i.e., which services are requested in which order), (ii)
annotate the arrival time to each of the resulting execution traces, and (iii) compute, based
on known service times of consumed services, the temporal relation of concurrently
running jobs (cf. Figure 1). Based on the temporal relation of executed jobs, we can
step-wise derive their temporal overlaps and compute waiting times in each queue and,
in further consequence, the overall response time, throughput, and utilization indices.</p>
      <p>In addition, we introduce dedicated types of service centers that support balancing
and scaling strategies to allow users of our framework to reason about optimal resource
management configurations. In particular, a single service center may distribute
incoming jobs to multiple instances of this service center according to certain strategies, as
well as dynamically allocate and deallocate instances (horizontal scaling).
Input. The proposed framework takes as input a UML model stereotyped with MARTE.
A summary of the stereotypes used for the software model (SW), hardware platform
(HW), and workload model (WL) can be found in Table 1. The UML model contains the
specification of the software structure and behavior, whereas MARTE is used to specify
the system workload(s) as well as the performance characteristics of its structural and
behavioral modeling elements.</p>
      <p>The software specification consists of one or more class diagrams defining the
structure and activity diagrams representing its behavior. Classes that should act as software
service centers during the model execution (RtScalableUnit) have to be extended with
information regarding: (i) the initial number of instances (srPoolSize), (ii) the
scheduling policy for the incoming operation calls (queueSchedPolicy), (iii) the balancing
strategy for selecting the instance that receives the next request (balancingStrategy), and,
optionally, (iv) the rules for horizontal scaling (scalingStrategy, timeToScale,
scalingRange, scaleInThreshold, scaleOutThreshold). Currently, no stereotypes in MARTE
can represent both balancing strategies and scaling rules, thus we extended the existing
stereotype RtUnit in this initial version of the framework to provide a set of pre-defined
rules from which the modeler can choose, such as round robin or random balancing,
and scaling based on the queue length.</p>
      <p>
        In addition, the UML activities representing the software behavior (GaStep) have
to be annotated with their respective execution times (execTime). These values may be
either computed by estimating the complexity of behavioral units (e.g., number of
executed instructions) in combination to the underlying platform characteristics (e.g.,
millions of instructions per second of HwProcessor), as done in our previous work [
        <xref ref-type="bibr" rid="ref12 ref6">6,12</xref>
        ],
or obtained from existing benchmark services.
      </p>
      <p>Alongside the structure and behavior of the software, the modeler has to specify
the workloads in terms of UML activities that represent the expected interactions with
the software. Such interactions start with a workload event (GaWorkloadEvent, e.g., a
user interaction with the system) and a behavior scenario (effect) that is triggered by
that event (cause). A behavior scenario (GaScenario) is a sequence of execution steps
(i.e., calls of activities in the software models) that require the operations associated to
service centers (that is, the RtScalableUnit classes). To specify how often a scenario is
triggered, the modeler provides an arrival pattern for different types of workloads, such
as periodic, open, or closed workloads.</p>
      <p>Workload Generator. Once the UML model is provided, the analysis can be started.
In a first step, a workload generator component reads the scenarios defining the
software workload and automatically runs each of them once by executing the associated
activities on top of the fUML virtual machine. From these executions, we obtain one
execution trace for each scenario that captures the order in which services are requested
as well as the execution time for each of the requests. In a next step, the traces are
annotated with their arrival times as obtained from the inter-arrival times randomly
generated from a probability distribution (e.g., exponential) according to the specified
arrival pattern. This step results in a set of timed execution traces.</p>
      <p>
        Performance Analyzer. The Performance Analyzer takes the timed execution traces
with their execution time as input and performs operational analysis [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Special
consideration is given to service centers having multiple instances, because they require
balancing strategies to determine which instance will get the next request from the
queue. Currently, only simple balancing and scaling strategies, such as round robin,
random balancing, and scaling based on queue length, are implemented in our prototype.
However, additional strategies can be easily added. Once the analysis is completed,
the resulting performance values are annotated in the UML model using a
GaAnalysisContext stereotype on the respective UML elements. This allows the user to view
the results directly in the editor used for UML modeling. The obtained performance
values include, among others, the waiting time and service time for the scenarios and
utilization and throughput for the service centers, i.e., instances of the corresponding
UML classes. Furthermore, it is possible to calculate the performance values for a
specific point in time or for a given time frame within the complete simulation time. Thus,
detailed graphs can be generated that show the evolution of the performance values to
provide a convenient overview. The validity of our performance analyzer has been
successfully checked by comparing its result values with the result values of an established
QN analysis tool [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Detailed results can be found on our project website [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-3">
      <title>The PetStore Case Study</title>
      <p>
        To evaluate the feasibility and applicability of our approach, we realized a prototypical
implementation [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and performed a case study. This case study concerns a PetStore,
which is a simple online store where customers can register, log in, browse a catalog
of pets, add them to their shopping cart, and place orders. The components of the
PetStore are as follows. The Application Controller is responsible for handling the user
interaction and can interact with three other software services, namely
CustomerService, CatalogService, and OrderService, that manage the customers, items, and orders,
respectively. These services, in turn, have access to an EntityManager that provides
operations to persist, retrieve, and delete PetStore data.
      </p>
      <p>
        Input. As underlying hardware platform for the PetStore, we assume that each
component runs on the same execution host having its own computing resource, i.e., CPU
with the capability to handle a certain amount of million instructions per second (mips).
Hence, as mentioned before, the resource contention is limited here to software
components. The PetStore itself is modeled using UML class diagrams for the structure and
activity diagrams for the behavior. Operations are annotated with their execution times
(GaStep) which were determined by creating an overhead matrix that combines an
estimated number of high-level instructions executed for each operation call as well as
the capability of the CPU, as described by Smith and Williams [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. In this case study,
we want to analyze a typical online shopping workload consisting of the BuyItem
Scenario, which represents a user that logs into the PetStore, searches for a specific item,
adds this item to the shopping cart and confirms the order. We assume this to occur on
sd «GaScenario» BuyItem
      </p>
      <p>«RtScalableUnit»
: Client : ApplicationController
«GaWorkloadEvent, GaStep»</p>
      <p>login(login,pw)
sessionId = login(login,pw)</p>
      <p>«GaStep»
findItem(name)
«GaStep»
login(login,pw)
customer =
login(login,pw)</p>
      <p>«GaStep»
findItem(name)
item= findItem(name)
addItemTo«CGaartS(steepss»ionId,item) addItemTo«CGaartS(cteups»tomer,item)
confirm«OGrdaeSrt(espe»ssionId) confirm«OGrdaeSrt(ecpu»stomer)
item = findItem(name)
«RtScalableUnit»
: CustomerService
«RtScalableUnit»
: CatalogService
«RtScalableUnit»
: OrderService
«RtScalableUnit»
: Entity Manager
«GaStep»
findCustomer(login,pw)
customer = findCustomer(login,pw)
«GaStep»
findAllItems()
allItems= findAllItems()
«GaStep»
persist(cart)
«GaStep»
persist(order)
«GaStep»
delete(cart)
average every two seconds, exponentially distributed, which is annotated as pattern in
the triggering event of the scenario. Figure 2 depicts the BuyItem Scenario including
the involved classes and called operations. Each lifeline corresponds to a service center
instance while each asynchronous message corresponds to the invocation of an
operation on the receiving lifeline. Note that in our model the service center annotations are
applied to a class level and not to an instance level, so all instances of the same class
share the same performance characteristics. The scenario as well as its setup, e.g., the
available pets or existing user accounts, are modeled using fUML activity diagrams.</p>
      <p>
        Due to space restrictions, we are not able to show all models in detail. We therefore
kindly refer the reader to the project website [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], where all models can be downloaded.
Analysis. Using the proposed framework introduced in Section 3, it is possible to
compute the utilization, throughput, and response time of all jobs for the overall
workload, as well as the minimum, average, and maximum waiting time and service time of
the jobs for each scenario. Besides, we calculate the idle time, busy time, utilization,
throughput, as well as the minimum, average, and maximum queue length for each
service center. The computed results are annotated in the UML model using the
contextParam tagged value of the GaAnalysisContext stereotype. Additionally, we generate
graphs showing the evolution of those indices over time. Using the defined UML model
as input, we can reason about different configurations on software service level and
explore the effect of different balancing and scaling strategies. For simplicity, we consider
four configurations in our example and focus on the utilization of service centers within
the system, as well as the overall execution time.
      </p>
      <p>For all configurations we apply the same workload within the same time frame of 6
seconds. The result for each single configuration is depicted in Figure 3. As baseline, the
first configuration (Base) only considers one instance per service center and uses neither
balancing nor scaling, resulting in a average execution time of about 87 seconds. From
these results we can identify the EntityManager as the bottleneck of the application:
the EntityManager has a very high utilization and blocks an optimal utilization of the
3
1.00
0.90
0.80
0.70
itno0.60
za0.50
li
it0.40
U0.30
0.20
0.10
0.00
Base
Duo
Trio
Dynamic
other components. This is not surprising considering that the EntityManager is needed
for almost every operation.</p>
      <p>Trying to improve this result, we introduce one (Duo) and two (Trio) additional
EntityManager instances and balance the requests between these instances using a round
robin strategy. Figure 3 shows the utilization of these additional instances, identified by
the number in the parenthesis. We can see that, in our example, multiple instances of
the EntityManager center can reduce the execution time to almost a half or third and,
hence, increase the utilization of the other service centers. However, more instances
usually also imply more costs, thus making the number of instances a tradeoff between
cost and performance.</p>
      <p>In the fourth configuration (Dynamic), we vary the number of EntityManager
instances dynamically instead of choosing a fixed number. We introduce the following
horizontal scaling strategy: whenever the average queue length of the EntityManager is
larger than 1.2, a new EntityManager instance should be allocated, and whenever the
average queue length is lower than 0.6, an instance should be removed. For the sake
of experimentation, the time needed for adding and removing instances is set to 100ms
and we allow the number of instances to range from one to three, starting with one
instance. The results for this configuration show that two additional instances are created
during the run time, but neither of them can reach a high utilization, indicating that
they might have been allocated too late. In comparison with the previous two
configurations, we can further see that horizontal scaling yields no real benefit in our example.
Possible reasons for this could be that the specified workload has little time between
two jobs and that the average queue length does not reflect the changes made through
scaling fast enough, resulting in a quick allocation and deallocation of many instances
in a short period of time.</p>
      <p>However, despite these results, this case study illustrates that NFPs concerning the
resource contention can be analyzed solely based on UML models and execution traces
with our framework. Moreover, it shows that our framework is extensible as it allows
to consider further concerns, such as the analysis of optimal configuration of balancing
and scaling strategies, which can be easily integrated with our approach.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        Due to the previous lack of semantics in UML, many UML model-based analysis
approaches (cf. Balsamo et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] for a survey) have implemented dedicated model
transformations to specific performance models that can be used as input for existing
analysis tools such as JMT [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. This eventually led to the introduction of common
performance model interchange formats, such as PMIF [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] or CSM [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], to reduce the
effort for transforming UML models to performance models and for integrating new
methodologies with existing tools. However, due to the fact that many analysis tools
existed before the introduction of the interchange formats, there is still limited support
for these intermediate formats in analysis tools [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Other methodologies such as
Palladio [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] overcome this problem by introducing their own proprietary modeling notation
and their own integrated analysis tools. However, all mentioned approaches require a
translation of UML models into corresponding modeling notations, before the analysis
can be performed.
      </p>
      <p>
        In the future, we intend to extend our work to the analysis of cloud-based
systems. However, no consensus on the right set of models, languages, model
transformations, and software processes to combine MDE and cloud computing has yet been
reached [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Nevertheless, there are already notable cloud analysis tools available, such
as CloudSim [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and its extensions, NetworkCloudSim [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and DynamicCloudSim,
but they either adopt programming languages rather than software modeling notations
to specify simulations or use existing generic simulation platforms like OMNET++ as
done in iCanCloud [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>In this paper, we have proposed an approach for enabling UML-based performance
analysis, taking into account the contention of software resources, without needing to
transform UML models into performance models. We leverage the well-defined
semantics of fUML for obtaining execution traces that represent the requested software
services according to a user-specified workload. We propose to annotate execution traces
with timing information and compute their temporal overlaps, as well as known
performance indices, such as response time and throughput. Beside the extension of our
framework to resource contention, we have considered peculiarities of dynamic
resources provisioning, as we integrate capabilities of balancing and scaling strategies.</p>
      <p>In the future, we aim to build a framework that enables users to analyze different
aspects of cloud-based software. Thus, we plan to extend the concept of shared resources
from software components to platform components and integrate more complex
balancing and scaling strategies to improve performance analysis. Furthermore, we intend to
support the analysis of costs based on the calculated timing information and dedicated
pricing models. Additionally, we plan to analyze the scalability of our approach with
different case studies and to compare the effectiveness of our approach with traditional
approaches from a users perspective, e.g., usability, and a developers perspective, e.g.,
the complexity of integrating further analysis methods, with controlled experiments.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Petriu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Alhaj</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Tawhid</surname>
          </string-name>
          .
          <article-title>Software Performance Modeling. In Formal Methods for Model-Driven Engineering</article-title>
          , volume
          <volume>7320</volume>
          <source>of LNCS</source>
          , pages
          <fpage>219</fpage>
          -
          <lpage>262</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Object Management Group.
          <article-title>OMG Unified Modeling Language (OMG UML)</article-title>
          ,
          <source>Superstructure, Version 2.4</source>
          .1,
          <year>August 2011</year>
          . Available at: http://www.omg.org/spec/UML/2.4.1.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Object Management Group.
          <source>UML Profile for MARTE, Version</source>
          <volume>1</volume>
          .1, June 2011. Available at: http://www.omg.org/spec/MARTE/1.1.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>S.</given-names>
            <surname>Balsamo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Di</given-names>
            <surname>Marco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Inverardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Simeoni</surname>
          </string-name>
          .
          <article-title>Model-Based Performance Prediction in Software Development: A Survey</article-title>
          .
          <source>IEEE TSE</source>
          ,
          <volume>30</volume>
          (
          <issue>5</issue>
          ):
          <fpage>295</fpage>
          -
          <lpage>310</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. R. B. France and
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          .
          <article-title>Model-driven Development of Complex Software: A Research Roadmap</article-title>
          .
          <source>In Proc. of the Workshop on the Future of Software Engineering (FOSE) @ ICSE</source>
          , pages
          <fpage>37</fpage>
          -
          <lpage>54</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>L.</given-names>
            <surname>Berardinelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          .
          <article-title>Combining fUML and Profiles for NonFunctional Analysis Based on Model Execution Traces</article-title>
          .
          <source>In Proc. of the 9th International ACM Sigsoft Conference on the Quality of Software Architectures (QoSA)</source>
          .
          <source>ACM</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Object Management Group.
          <article-title>Semantics of a Foundational Subset for Executable UML Models (fUML), Version 1</article-title>
          .0,
          <year>February 2011</year>
          . Available at: http://www.omg.org/spec/FUML/1.0.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Kappel</surname>
          </string-name>
          .
          <article-title>A Runtime Model for fUML</article-title>
          .
          <source>In Proc. of the 7th Workshop on Models@run.time (MRT) @ MoDELS</source>
          , pages
          <fpage>53</fpage>
          -
          <lpage>58</lpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>C. U.</given-names>
            <surname>Smith</surname>
          </string-name>
          and
          <string-name>
            <given-names>L. G.</given-names>
            <surname>Williams</surname>
          </string-name>
          .
          <article-title>Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software</article-title>
          , volume
          <volume>1</volume>
          .
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A. Di</given-names>
            <surname>Marco</surname>
          </string-name>
          .
          <article-title>Model-based Performance Analysis of Software Architectures</article-title>
          .
          <source>PhD thesis</source>
          , University of L'Aquila,
          <year>2005</year>
          . http://www.di.univaq.it/adimarco/thesis/thesis-final-web.zip.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>E. D.</given-names>
            <surname>Lazowska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zahorjan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. S.</given-names>
            <surname>Graham</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K. C.</given-names>
            <surname>Sevcik</surname>
          </string-name>
          .
          <article-title>Quantitative system performance: computer system analysis using queueing network models</article-title>
          .
          <source>Prentice-Hall</source>
          ,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>12. Business Informatics Group. Model Execution Website. http://modelexecution.org.</mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>M. Bertoli</surname>
            ,
            <given-names>G.</given-names>
            Casale, and G.
          </string-name>
          <string-name>
            <surname>Serazzi. JMT -</surname>
          </string-name>
          <article-title>Performance Engineering Tools for System Modeling</article-title>
          .
          <source>ACM SIGMETRICS Performance Evaluation Review</source>
          ,
          <volume>36</volume>
          (
          <issue>4</issue>
          ):
          <fpage>10</fpage>
          -
          <lpage>15</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>C. U. Smith</surname>
            ,
            <given-names>C. M.</given-names>
          </string-name>
          <article-title>Llado´, and</article-title>
          <string-name>
            <given-names>R.</given-names>
            <surname>Puigjaner</surname>
          </string-name>
          .
          <article-title>Performance Model Interchange Format (PMIF 2): A comprehensive approach to Queueing Network Model interoperability</article-title>
          .
          <source>Performance Evaluation</source>
          ,
          <volume>67</volume>
          (
          <issue>7</issue>
          ):
          <fpage>548</fpage>
          -
          <lpage>568</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>D. B. Petriu</surname>
            and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Woodside</surname>
          </string-name>
          .
          <article-title>An intermediate metamodel with scenarios and resources for generating performance models from UML designs</article-title>
          .
          <source>Software and Systems Modeling</source>
          ,
          <volume>6</volume>
          (
          <issue>2</issue>
          ):
          <fpage>163</fpage>
          -
          <lpage>184</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>C. U. Smith</surname>
            ,
            <given-names>C. M.</given-names>
          </string-name>
          <article-title>Llado´, and</article-title>
          <string-name>
            <given-names>R.</given-names>
            <surname>Puigjaner</surname>
          </string-name>
          . PMIF Extensions:
          <article-title>Increasing the Scope of Supported Models</article-title>
          .
          <source>In Proc. of the 1st Joint WOSP/SIPEW International Conference on Performance Engineering</source>
          , pages
          <fpage>255</fpage>
          -
          <lpage>256</lpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>S.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Koziolek</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Reussner</surname>
          </string-name>
          .
          <article-title>The Palladio component model for model-driven performance prediction</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>82</volume>
          (
          <issue>1</issue>
          ):
          <fpage>3</fpage>
          -
          <lpage>22</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. H. Brunelie`re, J. Cabot, and
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          . Combining
          <string-name>
            <surname>Model-Driven Engineering</surname>
            and
            <given-names>Cloud</given-names>
          </string-name>
          <string-name>
            <surname>Computing</surname>
          </string-name>
          .
          <source>In Proc. of 4th Workshop</source>
          on Modeling, Design, and
          <article-title>Analysis for the Service Cloud (MDA4ServiceCloud) @</article-title>
          ECMFA,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>R. N.</given-names>
            <surname>Calheiros</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ranjan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Beloglazov</surname>
          </string-name>
          ,
          <string-name>
            <surname>C. A. F. De Rose</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Buyya</surname>
          </string-name>
          .
          <article-title>CloudSim: A Toolkit for Modeling and Simulation of Cloud Computing Environments and Evaluation of Resource Provisioning Algorithms</article-title>
          .
          <source>Software: Practice and Experience</source>
          ,
          <volume>41</volume>
          (
          <issue>1</issue>
          ):
          <fpage>23</fpage>
          -
          <lpage>50</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Garg and R R. Buyya</surname>
          </string-name>
          .
          <article-title>NetworkCloudSim: Modelling Parallel Applications in Cloud Simulations</article-title>
          .
          <source>In Proc. of the 4th IEEE International Conference on Utility and Cloud Computing (UCC)</source>
          , pages
          <fpage>105</fpage>
          -
          <lpage>113</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. A. Nu´n˜ez,
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Va</surname>
          </string-name>
          <article-title>´zquez-</article-title>
          <string-name>
            <surname>Poletti</surname>
            ,
            <given-names>A. C.</given-names>
          </string-name>
          <string-name>
            <surname>Caminero</surname>
            , G. G. Castan˜e´,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Carretero</surname>
            ,
            <given-names>and I. M.</given-names>
          </string-name>
          <string-name>
            <surname>Llorente</surname>
          </string-name>
          . iCanCloud:
          <article-title>A Flexible and Scalable Cloud Infrastructure Simulator</article-title>
          .
          <source>Journal of Grid Computing</source>
          ,
          <volume>10</volume>
          (
          <issue>1</issue>
          ):
          <fpage>185</fpage>
          -
          <lpage>209</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>