for TOSCA, and Apache Brooklyn
2
for CAMP.
TOSCA is a good option for representing the
topology and orchestration of applications. However,
the management of a possible TOSCA-compliant de-
ployment could be a complex task. Since TOSCA
does not enforce specific interfaces for node tem-
plates, which represent the provider’s resources, the
topology and orchestration plan may need to be mod-
ified when some module of the application is decided
to be deployed on a different target provider.
Even if considering what the standard calls declar-
ative plans, as we will see in Section 2.1, the TOSCA
specification of the topology requires using node tem-
plates for specific providers, what prevents the spec-
ification from being agnostic. Moreover, although
by using appropriate node templates we may specify
and deploy cross-cloud TOSCA configurations, we
need to take into account how providers services are
managed by TOSCA, and how components are de-
ployed and their interactions handled. OpenTOSCA
requires each operation in the node types modeling
provider resources to include the necessary mecha-
nisms. Alien4Cloud uses Cloudify
3
as cloud service
orchestrator for the providers interaction, what allows
using a generic node type to model cloud services.
However, the implementation artefacts correspond-
ing to the operations of the node templates must be
adapted to work with such an orchestrator. Although
with Alien4Cloud the definition of node types is much
simpler, the set of target providers is limited to those
supported by the orchestrator.
We are interested in application models in which
we do not need to lock to a specific vendor, and
want to be able to postpone our deployment deci-
sion as much as possible, even opening the door to
potential migration of individual components at run-
time. Although cross-deployment was not one of
the goals of the existing CAMP-compliant solutions,
they follow a unified API which wraps the inter-
face of cloud providers (e.g., Brooklyn uses Apache
jClouds
4
). Nevertheless, CAMP lacks of a topology
specification, which is crucial to maintain the applica-
tion model at run-time, key if monitoring and recon-
figuration actions are to be performed over the appli-
cation distribution.
Although both standards present weaknesses, we
believe they nicely complement each other, and can
be used together in real scenarios. We propose
the combined use of TOSCA and CAMP specifi-
cations and their respective approaches by using a
transformation-based platform-agnostic model. Our
2
Brooklyn: https://brooklyn.apache.org/.
3
Cloudify: http://getcloudify.org/.
4
jClouds: http://jclouds.apache.org/.
solution automatizes the translation between both
standards by using a transformation model, providing
structural and design advantages for the topology de-
scription using (agnostic) TOSCA, and benefits of the
run-time management using CAMP. Specifically, we
combine the advantages of TOSCA’s powerful mod-
eling language to describe the structure of an appli-
cation as a typed topology graph, in a portable and
vendor-agnostic way, and simplifying the manage-
ment and reusability of services thanks to its topology
templates and node types, with CAMP’s facilities for
managing heterogeneous providers’s features in a ho-
mogeneous way thanks to its approach for the unifica-
tion in the interfaces of cloud platforms. Preliminary
results related to our proposal were presented in (Car-
rasco et al., 2015).
The rest of this paper is structured as follows. Sec-
tion 2 presents a brief introduction to TOSCA and
CAMP. Section 3 presents the proposal, using exam-
ples to illustrate the approach. We wrap up in Sec-
tion 4 by presenting some conclusions and some ideas
for future development.
2 SOME BACKGROUND
In this section, we briefly present the TOSCA and
CAMP standards, mainly focusing on their strengths
and limitations.
2.1 The TOSCA Standard
The TOSCA standard (OASIS, 2012b) provides a
model for the description of cloud applications, the
corresponding services, and their relationships using
a service topology, as well as the description of pro-
cedures to manage services using orchestration pro-
cesses by using plans.
As depicted in Figure 1, in TOSCA, services are
specified through service templates, by using node
and relationship templates, which are concrete com-
ponents of the application of corresponding node and
relationship types. A Node Type expresses the ca-
pabilities, requirements, properties and interfaces of
the services. Relationship Types are used to specify
relationships between the elements of the system by
means of a set of relations, which allow determin-
ing the connections and dependencies between com-
ponents, taking into account their properties and in-
terfaces. Type definitions include operations to de-
scribe their behavior, e.g., a server may define a start
operation to initialize the execution, and another one
to allow the deployment of applications inside itself.
Deployment over Heterogeneous Clouds with TOSCA and CAMP
171