|Bibliography||Schraitle, Andreas: Provisioning of Customizable Pattern-based Software Artifacts into Cloud Environments. |
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Diploma Thesis No. 3468 (2013).
111 pages, english.
Software architects and engineers frequently face reoccurring problems, when implementing cloud computing applications, leading towards reduced productivity and an increased time to market factor. These issues can be faced by the commonly known concept of patterns. Thus, researchers identified and documented patterns for the cloud computing domain, to preserve gained knowledge about cloud application architectures and service offerings [FLMS11, FLR+12]. These patterns can be used to from the foundation of aggregated cloud computing applications. Dependent on the corresponding cloud service model, such applications require different provisioning steps, which can be performed by individually implemented actions or can be executed by pre-provided cloud services. Yet, these cloud computing patterns are offered in non-technical, written form, which does not allow to aggregate corresponding implementation binaries to pattern-based applications. Therefore, this thesis combines software product line engineering methods, open source build management tools, and open source infrastructure management tools to implement a software product line for cloud computing patterns, which allows to reduce human-driven efforts to implement aggregated cloud computing applications. This approach enables the possibility to create, aggregate and customize cloud computing pattern implementations; and store them in a so-called pattern template catalogue. Hence, each pattern, stored in such a catalogue, is associated with so-called customization points, which allow to adapt instantiated patterns to individual needs. To accomplish these challenges, Apache Maven [Mava], an open source build management tool, is extend with means to create, customize and aggregate pattern-based cloud computing applications. Corresponding provisioning tasks are accomplished, by combining PuppetLabs’ Puppet [Pup] and pre-offered cloud provisioning services. Pattern-specific customization points are stored within a serialized, so-called variability model, embedded in each pattern. Moreover, the presented structure model allows to decouple direct pattern dependencies through common interfaces, which allows to switch pattern implementations transparently, without adapting dependent patterns. Furthermore, combinable reference patterns are presented and discussed, to provide a proof of concept of the implemented software product line approach.