<!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>Model-Driven Development of Performance Sensitive Cloud Native Streaming Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>José Ángel Bañares</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer Science and Systems Engineering Department COS2MOS research group, Aragón Institute of Engineering Research (I3A) University of Zaragoza</institution>
          ,
          <addr-line>Zaragoza</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>13</fpage>
      <lpage>26</lpage>
      <abstract>
        <p>The number of applications that process data in a stream basis has increased significantly over recent years due to the proliferation of sensors. Additionally, in cyber-physical systems, physical and software components are deeply intertwined, adding the ability to act on the environment. In many cases, cloud resources are used for the processing, exploiting their flexibility, but these sensor streaming applications often need to support operational and control actions that have real-time and lowlatency requirements that go beyond the cost effective and flexible solutions supported by cloud platforms. The development of these applications cannot be delegated to the magical properties of frameworks and services that promise simple solutions, hiding the inherent underlying complexity of cloud resources. It raises the difficulty of developing complex streaming processing in the cloud and highlights the need for a suitable developing methodology. Moreover, during the developing lifecycle, a number of facets have to be considered such as the design of functional parallel solutions, the impact of a target cloud platform that exhibits different degrees of performance variability, or the need for more complex performance requirement support. This talk will present our experiences in developing Petri Net models for performance sensitive cloud applications thus leveraging the use of formal models in complex scenarios.</p>
      </abstract>
      <kwd-group>
        <kwd>Streaming applications Cloud Native Applications Performance Sensitive Applications Petri nets</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>There is an emerging interest in low latency streaming applications that consume
big volumes of data. Stream processing finds application in almost every industry,
business and scientific application. The sources of data can be generated from
sensors, scientific instruments, simulations, social networks, business processes,
etc. Data are transmitted continuously, forming a sequence of data elements
known as a data stream and must be processed fast in order to control systems,
take corrective/strategic actions, or react to urgent situations.</p>
      <p>
        To effectively support this emerging class of applications, it is often
necessary to generate workflow specifications that can be dynamically adapted – as
new data becomes available in the context of the mainstream definition of Big
Data as the three Vs: volume, variety and velocity [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. With the elastic nature
of many cloud environments enabling such dynamic workflow graphs to be
enacted more efficiently, it might seem that data flow applications would somehow
become simpler, but that is not the case. One of the challenges of data flow
applications is that they must be designed with the needed level of dynamism
to take account of the availability of data and the variability of the execution
environment, which can be dynamically scaled out based on demand.
According to [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], clouds may also be used as accelerators to improve the application
time-to-completion, or to handle unexpected situations such as an unanticipated
resource downtime, inadequate allocations or unanticipated queuing delays. To
achieve such system, developers must meet several challenges that go beyond
pure functionality. A trial-and-error implementation that tries different
deployments of a streaming application over different distributed computing platforms
is far from a trustworthy solution.
      </p>
      <p>
        A cloud native application (CNA) is designed specifically to take full
advantage from the cloud computing characteristics. Fehling et al. have identified
the main characteristics of a cloud computing architecture in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]: 1) The
decomposition of the functionality in chunks of distributed functionality in such
a way that that each component that made up the application can be scaled
out independently. 2) The design space or operation model comprises the
analysis of the application workloads, and the identification of how the application
handles state and the cost of sharing information. 3) Applications are desgined
taking into account resilience and elasticity: An important aspect related to
the workload is to consider the dynamic nature of the cloud, which can be caused
by performance variation of machines, services competiting for shared resources,
and changing user quality of services requirements [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ].
      </p>
      <p>The need for more complex performance sensitive applications callenges
current development practices. The complexity of developing cost-effective and
performance sensitive cloud native streaming applications has been addressed from
different apporaches: 1) Cloud based frameworks that lift the level of abstraction
reducing complexity and hiding resource management. 2) Collecting high-quality
solutions, which are presented as patterns, to recurring problems in parallel
applications and cloud platforms. 3) Developing ad-hoc performance models to
predict the behavior of particular patterns on specific platforms. As far as this
author knows, there is a lack of complete methodological approaches to
conduct developers through the entire process of developing streaming applications
as CNA, beyond the partial solutions provided by these approaches. The main
shortcoming of current approaches is the non-use of formal models for
helping developers to reasoning and automatize the proces of analyisis of functional
and non-functional requirements. This paper covers the main characteristics of
a cloud native streaming applications making reference to our works using Petri
Net models for performance sensitive cloud applications.</p>
      <p>First the requirements and a synoptical view of the proposed methodology
is presented in section 2. Section 3 briefly presents a specification language to
support the methodology. The behaviour of component specifications is defined
by Petri Nets to support the analysis and simulation of models. Due to the large
size and complexity of these systems, it is not possible to develop detailed models.
We will illustrate how to use models for understanding complex behaviors, and
how to calculate performance boundaries and conduct simulations in section 4.
Finally, in section 5, PN models of different mechanisms to support elasticity and
resilience are presented. This models allow developer to validate the mechanisms
in different simulated scenarios.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Methodology for Performance Sensitive Streaming</title>
    </sec>
    <sec id="sec-3">
      <title>Applications on the Cloud</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref6 ref7 ref8 ref9">6–9</xref>
        ] we have identified and presented the principles of the methodology to
cope with the inherent complexity of streaming applications on the cloud. The
methodology considers all involved elements at different abstraction levels.
      </p>
      <p>
        We have identified the following modelling requirements that go beyond pure
functionality:
– A development process, which is guided by the identified abstraction
levels, that provides a number of modelling artifacts, analytical methods,
and guidelines to support it. The methodology must address functional and
non-functional requirements together with the specification of the execution
infrastructure and the involved resources.
– A specification language to describe a streaming application as a
collection of platform-independent building blocks. The language must support
complementary point of views: behavioral specification of concurrent
processes, transformations operated over the data flow, and structural
description of components that configure the application [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref13 ref14">10–14</xref>
        ].
– A formal component-based development to build models from existing
components and capability to reason about the resulting composition. Reuse
of components allows developers to use knowledge of their properties to
predict the new system properties. Components models must provide a rich
specification to facilitate the use of different analysis and prediction
techniques that simplify a system design while increasing trust in its correct
implementation [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
– A guide of the possibilities of model reasoning for efficient and reliable design
and / or optimization, combining simulation, and approximate analysis. The
specification must be executable to support both analytical analysis and
simulation in a synergic way.
      </p>
      <p>
        A description of the global functionality by means of an algorithm says
nothing about the structure or the components that make up the system. There are
many ways in which a system can be built to provide the same functionality
with different concurrent behaviours and different deployments over distributed
infrastructures [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Our approach to identify the elements to compound our
hybrid specification can be summarised with the equation ’Specification of CDFA =
Functional Entities + Communication/Synchronisation mechanisms + Data
Dependencies + Resources’. The identification and characterisation of each building
block of the proposed equation constitutes the basic specification element.
      </p>
      <p>
        A synoptical view of our methodology include the following steps:
– Functional Level. The process starts by identifying the functional
requirements of the problem domain and the outcome of this step is a functional
model.
– Qualitative Analysis.The functional model analysis is used to gain identify
problems and help guide the redesign of the functional model aiming to
achieve the maximum level of concurrency.
– Operational Level. The operational level takes into account the execution
platforms, and it explores the design space to select the design pattern that
most effectively defines how to map processes to resources. The outcome is
an operational model.
– Quantitative Analysis. The integration of the functional and the
operational model allows the designer to evaluate performance and reward
functions. The analysis can help guide the redesign of the functional and
operational models to meet non-functional requirements.
– Implementation Level. This stage transforms the model into a flat model
of processes that are deployed in a topology of cloud resources.
– Monitoring. The last step collects monitoring data from all used resources
and applications. Collected data and developed models can help identify
performance anomalies, and provide support to the autonomic principles of
a Platform as a Service. The primary aim is to reduce human intervention,
cost, and the perceived complexity by enabling the autonomic platform to
self-manage applications [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
      <p>
        The semantics of the component-based language is defined formally in terms
of ordinary PNs [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] in order to translate to the methodology all the
advantages derived from a mathematically based model –e.g. Analysis, Verification, or
Equivalence Relations. The consideration of PNs is based on the natural
descriptive power of concurrency, but also on the availability of analytic tools coming
from the domain of Mathematical Programming and Graph Theory. Moreover,
taking into account that PNs are executable specifications, PN models can also
be simulated.
3
      </p>
    </sec>
    <sec id="sec-4">
      <title>Data flow language specification</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], we presented a component based specification LANGuage of Layers and
tIERS (Langliers) to support the methodology for building trustworthy
continuous data flow applications. Langliers allows developers to specify the
functional model as layers, the logical groupings of the functionality and components;
and the operational model as tiers, the physical distribution of the functionality
and components on separated servers, computers, networks or remote locations.
Component behaviour is defined by Petri Nets.
      </p>
      <p>
        The constructive elements of a data stream application begins with the
definition of the most basic building blocks and their interpretation as constructive
primitives of distributed applications, and continues on their composition by
means of simple operators, which provides the way to configure components
with complex behaviours. Langliers represents the basic components
identified in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], Computational and Data Transmission Processes, to describe
an event processing network as a graph showing various connected processing
components that operate over data stream. This processing network model is an
abstraction that describes the functional behaviour of an streaming application
made up of a number of platform-independent components. The explicit network
specification allows developers to visualize the functional model and apply
analysis techniques. The graphical representation of a large or complex network can
be somewhat unwieldy, but an hierarchical approach where components can be
defined by the composition of subcomponents can simplify the specification of
large models. The last remaining step to specify a complete model is to set the
implementation of the functional model with the specification of the resources
that will be used to execute the model. This operational specification can be
used to conduct performance optimizations selecting a good mapping of
Computational Processes and Data Transmission Processes to computational and
network resources.
      </p>
      <p>In Langliers a component is expressed in the form of an interface and a
behaviour description. The interface specifies the services the component
provides, and publishes its input and output ports. It gives information at the
syntax level that enables data type checking, and publishes the events that
trigger computations and state changes. This way, our data stream model follows a
data driven execution model where events lead to computations that may
generate events on other components. The behaviour represents components internal
states and state changes. A component behavior description is specified either
by one explicit PN or by the PN resulting from the behavior composition of
subcomponents. It is inspired in digital systems VHDL language specification
whose components specifications consist of a port declaration in the interface
enumerating the events that change the component state, and the architecture
declaration that describes either the entity’s behavior or its structure. Samples
of the proposed language are shown in figure 1 that shows the definition of basic
component primitives and their interpretations, and figure 2 that shows the
functional model of a 3x3 Wavefront array which is built with simple computational
and data transmission processes.</p>
    </sec>
    <sec id="sec-5">
      <title>Modeling for Understanding versus Modeling for</title>
    </sec>
    <sec id="sec-6">
      <title>Forecasting</title>
      <p>The proposed model-driven methodology aims at providing different analysis
and prediction techniques that allow developers to assess functional and
nonfunctional properties by means of qualitative and quantitative analysis.
Qualitative analysis aims to detect qualitative properties of concurrent and
distributed systems, that is, to decide whether the model is correct and meets
the given qualitative functional properties (e.g deadlock freedom). Qualitative
PN analysis can be conducted by means of different techniques: (i) The
construction of the state space of the model (reachability analysis) providing a complete
knowledge of all its properties – in case state explosion does not hamper the
use of this technique; (ii) Structural techniques in order to reason about some
properties of the model, from the structure of the net.</p>
      <p>
        In order to illustrate our methodology, we are making use of the
MatrixVector Multiplication problem in streaming fashion, in particular, the Wavefront
Algorithm, which represents a simple solution for large arrays [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The adequacy
of the wavefront use case is that it is easy to formulate and present, but it shows a
very complex behavior. Moreover, the literature shows a continuous effort of the
research community to develop different performance models for the warfront
algorithm executed on different platforms. The wavefront model is a strongly
connected marked graph (a subclass of Petri nets in which each place has only
one input and one output transition, being strongly connected in the sense of
graph theory) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. The use of qualitative analysis can help to understand the
behavior of the wavefront algorithm, and design solutions to obtain the maximum
level of concurrency.
      </p>
      <p>
        For quantitative analysis is importan to consider the dynamic nature of the
cloud, which can be caused by performance variation of machine instances
offering the same capability, and by services that are deployed, updated and destroyed
all the time giving rise to a dynamic competition for shared resources [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. Due
to the large size and complexity of these systems, it is not possible to develop a
detailed model that captures all involved aspects. The usual approach to afford
complexity in formal models such as queuing systems, is to model the
essential aspects related with the behavior to be analysed, and to incorporate to the
model the prediction of observable quantities by probabilistic models [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
However, formal-model based analysis tools are only useful under certain assumptions
that are not satisfied by cloud or container centres. Kazhei et al. point out three
reasons that hamper the use of the tools of queuing theory: 1) The system size
that involves a large number of nodes comparing to the number of nodes
considered in traditional queuing analysis. 2) Involved service times must be modeled
by a general probability distribution instead of a exponential distribution, which
is a more convenient mathematical model. 3) The dynamic nature of these
environments with dynamic loadworks and heterogeneous resources [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. In these
cases, we can use approximate methods to compute performance bounds, and
complement these approximate analytical tools with simulations [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>Streaming applications on the cloud are complex systems where customers
and resources have not identical characteristics , and exponential distribution
does not adequately model observed inter-arrival and service times. Therefore,
traditional queuing systems are not feasible as forecasting models to obtain
accurate performance evaluations. In a first approach, we labelled our model with
all times following an exponential distribution. The net becomes a Stochastic
Petri Net (SPN) and we translated it to the GreatSPN2.0.2 tool. The result
obtained by the GSPN analysis showed a poor throughput. We can find the
explanation of these poor results to the concurrency limitations found in the
structural analysis. All computational resources will have the same throughput
due to the high coupling imposed by synchronization constratins, and as a result
throughput is determined by the slower resource. Intuitively, the use of a
negative exponential probability distribution function which has a high coeffcient of
variation with value 1, makes more likely a slower resource than the expected
media with a larger number of resources.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], authors present upper and lower bounds on the steady-state
performance of marked graphs that can be computed effciently. In addition to the
mean service time and mean inter-arrival time, the coefficient of variation
(CoV) of resources and inter-arrival time has been proposed to introduce the
dynamic nature of cloud applications and streaming applications on the cloud
[
        <xref ref-type="bibr" rid="ref14 ref20 ref21 ref4">4, 21, 20, 14</xref>
        ]. Once these performance boundaries are defined, we can conduct
simulations to explore peformance in function of the CoV of injection and
processing rates. Hamzeh Khazaei et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] proposes a CoV of delivery service
on cloud centers with values between 0.5 and 1.4. According to these authors
these values give reasonable insight into the behavior and dimensioning of cloud
centers. Simulations showed that a CoV ranging from 0 to 1.5 covers all space
of performance values between the calculated performance boundaries. With
deterministic times we have performance near the upper bound, and with CoV of
1.5 performance is near the lower bound.
      </p>
      <p>
        Previous analysis is adequated for analyse a concrete application or parallel
pattern. However, to develop a complete model of each application that can be
executed to obtain an operational and performance model of a cluster would
be impractical. Profiling data is essential to feed models with time distribution
annotations to forecast performance. For this purpose, it is necessary to provide
a characterisation of different kind of applications and their effects on the
remaining applications executed over the same resources. Application profiling
is strongly associated with the workload analysis. Profiling must collect a large
amount of data generated by the cloud resources and forecasting models are
fed with these data to analyse resource contention and service degradation. A
survey on forecasting and profiling models for cloud applications can be found
in [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. In[
        <xref ref-type="bibr" rid="ref23 ref24">23, 24</xref>
        ] we analyse performance of the Kubernetes system and develop
a Reference net-based model of resource management within this container
management system. Our model is characterised using real data from a
Kubernetes deployment, and can be used as a basis to design scaleable applications
that make use of Kubernetes.
      </p>
    </sec>
    <sec id="sec-7">
      <title>Elasticity and Resilience</title>
      <p>
        Finally, the two last properties to be considered in the development of CNA are
Component refinement and Management components to support
elasticity and resilience. Solutions for the latter are presented by patterns such as load
balancers, or elastic queues. In [
        <xref ref-type="bibr" rid="ref16 ref23 ref25 ref26 ref27">25, 26, 16, 27, 23</xref>
        ] are presented specifications of
strategies on cloud for resource management following autonomic principles at
the application level for streaming and scientific workflows.
      </p>
      <p>Available PUs</p>
      <p>Stage 1</p>
      <p>Available PUs</p>
      <p>Stage 2</p>
      <p>
        Formal models allow the rapid prototyping and simulation of different
scenarios of complex mechanisms to support elasticy and resisilience. In [
        <xref ref-type="bibr" rid="ref28 ref29">28, 29</xref>
        ] we
proposed a streaming workflow model of computation and an exception-handling
mechanism for modifying at run-time the structure of a workflow. The need to
close the control loop to take decisions and act on time requires a new model for
analyzing and acting on IoT data that combines the cloud processing with edge
computing or Fog computing [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], and autonomic computing techniques. It
supposes the analysis of the most time-sensitive close to where data is generated
and send selected data to the cloud. Additionaly, data elements are streamed
from their source to their sink, and may be processed en-route (referred to in
transit processing) [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. This integration may imply that the associated runtime
resource allocation is dependent on environmental conditions and can change for
different enactments of the same workflow. In our proposal, our workflow
specifications are independent of the constraints imposed by the resource allocation.
s3
Self-configure
      </p>
      <p>Stage 3
Available PUs</p>
      <p>Stage 3</p>
      <p>
        Finally, in [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] we proposed a profit-based resource management strategy for
bursty data streams on shared Clouds. Even dynamic provisioning of resources
may not be useful since the delay incurred might be too high – it may take
several seconds to add new resources (e.g. instantiate new Virtual Machines
(VMs)), and a scaling-up action might generate substantial penalties and
overheads. We presented in this work an architecture and mechanisms based on the
token bucket for the management of shared computational resources, in order
to support QoS levels of several concurrent data streams and to maximize
revenue of cloud providers. Figure 3 shows the system architecture and control loop
for decision making in each processing node of a chain of distributed resources,
and figure 4 the executable Reference net model specification implemented in
Renew. Different scenarios were validated in terms of simulation. The fact that
our Reference net models are executable, as they can be interpreted by Renew,
allows us to use the same model to interface directly with OpenNebula from
the nets: create and switch on and off real Virtual Machines (VMs), transmit
data to the data centre and collect back the results. Our main contributions
consists of data admission and control policies to regulate data access and manage
the impact of data bursts, and a policy for resource redistribution that tries to
minimize the cost of QoS penalty violation, maximising the overall profit.
Acknowledgments. This work was co-financed by the Industry and
Innovation department of the Aragonese Government and European Social Funds
(COS2MOS research group, ref. T93); and by the Spanish Ministry of
Economy under the program “Programa de I+D+i Estatal de Investigación,
Desarrollo e innovación Orientada a los Retos de la Sociedad”, project id
TIN201340809-R. I want to acknowledge members of the COS2MOS (Computer
Science for Complex System modelling) research group that have been
involved on referenced works: Unai Arronategui, José Manuel Colom,
Victor Medel, Rafael Tolosana, Omer F. Rana (University of Cardiff) and
Congduc Pham (Université de Pau et des Pays de l’Adour).
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Laney</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>3D data management: Controlling data volume, velocity, and variety</article-title>
          .
          <source>Technical report</source>
          , META Group (
          <year>February 2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Khamra</surname>
            ,
            <given-names>Y.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jha</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parashar</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>An autonomic approach to integrated HPC grid and cloud usage</article-title>
          . In: Fifth International Conference on e-Science,
          <string-name>
            <surname>E-SCIENCE</surname>
          </string-name>
          <year>2009</year>
          , Oxford, UK, IEEE Computer Society (December
          <year>2009</year>
          )
          <fpage>366</fpage>
          -
          <lpage>373</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Fehling</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leymann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Retter</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schupeck</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arbitter</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : Cloud Computing Patterns - Fundamentals to Design, Build, and Manage Cloud Applications. Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Yeo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>H.H.</given-names>
          </string-name>
          :
          <article-title>Using mathematical modeling in provisioning a heterogeneous cloud computing environment</article-title>
          .
          <source>Computer</source>
          <volume>44</volume>
          (
          <issue>8</issue>
          ) (
          <year>2011</year>
          )
          <fpage>55</fpage>
          -
          <lpage>62</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>O</given-names>
            <surname>'Loughlin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Gillam</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          :
          <article-title>Performance evaluation for cost-efficient public infrastructure cloud use</article-title>
          .
          <source>In: Economics of Grids</source>
          , Clouds, Systems, and Services - 11th International Conference, GECON'14 ,
          <string-name>
            <surname>Cardiff</surname>
          </string-name>
          , UK,
          <source>September 16-18</source>
          ,
          <year>2014</year>
          . Volume 8914 of LNCS. (
          <year>2014</year>
          )
          <fpage>133</fpage>
          -
          <lpage>145</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.Á.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tricas</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arronategui</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Celaya</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Colom</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          :
          <article-title>Construction of data streams applications from functional, nonfunctional and resource requirements for electric vehicle aggregators. The COSMOS vision</article-title>
          . In: International Workshop on Petri Nets and Software Engineering,
          <string-name>
            <surname>PNSE</surname>
          </string-name>
          <year>2014</year>
          .
          <article-title>Number</article-title>
          1160 in CEUR Workshop Proceedings, Aachen, CEURWS.org (
          <year>2014</year>
          )
          <fpage>333</fpage>
          -
          <lpage>334</lpage>
          http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1160</volume>
          /.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.Á.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Colom</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          :
          <article-title>Towards Petri net-based economical analysis for streaming applications executed over cloud infrastructures</article-title>
          .
          <source>In: Economics of Grids</source>
          , Clouds, Systems, and Services - 11th International Conference, GECON'14,
          <string-name>
            <surname>Cardiff</surname>
          </string-name>
          , UK,
          <source>September 16-18</source>
          ,
          <year>2014</year>
          . Volume 8914 of LNCS. (
          <year>2014</year>
          )
          <fpage>189</fpage>
          -
          <lpage>205</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.Á.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rana</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pham</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xydas</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marmaras</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papadopoulos</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cipcigan</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Enforcing quality of service on opennebulabased shared clouds</article-title>
          .
          <source>In: CCGRID'14 Workshop on Data-intensive Process Management in Large-Scale Sensor Systems, DPMSS'14</source>
          , Chicago, IL, USA, May
          <volume>26</volume>
          -29,
          <year>2014</year>
          , IEEE (
          <year>2014</year>
          )
          <fpage>651</fpage>
          -
          <lpage>659</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Merino</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.Á.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Colom</surname>
            ,
            <given-names>J.M.:</given-names>
          </string-name>
          <article-title>A specification language for performance and economical analysis of short term data intensive energy management services</article-title>
          .
          <source>In: Economics of Grids</source>
          , Clouds, Systems, and Services - 12th International Conference, GECON'15,
          <string-name>
            <surname>Cluj-Napoca</surname>
          </string-name>
          , Romania,
          <source>September 15-17</source>
          ,
          <year>2015</year>
          . Volume 9512 of LNCS. (
          <year>2015</year>
          )
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Etzion</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Niblett</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <source>Event Processing in Action. 1st edn. Manning Publications Co., Greenwich</source>
          ,
          <string-name>
            <surname>CT</surname>
          </string-name>
          , USA (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Pautasso</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alonso</surname>
          </string-name>
          , G.:
          <article-title>Parallel computing patterns for Grid workflows</article-title>
          .
          <source>In: Proceedings of the HPDC 2006 Workshop on Workflows in Support of Large-Scale Science, WORKS</source>
          <year>2006</year>
          , June 19-23, Paris, France. (
          <year>2006</year>
          )
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moretti</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thrasher</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Emrich</surname>
            ,
            <given-names>S.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Judd</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thain</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Harnessing parallelism in multicore clusters with the All-Pairs, Wavefront, and Makeflow abstractions</article-title>
          .
          <source>Cluster Computing</source>
          <volume>13</volume>
          (
          <issue>3</issue>
          ) (
          <year>2010</year>
          )
          <fpage>243</fpage>
          -
          <lpage>256</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Simmhan</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kumbhare</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>Floe: A continuous dataflow framework for dynamic cloud applications</article-title>
          .
          <source>CoRR abs/1406</source>
          .5977 (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Lohrmann</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janacik</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kao</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Elastic stream processing with latency guarantees</article-title>
          .
          <source>In: Distributed Computing Systems (ICDCS)</source>
          ,
          <source>2015 IEEE 35th International Conference on. (June</source>
          <year>2015</year>
          )
          <fpage>399</fpage>
          -
          <lpage>410</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Seceleanu</surname>
            ,
            <given-names>C.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Crnkovic</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Component models for reasoning</article-title>
          .
          <source>IEEE Computer</source>
          <volume>46</volume>
          (
          <issue>11</issue>
          ) (
          <year>2013</year>
          )
          <fpage>40</fpage>
          -
          <lpage>47</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.Á.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Colom</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          :
          <article-title>On autonomic platform-asa-service: Characterisation and conceptual model</article-title>
          . In Jezic, G.,
          <string-name>
            <surname>Howlett</surname>
            ,
            <given-names>R.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jain</surname>
          </string-name>
          , L.C., eds.
          <source>: Agent and Multi-Agent Systems: Technologies and Applications</source>
          . Volume
          <volume>38</volume>
          of Smart Innovation,
          <source>Systems and Technologies</source>
          . Springer International Publishing (
          <year>2015</year>
          )
          <fpage>217</fpage>
          -
          <lpage>226</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Murata</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Petri nets: Properties, analysis and applications</article-title>
          .
          <source>In: Proceedings of IEEE</source>
          . Volume
          <volume>77</volume>
          . (April
          <year>1989</year>
          )
          <fpage>541</fpage>
          -
          <lpage>580</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Campos</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chiola</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Colom</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Properties and performance bounds for timed marked graphs</article-title>
          .
          <source>Circuits and Systems I: Fundamental Theory and Applications</source>
          ,
          <source>IEEE Transactions on 39(5)</source>
          (
          <year>1992</year>
          )
          <fpage>386</fpage>
          -
          <lpage>401</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Harrison</surname>
            ,
            <given-names>P.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel</surname>
            ,
            <given-names>N.M.</given-names>
          </string-name>
          <article-title>: Performance Modelling of Communication Networks and Computer Architectures</article-title>
          . Addison-Wesley Longman Publishing Co., Inc. (
          <year>1992</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Khazaei</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Misic</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Misic</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Performance analysis of cloud computing centers using m/g/m/m+r queuing systems</article-title>
          .
          <source>IEEE Transactions on Parallel and Distributed Systems</source>
          <volume>23</volume>
          (
          <issue>5</issue>
          ) (
          <year>2012</year>
          )
          <fpage>936</fpage>
          -
          <lpage>943</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Schad</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dittrich</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Quiané-Ruiz</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          :
          <article-title>Runtime measurements in the cloud: Observing, analyzing, and reducing variance</article-title>
          .
          <source>Proc. VLDB Endow</source>
          .
          <volume>3</volume>
          (
          <issue>1</issue>
          -2) (
          <year>September 2010</year>
          )
          <fpage>460</fpage>
          -
          <lpage>471</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Weingärtner</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bräscher</surname>
            ,
            <given-names>G.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Westphall</surname>
            ,
            <given-names>C.B.</given-names>
          </string-name>
          :
          <article-title>Cloud resource management: A survey on forecasting and profiling models</article-title>
          .
          <source>J. Network and Computer Applications</source>
          <volume>47</volume>
          (
          <year>2015</year>
          )
          <fpage>99</fpage>
          -
          <lpage>106</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Medel</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rana</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.a.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arronategui</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Modelling performance and resource management in kubernetes</article-title>
          .
          <source>In: Proceedings of the 9th International Conference on Utility and Cloud Computing. UCC '16</source>
          , New York, NY, USA, ACM (
          <year>2016</year>
          )
          <fpage>257</fpage>
          -
          <lpage>262</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Medel</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rana</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.Á.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arronategui</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Adaptive application scheduling under interference in kubernetes</article-title>
          .
          <source>In: Proceedings of the 9th International Conference on Utility and Cloud Computing</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2016</year>
          )
          <fpage>426</fpage>
          -
          <lpage>427</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , BañAres,
          <string-name>
            <given-names>J.Á.</given-names>
            ,
            <surname>Pham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Rana</surname>
          </string-name>
          ,
          <string-name>
            <surname>O.F.</surname>
          </string-name>
          :
          <article-title>Enforcing qos in scientific workflow systems enacted over cloud infrastructures</article-title>
          .
          <source>Journal of Computer and System Sciences</source>
          <volume>78</volume>
          (
          <issue>5</issue>
          ) (
          <year>2012</year>
          )
          <fpage>1300</fpage>
          -
          <lpage>1315</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rana</surname>
            ,
            <given-names>O.F.</given-names>
          </string-name>
          :
          <article-title>Autonomic streaming pipeline for scientific workflows</article-title>
          .
          <source>Concurrency and Computation: Practice and Experience</source>
          <volume>23</volume>
          (
          <issue>16</issue>
          ) (
          <year>2011</year>
          )
          <fpage>1868</fpage>
          -
          <lpage>1892</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.Á.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pham</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rana</surname>
            ,
            <given-names>O.F.</given-names>
          </string-name>
          :
          <article-title>Resource management for bursty streams on multi-tenancy cloud environments</article-title>
          .
          <source>Future Generation Computer Systems</source>
          <volume>55</volume>
          (
          <year>2016</year>
          )
          <fpage>444</fpage>
          -
          <lpage>459</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rana</surname>
            ,
            <given-names>O.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.A.:</given-names>
          </string-name>
          <article-title>Automating performance analysis from Taverna workflows</article-title>
          .
          <source>In: Component-Based Software Engineering: 11th International Symposium, CBSE</source>
          <year>2008</year>
          , Karlsruhe, Germany,
          <source>October 14-17</source>
          ,
          <year>2008</year>
          . Proceedings. (
          <year>2008</year>
          )
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rana</surname>
            ,
            <given-names>O.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Álvarez</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ezpeleta</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoheisel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Adaptive exception handling for scientific workflows</article-title>
          .
          <source>Concurr. Comput. : Pract. Exper</source>
          .
          <volume>22</volume>
          (
          <issue>5</issue>
          ) (
          <year>April 2010</year>
          )
          <fpage>617</fpage>
          -
          <lpage>642</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Yi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          :
          <article-title>A survey of fog computing: concepts, applications and issues</article-title>
          .
          <source>In: Proceedings of the 2015 Workshop on Mobile Big Data</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2015</year>
          )
          <fpage>37</fpage>
          -
          <lpage>42</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Tolosana-Calasanz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bañares</surname>
            ,
            <given-names>J.Á.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pham</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rana</surname>
            ,
            <given-names>O.F.</given-names>
          </string-name>
          :
          <article-title>Resource management for bursty streams on multi-tenancy cloud environments</article-title>
          .
          <source>Future Generation Computer Systems</source>
          <volume>55</volume>
          (
          <year>2016</year>
          )
          <fpage>444</fpage>
          -
          <lpage>459</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>