We recently held last edition of our CloudMDE workshop as part of the Models2014 conference. CloudMDE is a workshop to explore combining model-driven engineering and cloud computing, where we aim to identify opportunities for using MDE to support the development of cloud-based applications (MDE for the cloud), as well as opportunities for using cloud infrastructure to enable MDE in new and novel ways (MDE in the cloud).
It turns out that the latter was the former was much more popular than the latter (out of 8 papers presented at the workshop, 6 of them where “for” proposals) but, to me, the most surprising part was to see that most of those 6 papers were proposing new languages to model (specific aspects of) cloud applications. So, we ended up the workshop with 6 new languages for the cloud!.
We can all agree that more “traditional” modeling languages (yes, looking at you, UML!) are not the best option to model the many of the technical aspects specially relevant for cloud applications (e.g. in terms of deployment and provisioning). Therefore, several new languages aiming to cover this gap have been popping up recently (probably, the best known example being CloudML). Nevertheless, it seems that our workshop participants believed that the problem is still far from solved and presented a few more language proposals for you to choose from (as a side note, one of the only two papers on MDE in the cloud, also proposed a new DSL, this time for software process modeling, we talk about the other here):
- MDE Opportunities in Multi-Tenant Cloud Applications by Mohammad Abu Matar, Jon Whittle. They claim that CloudML does not provide support for multi-tenant cloud software applications, nor it does provide support for tenants’ applications evolution at runtime. Their DSL for multitenant cloud applications includes concepts like: Tenant, Tenant Configuration, Cloud Provider, Tenant Database, Tenant Schema, Tenant
Table, and Deployment Type
- Towards Pattern-Based Optimization of Cloud Applications by Martin Fleck, Javier Troya, Philip Langer, Manuel Wimmer proposing a set of patters to use when modeling cloud applications to be used as a basis for optimization of a cloud configuration for the application
- Modeling Cloud Messaging with a Domain-Specific Modeling Language by Gábor Kövesdán, Márk Asztalos, László Lengyel introducing a domain-specific modeling language (DSL) for modeling application-level network protocols. They believe that a DSL that allows for efficient modeling of the messages and generating implementation code significantly simplifies the development of cloud applications.
- Cloud DSL: A Language for Supporting Cloud Portability by Describing Cloud Entities by
Gabriel Costa Silva, Louis M. Rose, Radu Calinescu presenting a DSL that uses a common cloud vocabulary for describing cloud entities covering a wide variety of cloud IaaS services. Through analysis of existing cloud DSLs, they advocate that their cloud DSL is more expressive for the purpose of describing dierent cloud IaaS services.
- Automated Provisioning of Customized Cloud Service Stacks using Domain-Specific Languages by
Ta’id Holmes presenting not one but three DSLs aimed at provisioning customized cloud stacks. The claim is that when a customized stack of cloud services is preferable over a uniform stack, comprehensive provisions need to take place for realizing the entire service stack on top of an IaaS. For mastering complexity and for realizing automation, it is feasible – both from a technical and a practical point of view – to apply model-based technologies for the provisioning of customized cloud stacks. For this, DSLs can be engineered – as
shown in this paper – that are well suited for the specification of such stacks.
- UML-based Cloud Application Modeling with Libraries, Profiles, and Templates by Alexander Bergmayr, Javier Troya, Patrick Neubauer, Manuel Wimmer, Gerti Kappel
proposing the Cloud Application Modeling Language (CAML) to facilitate expressing cloud-based deployments directly in UML, which is especially beneficial for migration scenarios where reverse-engineered UML models are tailored towards a selected cloud environment
The workshop proceedings with all papers mentioned above can be freely downloaded here . And if you know other cloud modeling languages please let me know about them in the comments!