D2.1.1-CloudML Guide and Assessment Report
Cloud computing provides a ubiquitous networked access to a shared and virtualised pool of computing capabilities that can be provisioned with minimal management effort. Cloud-based applications are applications that are deployed on cloud infrastructures and platforms, and delivered as services. PaaSage aims to facilitate the specification and execution of cloud-based applications by leveraging upon model-driven engineering (MDE) techniques and methods, and by exploiting multiple cloud infrastructures and platforms...
MDE is a branch of software engineering that aims at improving the productivity, quality, and cost-effectiveness 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 specification and execution of multi-cloud applications (i.e., applications deployed across multiple clouds infrastructures and platforms), which allow exploiting the peculiarities of each cloud service and hence optimising performance, availability, and cost of the applications.
Models are frequently specified using domain-specific languages (DSLs), which are tailored to a specific domain of concern. In order to cover the necessary aspects of the specification and execution of multi-cloud applications, PaaSage encompasses a family of DSLs. These DSLs, namely CLOUDML, Saloon, WS-Agreement, and a language for scalability rules, allow for modelling multiple concerns of multi-cloud applications, such as provisioning, deployment, requirements, goals, SLAs, and execution.
In this deliverable, we present an initial guide and assessment of the DSLs adopted in PaaSage by:
- relating each DSL to the PaaSage life-cycle phases;
- describing the domain covered by each DSL;
- describing the capabilities offered by each DSL;
- discussing the integration of the DSLs;
- exemplifying the usage of the DSLs by means of a running example.
Please note that these DSLs are under development and will evolve throughout the course of the PaaSage project. Hence, the capabilities offered by these DSLs and presented in this deliverable reflect our understanding of the requirements of PaaSage at month 12.
Please also note that a technical specification of these DSLs is beyond the scope of this deliverable. Low-level technical details, such as specifications of metamodels, grammars, and semantics, will be provided in D2.1.2.
This deliverable is a public document intended for readers with some experience with cloud computing and modelling, as well as some familiarity with the initial architecture design of PaaSage, as described in deliverable D1.6.1.
For the external reader, this deliverable provides an insight of the domain covered- and the capabilities offered by each DSL, as well as a justification for their adoption in the context of the PaaSage life-cycle phases.
For the research partners in PaaSage, this deliverable provides an understanding of the elements of each DSL that can be manipulated by the components of the PaaSage platform. For the industrial partners in PaaSage, this deliverable provides an understanding of the elements of each DSL that can be used for modelling the use cases of PaaSage.