curity characteristics already understood by users and
developers, energy consumption behavior of server-
side components is often completely unknown. Rare
are those who could state quantifiable requirements
on the energy consumption behavior on the server-
side of particular features of their application. The
aim of this paper is to provide the developer with tools
that will ease the following key steps to move to an
energy-aware cloud application development:
At Requirements Level - To structure the ap-
proach, the Goal-Question-Metric (GQM) paradigm
is used (Basili et al., 1994). In particular, it can be
used to propose generic goals and questions that de-
velopers will often want answers to in order to gain a
more precise knowledge of the energy consumed by
various features or components of their application. It
also makes the link with a number of already identi-
fied energy-related metrics (Bozzelli et al., 2013).
At Design Level - To capture the information on
how to measure energy consumption of a feature or
component in a way that follows the traditional mod-
elling approach used by analysts and eases further
processing, the design model language must be aug-
mented with annotations to connect design element
to energy requirements (goals and questions). This
will enable the automated deployment of measure-
ment probes to monitor the specified KPI and report
them in terms of the questions and goals of the GQM
identified at requirements level. This short paper tar-
gets more specifically this step.
At Runtime Level - Probes collect the specified
data and report them to a monitoring infrastructure
part of the energy-aware Cloud stack. This monitor-
ing itself is efficient in terms of data collection strat-
egy (frequency of sampling, data transmission, data
aggregation). Application monitoring occurs at the
SaaS level but relies on data from the lower PaaS and
IaaS layers, for example, for collecting Watt-hour of
a blade or CPU percentage time of a process running
in a virtual machine (VM).
For easing adoption by developers, it is also very
important to propose a practical tool that will seam-
lessly integrate with current development habits and
mainstream development environments. In this re-
spect the Unified Modelling Language (UML) is now
universally known by developers and supported by
development environments (OMG, 1997). Standard
extensions mechanisms, based on stereotypes, are
available to enrich the existing diagramming nota-
tions, in our case with energy-related information.
Such approaches have been quite successful in the
past, e.g. the MARTE profile for embedded systems
(OMG, 2009). The profile can be ”plugged” into an
existing model of a target application. If no model ex-
ists, a simplified energy-oriented model can be built
only for the concerned part of the application. It
will naturally help to capture all the relevant energy-
related elements and in a possible later step be used
as a basis to drive the application refactoring. In this
short article, we present a UML-based approach simi-
lar to the one followed by MARTE, but applied to en-
ergy related requirements and design decisions. Our
work is structured as follows. Section 2 details the
design of the profile by explaining its meta-model. It
shows how energy goals and questions are captured
and how to add design annotations to specify energy
consumption measurements able to answer the given
questions. It also presents a reference implementa-
tion. Section 3 illustrates the profile applied to a Photo
Album web-application. Section 4 discusses some re-
lated work. Finally, section 5 draws some conclu-
sions about our experience so far and identifies further
work.
2 PROFILE DESIGN
To gather energy requirements, the design annotation
and mapping with deployment time probes, we aug-
mented UML with two stereotypes at different level of
granularity. A first stereotype, preparedForMeasure-
ment, provides information to prepare a UML model
for a measurement session while a second stereotype,
forMeasurement, provides information on each appli-
cation elements relevant to measure (e.g. a method,
a class, a deployment element such as a service, a
VM,...). The definition of those two stereotypes also
relies on a number of auxiliary DataTypes and Enu-
merations. In the rest of this section, we will use italic
font to refer to concepts in the metamodel diagrams.
2.1 Stereotype for Measurement Session
The preparedForMeasurement stereotype is used to
specify global information related to monitoring
goals. It is depicted in Figure 1 Users can provide
general information on a model for specifying mon-
itoring needs. Notably, Information provided at the
model level relate to
1. the explicit specification of MonitoringGoal and
associated QualityQuestions to answer. Stereo-
typed KPI modeled by user will then have to ex-
plicitly identify and define the questions (Ques-
tionID and QuestionText) they help to answer.
2. a set of information (GlobalNPIDefInput) to de-
fine globally:
AUMLKPIProfileforEnergyAwareDesignandMonitoringofCloudServices
433