Describing Cloud Applications Architectures

The architecture of cloud applications differs from traditional software architectures mainly regarding their basic architectural elements, the services, the metadata about the services for expressing information related to quality parameters and pricing models, and the constraints over the applications and the used services. This paper presents Cloud-ADL, a seamless extension of the ACME ADL to support the architectural representation of cloud applications by relying on the existing ACME abstractions. In addition, it defines contracts to modularly encapsulate typical contract information of cloud applications, such as quality parameters, pricing model of the services, and constraints. Finally, Cloud-ADL also supports the dynamic reconfiguration of cloud applications through programmed changes, which can be foreseen at design time and specified at the ADL level.