CAMEL is a domain-specific language (DSL) that allows specifying diverse aspects of multi-cloud applications, including requirements, provisioning, deployment, scalability, and security. It was designed in the PaaSage project and further developed through the CACTOS, CloudSocket, and Melodic projects.
CAMEL supports the models@run-time paradigm, which provides an abstract representation of the underlying run-time system. Modifications to the model are applied to the system on demand, while changes in the system are automatically reflected in the model. By exploiting models at both design- and run-time, CAMEL enables self-adaptive multi-cloud applications, i.e., multi-cloud applications that automatically adapt to changes in the requirements and environment.
CAMEL is akin to the Topology and Orchestration Specification for Cloud Applications (TOSCA). TOSCA is a DSL that allows specifying the topology of cloud-based applications along with the processes for their orchestration. While TOSCA supports the specification of types and templates only, CAMEL supports the specification of types, templates, and instances.
In its current form, TOSCA can only be used at design time, whereas CAMEL can be used at both design and run time. The TOSCA Instance Model Ad Hoc group has defined an Instance Model for TOSCA draft specification that takes into account the experience from CAMEL.
Multiple people have contributed to the research on CAMEL:
Multiple projects financed by the European Commission’s Seventh Framework and Horizon 2020 Programmes have enabled the research on CAMEL: