D2.1.3 CAMEL Documentation
Cloud computing provides a ubiquitous networked access to a shared and virtualised pool of computing capabilities that can be provisioned with minimal management. Cloud-based applications are applications that are deployed on cloud infrastructures and delivered as services. PaaSage aims to facilitate the modelling and execution of cloud-based applications by leveraging upon modeldriven engineering (MDE) techniques and methods, and by exploiting multiple cloud infrastructures...
MDE is a branch of software engineering that aims at improving the productivity, quality, and cost-eectiveness of software development by shifting the paradigm from code-centric to model-centric. Models enable the abstraction from the implementation details of heterogeneous cloud services, while model transformations facilitate the automatic generation of the source code that exploits these services. This approach, which is commonly summarised as "model once, generate anywhere", is particularly relevant when it comes to the modelling and execution of multi-cloud applications (i.e., applications that can be deployed across multiple private, public, or hybrid cloud infrastructures). This solution allows exploiting the peculiarities of each cloud service and hence optimising performance, availability, and cost of the applications.
CAMEL integrates and extends existing domain-specific languages (DSLs), namely the Cloud Modelling Language (CloudML), Saloon, and the organisation part of CERIF. In addition, CAMEL integrates new DSLs developed within the project, such as the Scalability Rule Language (SRL). CAMEL enables PaaSage users to specify multiple aspects of multi-cloud applications, such as provisioning and deployment, service-level objectives, metrics, scalability rules, providers, organisations, users, roles, security controls, execution contexts, execution histories, etc.
In this document, we provide the final version of the CAMEL documentation. In particular, we describe the modelling concepts, their attributes and their relations, as well as the rules for combining these concepts to specify valid models. Moreover, we exemplify how to specify models through a textual editor as well as how to programmatically manipulate and persist them through Java APIs.
Compared to the initial version of the CAMEL documentation (previously known as CloudML implementation documentation, cf. D2.1.2 [25]), we have added the description of the new concepts in CAMEL, revised the description of the existing concepts, and migrated the examples from tree-based to textual syntax.