<!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>Towards Monitoring Cloud Services Using Models@run.time</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Priscila Cedillo</string-name>
          <email>icedillo@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Javier Gonzalez-Huerta</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Silvia Abrahao</string-name>
          <email>sabrahao@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emilio Insfran</string-name>
          <email>einsfran@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ISSI Research Group, Department of Information Systems and Computation Universitat Politècnica de València</institution>
          ,
          <addr-line>Camino de Vera, s/n, 46022, Valencia</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Cloud computing represents a new trend to provide software services. In order to deliver these services there are certain quality levels that should be considered. The provided services need to comply with a set of contract terms and non-functional requirements specified by a service level agreement (SLA). In addition, to support the fulfillment of the SLA a monitoring process should be defined. This allows service providers to determine the actual quality level of services in the cloud. In this paper, we define a monitoring process for the usage of models at runtime, specifying low- and high-level nonfunctional requirements contained in a SLA. Models at runtime provide flexibility to the monitoring infrastructure due to their reflection mechanisms; the modification of non-functional requirements may dynamically change the monitoring computation, avoiding the need to adjust the monitoring infrastructure. In our approach, models at runtime are part of a monitoring middleware that interacts with cloud services; it retrieves data in the model at runtime, analyzes the information, and provides a report detailing the issues of non-compliance of non-functional requirements.</p>
      </abstract>
      <kwd-group>
        <kwd>Cloud Computing</kwd>
        <kwd>SaaS</kwd>
        <kwd>Models@run</kwd>
        <kwd>time</kwd>
        <kwd>SLA</kwd>
        <kwd>Monitoring</kwd>
        <kwd>Model Driven Engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The evolution of cloud computing technologies is promoting the development of new
techniques to provide high-quality services. Cloud computing infrastructures, with
software as a service model, provide capability to consumers to use software and
services hosted in the cloud platform. Due to the nature of the cloud, the ways in
which services are built and deployed have changed. As a result, it is necessary to
fulfill non-functional requirements including the most specific characteristics of the
cloud (e. g. scalability and elasticity).</p>
      <p>
        Service Level Agreements (SLAs) emerge as a key aspect to ensure the expected
quality level of the services between the consumer and the provider. ITIL defines a
SLA as a formal, negotiated document in quantitative terms (and perhaps qualitative
terms), detailing the service that will be offered to a customer [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Any metrics
included in a SLA should be capable of being measured on a regular basis and the SLA
should record them [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Problems arise from the current practice in SLA specification
for IT services because SLAs are mostly based on templates, mainly filled with
natural language descriptions that make it difficult to automate SLA compliance
verification [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. In order to support the SLA fulfillment and timely reaction to failures,
advanced SLA strategies are necessary. These techniques include appropriate
resourcemonitoring concepts. The Quality-of-Service (QoS) attributes, which are generally
part of an SLA, change constantly in order to fulfill the agreement. As a result, these
attributes need to be closely monitored [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Traditional monitoring technologies are restricted to static and homogenous
environments and, therefore, cannot be appropriately applied to cloud environments [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
In traditional software development, many assumptions in the context of an
application are described at design time; however, in cloud computing, those assumptions are
not possible [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Moreover, several non-functional assurance criteria may be more
easily guaranteed at runtime than at design time. For example, it is easier to assess
latency when it is possible to measure and continually monitor delay times in the
running system [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Cloud computing brings new issues, challenges and needs in
performance testing, evaluation and scalability measurements due to the special features
of cloud computing, such as latency, elasticity and scalability [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. The information of
the system in execution feeds the models at runtime, which support reasoning,
adaptation or monitoring of the system. To realize such a connection between the running
system and the models at runtime, the system needs a self-representation of its quality
view, which is used to map the raw data with the high-level requirements specified in
the SLA.
      </p>
      <p>
        Based on the utilization of models, a runtime model is defined as an abstraction of
a running system which is being manipulated at runtime for a specific purpose [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
Another definition of a model at runtime is a causally connected self-representation of
the associated system that emphasizes the structure, behavior and goals of the system
from a problem space perspective [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        As far as we know, there is a lack of studies which uses models at runtime in cloud
computing environments. Models at runtime are useful to support cloud services
monitoring because developers do not need to implement new requirements that should be
included for monitoring in the infrastructure; they only need to include them in the
model. Moreover, cloud computing environments bring new issues and present
particular characteristics that differentiate the ways in which we should measure their
quality [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>This paper presents an approach to monitor non-functional requirements of cloud
services specified in the SLA using models at runtime, through a middleware that
interacts with services or applications in the cloud. This middleware retrieves
information from the running system and feeds the model at runtime, analyzing this
information, and providing a report with issues that violate the SLA.</p>
      <p>This approach is useful to measure higher-level attributes. It is important to
consider that models at runtime give flexibility when the evaluator needs to change
monitoring criteria or wants to change the parameters to be monitored; this is because the
monitoring system does not need to be adjusted in this case and only the attributes to
be monitored over the model should be changed.</p>
      <p>This work is structured as follows: In Section 2, we present related work
addressing models at runtime and how they are used to monitor applications, SLA
management, and quality requirement representations in SLAs. In Section 3, we present the
monitoring process. In Section 4, we explain how the process works by means of an
example. Finally, in Section 5, we present our conclusions and discuss future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        We classify related work into models at runtime and the way in which they are used
to monitor applications. Since there is a lack of work focusing on monitoring using
models at runtime in the cloud and web services, we look at other environments in
which models at runtime are used in monitoring and which can represent a valid
reference for this work [
        <xref ref-type="bibr" rid="ref11 ref12 ref13 ref14 ref15 ref5 ref9">5,9,11,12,13,14,15</xref>
        ]. Finally, we discuss the SLA management
and quality requirements representations in the cloud [
        <xref ref-type="bibr" rid="ref16 ref17 ref18 ref19 ref20 ref4">4,16,17,18,19,20</xref>
        ].
      </p>
      <p>
        Baresi and Ghezzi [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] advocate that future software engineering research should
focus on providing intelligent support to software at runtime, breaking today’s rigid
boundary between development-time and runtime. Szvetits et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] build a
classification and conduct a survey in terms of objectives, techniques, architectures and kinds
of models using models at runtime. They observe the objectives pursued when using a
system that utilizes models at runtime and conclude that one of the most important
objectives is system monitoring. Bencomo et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] show that models at runtime are
an important research topic for enterprise and cloud, and included a session about this
topic in the 8th International Workshop on Models@runtime. Bertolino et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
propose a property-driven approach to runtime monitoring that is based on a
metamodel and a generic configurable monitoring infrastructure; however, they do not pay
attention to the particular characteristics of cloud computing (e.g. elasticity,
scalability, etc). In [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], the authors develop the GLIMPSE monitoring infrastructure in the
context of the European Project CONNECT that can support runtime performance
analysis. Blair et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] define models at runtime as being similar to a causally
connected self-representation of the associated system that emphasizes the structure,
behavior and goals of the system from a problem space perspective. Their vision of
models at runtime is to raise the level of runtime model abstraction to that of
requirements, and Bencomo et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] use requirement reflection in self-adaptive systems by
making requirements first-class runtime entities, thus endowing software systems
with the ability to reason with, understand, explain and modify requirements at
runtime.
      </p>
      <p>
        Emeakaroha et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] present a framework entitled LoM2HiS for the mapping of
low-level resource metrics to high-level SLA parameters. Its architecture includes a
runtime monitor that continuously monitors the customer’s application status and
performance; then in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] they propose an application monitoring architecture entitled
CASViD, which stands for Cloud Application SLA Violation Detection architecture.
Correia et al. [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] propose a domain specific language (SLA Language for
specification and Monitoring – SLALOM) for SOA, in order to bridge the gap between the
customer perspective (business oriented) and the service provider (implementation
oriented, which becomes more evident in a SLA monitoring process). Myerson [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
discusses some best practices and how SLAs for cloud computing can be
standardized. Comuzzi et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] focus on contractual mechanisms of SLAs. They conducted
a qualitative study interviewing industry experts to understand the extent to which
SLA specifications in traditional environments can be applied to cloud computing.
Muller et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] present a design and implementation of SALMonADA, a
servicebased system to monitor and analyze SLAs to provide an explanation of violations. In
SLA management and quality requirements representations, researchers do not use
models at runtime thus making it difficult to monitor additional quality attributes
when necessary or when SLAs change.
      </p>
      <p>In conclusion, there is a lack of research that uses models at runtime with
monitoring infrastructures to provide flexibility and independence to the monitoring process.
Therefore, in this work, we present a monitoring infrastructure of cloud services that
uses models at runtime to improve the fulfillment of SLAs.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Monitoring Process</title>
      <p>
        The proposed monitoring process consists of three tasks, each of which is subdivided
into particular activities. The process is based on the autonomic control loop
technique. The idea of autonomic control loop is to measure system parameters, analyze
them, plan corrective actions if necessary, and execute these actions in order to
improve the system. One benefit of such an autonomic control loop is the reduced need
for manual human intervention that often lead to low abstraction, maintenance, and
reusability issues [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. In this paper, we explain the process up until the Analyze
Results task, which provides a report of SLA non-compliances, and in future research we
will connect the monitoring middleware with a reconfiguration middleware in order to
accomplish the autonomic control loop. The tasks which comprise our approach are
presented in Fig. 1; the monitoring process begins with the Monitoring Configuration
task. The output of this task is the model at runtime which will be used for the
monitoring middleware in the Measurement Process task.
      </p>
      <p>Monitoring  
in Configuration
out
in</p>
      <p>Measurement  </p>
      <p>Process
In
out
in
Analyze  Results
in out
SLA MAodnitiitoonrianlg   Artifacts</p>
      <p>Requirements</p>
      <p>Monitoring 
Model@runtime</p>
      <p>Low Level Data</p>
      <p>Raw data</p>
      <p>Model with data  SLA
(High Level)</p>
      <p>Fulfillment 
Report</p>
      <p>The Measurement Process task captures low-level data from the running services
using reflection techniques, and feeds the model at runtime with useful and filtered
information, which is used by the Analyze Results task.</p>
      <p>The Analyze Results task uses the data generated by the Measurement Process,
compares it with the non-functional requirements specified in the SLA, and creates a
Fulfillment Report that describes the non-compliances. The following sub-sections
describe systematically each task and subtask of the monitoring process.
3.1</p>
      <sec id="sec-3-1">
        <title>Monitoring Configuration</title>
        <p>The Monitoring Configuration is responsible for the preparation of the model at
runtime. It generates the code through a transformation. This code will be used by the
monitoring middleware in order to operate with the data retrieved from the cloud.</p>
        <p>Establish Monitoring Quality Requirements is the first task of this process. This
task receives three artifacts as input: (1) the SLA with non-functional requirements,
(2) additional monitoring requirements, and (3) the artifacts which will be analyzed
by the monitoring process (e.g., services, applications). The output of this task is the
Monitoring Requirement Specification. This contains characteristics and attributes
that will be monitored. The Quality Attributes Selection uses as a guide a SaaS
Quality Model to select the attributes specified in the Monitoring Requirements
Specification. The Measures Selection task also uses a SaaS Quality Model and, depending on
the user’s perspective, selects the appropriate metrics to be applied. It is important to
include the criticality related to the attributes, in order to take into account priority
when taking corrective actions. Fig. 2. Monitoring Configurationshows the
Monitoring Configuration task.</p>
        <p>Monitoring  </p>
        <p>Configurator  SaaS
Service Level 
Agreenment</p>
        <p>Aditional 
Monitoring 
Requirements</p>
        <p>Artifacts
in Establish  Monitoring   out</p>
        <p>Quality  Requirements</p>
        <p>Monitoring 
Requirements 
Specification
in</p>
        <p>Quality  Attributes  </p>
        <p>Selection
out</p>
        <p>guides
in AStetrleibcuteteds  in
guides SaaS Quality </p>
        <p>Model
out Model2Text in
Transformation
ouMt onitoring  Model   in</p>
        <p>Generation</p>
        <p>The next step is the Monitoring Model Generation. The output of this task is a
model at runtime that is the input of the Model2Text Transformation task. It generates
the Monitoring Code with the model at runtime, which is used by the middleware in
the Monitoring Process.</p>
        <p>Fig. 3 shows the meta-model used by the Monitoring Model Generation task. Due
to space constraints, we highlight only the most important meta-classes in the quality
model at runtime:
─ RawReport: contains the idCustomer, the idService, the monitoredExchangeId,
the date and the timestamp of the data collected.
─ SaaSQualityModel: contains the quality model reference, which provides all the
attributes and metrics that can be applied in the monitoring middleware. Only a
subset of the SaaSQualityModel attributes will be monitored.
─ MeasurableConcept: can be a characteristic, sub-characteristic, or attribute that
will be included in the monitoring process. Note that only the attributes can be
measured and there is an OCL that specifies this constraint.
─ Metric: is a measure of an attribute. A metric can be direct, indirect or an indicator
and can have zero or many ways to be measured using “operationalizations”,
depending on the attribute or the user perspective.
─ Operationalization: is the way in which a metric is calculated. It can be a
MeasurementMethod, a CalculatingFunction, a Variable, or a Constant.</p>
        <p>RawReport
idCustomer : EString
idService  : EString
monitoredExchangedId  : EString
date  : EDate
timeStamp  : ELong
1 Belongs
&lt; &lt; enumeration&gt; &gt;</p>
        <p>AlarmLevel
High
Normal</p>
        <p>Low</p>
        <p>
          Lehmann et al. [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] argue that the meta-models of runtime must provide modeling
constructs enabling the definition of: i) a prescriptive part of the model, specifying
how the system should be: in this case, the prescriptive part can be related to the
thresholds of the proposal meta-model; ii) a descriptive part of the model specifying
how the system is. This is related to real values, which are retrieved from the services
in the cloud in addition to the monitoring information contained in the Raw Report;
iii) valid model modifications of the descriptive parts, executable at runtime. In this
case, it may be necessary to retrieve new data about the state of the services, by
adding new non-functional requirements to the monitoring process; iv) valid model
modifications of the prescriptive parts, executable at runtime. This is the addition of new
non-functional requirements and their thresholds in the model; v) causal connection:
this is in the form of an information flow between the model and the services.
        </p>
        <p>
          In order to achieve the descriptive and prescriptive model modifications, the
development of a reconfiguration middleware is proposed as future research.
The Measurement Process is included in a middleware that retrieves raw data from
the services and applications and provides monitoring information to users and cloud
providers. It uses the model at runtime defined in the previous section and uses a
Measurements Engine to measure the attributes. The communication between services
and the middleware is implemented using proxy elements or reflection techniques that
allow the bidirectional communication between the monitoring infrastructure and the
cloud services. The Analysis Engine receives information from the Measurements
Engine and compares it with the SLA and non-functional requirements. The
middleware provides results which can be used to take actions in order to improve the
quality of the cloud and support SLA fulfillment. It is important to note that all of these
processes represent overload to the cloud and should be correctly planned to avoid
slowness. A middleware architecture enables communication and provides additional
functionality such as improving control, monitoring and logging[
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>CLOUD  CONSUMERS
Enterprise Users SMBs Users Applications
Service Level Agreement Analysis Engine Results
Aditional Requirements
Models@run.time</p>
        <p>MIDDLEWARE
Raw Data</p>
        <p>Measurement Engine</p>
        <p>CLOUD  SERVICES  AND  </p>
        <p>APPLICATIONS
The Analysis Engine is part of the middleware and compares the values obtained by
the monitoring process with the non-functional requirements, analyzing the results
and reporting the analysis. Results obtained by the monitoring system may be used to
plan a strategy to change the infrastructure using reconfiguration architectures that
use, for example, an expert system or a knowledge base, adapting the system by itself
and supporting the fulfillment of non-functional requirements, closing the autonomic
control loop. However this is reserved for future research.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Example</title>
      <p>In this section, the monitoring process is illustrated through an example that
implements all the steps involved in our strategy.</p>
      <p>
        The monitoring process can be applied to any cloud platform. For this example,
Azure platform is used [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. This is a services platform hosted by Microsoft data
centers, which provides a platform as a service and a set of developer services; Azure
also enables the building, deploying and managing of services, which can be
developed in any language, tool or framework and integrate public cloud applications using
existing IT environments. Moreover, Azure has a library called Diagnostics that
allows retrieval of diagnostic data from the cloud infrastructure.
      </p>
      <p>This example uses Azure to provide an online auction site with services. In these
kinds of applications users demand characteristics very related with cloud
environments, and it is necessary to monitor them; for example availability, and another
characteristics such as scalability and elasticity, which are very important and specific for
cloud scenarios. The availability requirement will be focused on in this auction site.
4.1</p>
      <sec id="sec-4-1">
        <title>Monitoring Configuration</title>
        <p>
          Establish Monitoring Quality Requirements is the first task in the Monitoring
Configuration. For this example, we consider that the SLA includes availability as a
nonfunctional requirement. The server provider commits that the bid service will be
available 99.50% or more of the time in a given calendar month. If the service offered
fails to meet this commitment, the server provider will apply a service credit to the
customer account. Additional monitoring requirements will be not considered, and the
artifact to be monitored is the bid service. For both, the Quality Attributes Selection
and Measures Selection, we can use quality models specific for cloud computing
services [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] or third part studies that define attributes and metrics for specific attributes
[
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. The availability is studied in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] and this attribute is measured by the
Robustness of Service (ROS) metric. The ROS metric is computed by [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] as (1):
 = (!("!!"#!$# $!!"#%$$&amp; ! !""## ! !""##$$%%!&amp;"'(&amp;) ! !""""!!))             (1)
The range is 0...1 and the higher value, the higher availability the SaaS has [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>Once this information is obtained, the Monitoring Model Generation and Model to
Text Generation tasks are performed in order to generate the model at runtime for the
Measurement Process. In our example, the availability is categorized as critical
because in the auction domain, availability is essential as it represents money.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Measurement Process</title>
        <p>The Measurement Process is the central part of the middleware and uses the model at
runtime generated by the previous step. This process calculates the ROS value, which
is the metric selected in the previous task, taking into account the values collected
from the bid service by the Diagnostics Tool in the Azure Platform, which is an
implementation of the proxy mechanism described in Section 3.2. It is possible to apply
the proposed process to any attribute by selecting the appropriate metric. Sometimes it
may be necessary to use past information, in metrics that use intervals, it is possible to
access the past instances of the model at runtime, (e.g. measuring the scalability).
4.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>Results Analysis</title>
        <p>The Analysis Engine compares the non-functional requirements specified in the SLA
with real values resulting from the Measurement Process. For this example, the
service provider offers in the bid service 99.5% of availability and so by comparing the
result with the SLA, we can conclude if the service fulfills the agreement. If the
availability of the service described in the SLA is fulfilled, a periodical or on demand
report can be generated. However, if the availability requirement is not fulfilled, the
monitoring middleware sends an alarm signal. A report with non-compliances is
generated, detailing alarms being triggered and the criticality of the monitored attribute.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusions and Future Work</title>
      <p>In this paper, we have introduced a monitoring process using models at runtime, in
which it is possible to specify non-functional requirements described by a SLA, as
well as other non-functional requirements of interest to server providers. We have
described the meta-model of the model at runtime which will be used in the process
and have discussed the important parts of the model at runtime which are integrated
into the monitoring process. This approach is useful in measuring higher-level
attributes specified by SLAs, and it provides flexibility when the evaluator needs to change
or add non-functional requirements since changes will be done in the model at
runtime and the monitoring infrastructure will not need to be affected.</p>
      <p>As future work, we plan to implement this middleware, defining all input and
output artifacts involved in the process (e.g., SLAs, models at runtime, etc.) and
investigate in practice how the models at runtime will behave when non-functional
requirements are modified. Finally, our objective is to provide guidelines to support the
definition of the model at runtime from SLAs and to determine what actions can be
performed when violations of the SLA clauses arises. Through this line of research, we
will explore what dynamic architecture reconfigurations are possible in order to
improve the overall quality of the cloud application, and in this way, to complete the
autonomic control loop for the self-adaptation of high-quality services in the cloud.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>This research is supported by the Value@Cloud project (TIN2013-46300-R), the
ValI+D program (ACIF/2011/235) from the Generalitat Valenciana; the Scholarship
Program Senescyt-Ecuador; and University of Cuenca, Ecuador.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Information</given-names>
            <surname>Technology Infrastructure Library</surname>
          </string-name>
          (ITIL), http://www.itil-officialsite.com
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Correia</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , e
          <string-name>
            <surname>Abreu</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Model-Driven Service</surname>
          </string-name>
          Level Management.
          <source>Mechanisms for Autonomous Management of Networks and Services</source>
          . pp.
          <fpage>85</fpage>
          -
          <lpage>88</lpage>
          . Berlin Heidelberg (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Keller, A.,
          <string-name>
            <surname>Ludwig</surname>
          </string-name>
          , H.:
          <article-title>The WSLA Framework: Specifying and Monitoring Service Level Agreements for Web Services</article-title>
          .
          <source>J. Netw. Syst. Manag</source>
          .
          <volume>11</volume>
          ,
          <fpage>57</fpage>
          -
          <lpage>81</lpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Emeakaroha</surname>
            ,
            <given-names>V.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brandic</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maurer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dustdar</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Low level Metrics to High level SLAs - LoM2HiS framework: Bridging the gap between monitored metrics and SLA parameters in cloud environments</article-title>
          .
          <source>Int. Conf. on High Performance Computing and Simulation (HPCS)</source>
          , pp.
          <fpage>48</fpage>
          -
          <lpage>54</lpage>
          . Caen, France (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Baresi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghezzi</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The Disappearing Boundary Between Development-time and Runtime</article-title>
          . Workshop on Future of Software Engineering Research FSE/SDP. pp.
          <fpage>17</fpage>
          -
          <lpage>22</lpage>
          . ACM,
          <string-name>
            <surname>Santa</surname>
            <given-names>Fe</given-names>
          </string-name>
          , New Mexico, USA (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Cheng,
          <string-name>
            <given-names>B.C.</given-names>
            ,
            <surname>Eder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Gogolla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Grunske</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Litoiu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Müller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Pelliccione</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Perini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Qureshi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Rumpe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Schneider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Trollmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Villegas</surname>
          </string-name>
          , N.:
          <article-title>Using Models at Runtime to Address Assurance for Self-Adaptive Systems</article-title>
          , http://dx.doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -08915-
          <issue>7</issue>
          _
          <fpage>4</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gao</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pattabhiraman</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bai</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tsai</surname>
          </string-name>
          , W.T.:
          <article-title>SaaS performance and scalability evaluation in clouds</article-title>
          .
          <source>6th Int. Symposium on Service Oriented System Engineering (SOSE)</source>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>71</lpage>
          . Irvine, CA, USA (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Bencomo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blair</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Götz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morin</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <source>Report on the 7th Int. Workshop on Models@Runtime. SIGSOFT Softw. Eng. Notes</source>
          .
          <volume>38</volume>
          ,
          <fpage>27</fpage>
          -
          <lpage>30</lpage>
          . Innsbruck,
          <string-name>
            <surname>Austria</surname>
          </string-name>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Blair</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bencomo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , France, R.B.:
          <article-title>Models@ run.time. Computer (Long</article-title>
          . Beach. Calif).
          <volume>42</volume>
          ,
          <fpage>22</fpage>
          -
          <lpage>27</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>J.Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>J.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cheun</surname>
            ,
            <given-names>D.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
          </string-name>
          , S.D.:
          <article-title>A Quality Model for Evaluating Softwareas-a-Service in Cloud Computing</article-title>
          .
          <source>7th ACIS Int. Conf. on Software Engineering Research, Management and Applications</source>
          . pp.
          <fpage>261</fpage>
          -
          <lpage>266</lpage>
          , Haikou, China (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Szvetits</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zdun</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Systematic literature review of the objectives, techniques, kinds, and architectures of models at runtime</article-title>
          .
          <source>Softw. Syst. Model</source>
          .
          <volume>1</volume>
          -
          <fpage>39</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Bencomo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , France, R.B.,
          <string-name>
            <surname>Götz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <source>Summary of the 8th International Workshop on Models @ Run</source>
          .time. MoDELS@Runtime. , Miami, FL, USA (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Bertolino</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calabrò</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lonetti</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Di</surname>
            <given-names>Marco</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Sabetta</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Towards a Model-Driven Infrastructure for Runtime Monitoring</article-title>
          . In: Troubitsyna,
          <string-name>
            <surname>E</surname>
          </string-name>
          . (ed.)
          <article-title>Software Engineering for Resilient Systems</article-title>
          . pp.
          <fpage>130</fpage>
          -
          <lpage>144</lpage>
          . Springer Berlin Heidelberg (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Bertolino</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calabrò</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lonetti</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sabetta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>GLIMPSE: A Generic and Flexible Monitoring Infrastructure</article-title>
          .
          <source>13th European Workshop on Dependable Computing</source>
          . pp.
          <fpage>73</fpage>
          -
          <lpage>78</lpage>
          , Pisa, Italy (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Bencomo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whittle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sawyer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finkelstein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Letier</surname>
          </string-name>
          , E.:
          <article-title>Requirements reflection: requirements as runtime entities</article-title>
          .
          <source>32nd Int. Conf. on Soft. Eng</source>
          . pp.
          <fpage>199</fpage>
          -
          <lpage>202</lpage>
          ,
          <string-name>
            <surname>Cape</surname>
            <given-names>Town</given-names>
          </string-name>
          , South Africa (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Emeakaroha</surname>
            ,
            <given-names>V.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferreto</surname>
            ,
            <given-names>T.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Netto</surname>
            ,
            <given-names>M.A.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brandic</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Rose</surname>
            ,
            <given-names>C.A.F.</given-names>
          </string-name>
          :
          <article-title>CASViD: Application Level Monitoring for SLA Violation Detection in Clouds</article-title>
          .
          <source>36th Annual Computer Software and Applications Conference</source>
          . pp.
          <fpage>499</fpage>
          -
          <lpage>508</lpage>
          , Izmir, Turkey (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Correia</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , e
          <string-name>
            <surname>Abreu</surname>
            ,
            <given-names>F.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amaral</surname>
          </string-name>
          , V.:
          <article-title>SLALOM: a Language for SLA specification and monitoring</article-title>
          .
          <source>CoRR. abs/1109</source>
          .6, (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Myerson</surname>
          </string-name>
          , J.:
          <article-title>Best practices to develop SLAs for cloud computing</article-title>
          , http://ibm.com/developerWorks/
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Comuzzi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jacobs</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grefen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Clearing the Sky - Understanding SLA Elements in Cloud Computing</article-title>
          , Eindhoven, Nederland (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Muller</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oriol</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marco</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Resinas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruiz-Cortes</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodriguez</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Comprehensive Explanation of SLA Violations at Runtime</article-title>
          .
          <source>Serv. Comput. IEEE Trans</source>
          .
          <volume>7</volume>
          ,
          <fpage>168</fpage>
          -
          <lpage>183</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Lehmann</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blumendorf</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Trollmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Albayrak</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Meta-modeling Runtime Models</article-title>
          .
          <source>Int. Conf. on Models in Software Engineering</source>
          . pp.
          <fpage>209</fpage>
          -
          <lpage>223</lpage>
          . Oslo, Norway (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>22. What Is Azure?, https://azure.microsoft.com/en-us/overview/what-is-azure/.</mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Xiong</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perros</surname>
            ,
            <given-names>H.:</given-names>
          </string-name>
          <article-title>Service Performance and Analysis in Cloud Computing</article-title>
          .
          <source>IEEE Congress on Services</source>
          . pp.
          <fpage>693</fpage>
          -
          <lpage>700</lpage>
          , LA, California, USA (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>