vices(Bunch et al., 2011). The language is inte-
grated to run into AppScale which is an open-source
Cloud environment that uses Google App Engine
APIs(Bunch et al., 2011).
Pim4Cloud DSL is a Platform Independent Model
for Cloud-based application which is designed using
a component-based approach(Brandtzæg et al., 2012).
A Cloud application- designer models the application
by using Pim4Cloud DSL. Meanwhile, at the other
side the available resources for the modelled appli-
cation are specified by Cloud provider (Brandtzæg
et al., 2012). The Pim4Cloud has an interpreter
which is used to match the assigned resources to
application requirement. Pim4Cloud DSL is imple-
mented in to Scala which includes different set of
codes for modelling different topology for Cloud ap-
plications (Brandtzæg et al., 2012). The syntax of
the Pim4Cloud DSL starts by defining the application
as an abstract class which can factorise the shared
entities. Each application topology can extend the
abstract class. Pim4Cloud DSL platform supports
a static analysis for the modelled application and
also allow the deployment of Cloud-component to be
reused (Brandtzæg et al., 2012).
3 CloudMPL LANGUAGE
CloudMPL can be applied instead of using Plain
English sentences for writing the management pol-
icy at early stage. CloudMPL is a textual language
that specifically is designed to be used by Cloud
domain-experts to describe management policies be-
fore interpreting them to an executable rule language.
CloudMPL is enriched with domain vocabularies and
expressive operators for expressing conditions and ac-
tions parts which are partially inspired by the RE-
LAX Language(Whittle et al., 2010). CloudMPL is
targeting to author management policies which will
be executed in Infrastucture-as-a-Service(IaaS) Cloud
model.
When Cloud-domain experts specify policies, ba-
sically they are concerned about if some specific con-
ditions are met, based on resources that compose
a Cloud infrastructure, and actions that might be
taken upon these conditions. Therefore, CloudMPL
is designed to focus on the specification of Cloud-
related resources and policies. The specification of
CloudMPL includes a domain-vocabulary, a meta-
model, a set of operators, which are extracted from
RELAX language to describe various types of condi-
tions might be found in a management policy, and a
grammar for using the language.
3.1 CloudMPL Meta-model
Figure 4 presents the meta-model for CloudMPL lan-
guage. In the meta-model described in Figure 4, a
Resource is an element that can be managed and/or
monitored which could be a host, a virtual machine,
a cluster or any kind of resource that can described
in term of Properties. Those Properties should rep-
resent any kind of information that can be monitored
or used to describe a Resource. Every property has a
Type that can be either a built-in type, such as Num-
ber or String, or could be a Resource created by the
user. Each Policy is composed of several conditions,
detailed in terms of constraints. Constraints are three
different types which are:
1. Time, when an expert is interested in time related
events.
2. Location, which is an optional element, is to
check if a given resource is in a specific location.
3. Ordinal where raw values or a status of a given
property related to a resource are checked.
In this level of abstraction, an Action invocation is
an equivalent to a method call of any high-level pro-
gramming language. The actions definition is similar
to a method signature description, embedded into a
ActionManager, which will be equivalent to an inter-
face of a high-level programming language. To fully
implement the important actions, it would require for
the experts a deep knowledge on programming skills
as well as specific-language information.
Table 1 gives the set of CloudMPL elements,
organised into Statement, Time, Location and Con-
straint. The statements define the blocks of the lan-
guage in terms of the main elements for expressing
the policies. The Time and Location operators define
conditions for time and location. The Constraint con-
ditions can be applied to ordinals or status informa-
tion for basic comparison.
3.2 CloudMPL Syntax
The syntax of CloudMPL expressions are defined
by the grammar in Figure 5. Manageable resources
are described by the Create Resource statement, de-
fined by an ID and their respective properties. The
ActionManager requires an ID and at least one ac-
tion(method) to be defined. Policies are identified
by an ID and composed of CloudMPL operators. As
showed in Table 1 CloudMPL has Location, Time and
Constraint operators, that can be combined using log-
ical operator such as AND,OR,NOT and parenthesis.
If the specified conditions are satisfied an action that
belong to an ActionManager should be invoked.
CLOSER2015-5thInternationalConferenceonCloudComputingandServicesScience
454