1 Software & Systems, The Department2 Software Engineering, Software & Systems, The Department3 Software Development Group, Theoretical Computer Science, The Department
Cloud computing enables organisations to deploy their software systems over a pool of available services – exploiting pay-per-use models – rather than upfront purchase of an overprovisioned infrastructure. In an architectural context for cloud systems that demand elasticity in terms of service availability, reliability, and efficiency, there is a need to capitalise on the ‘build-once, use-often’ solutions that support reuse-driven self-adaptations of cloud-based architectures. We support the composition and application of a pattern language that exploits adaptation patterns and their relations to support ‘adaptation-off-the-shelf’ for cloud-based software architectures. We unify the concepts of software repository mining and software evolution to support the composition and application of an adaptation pattern language. First, we exploit the software repository mining concepts by investigating adaptation logs to empirically discover architecture adaptation patterns and their relations. Second, we utilise the software evolution techniques for self-adaptation of cloud architectures guided by a systematic selection and application of adaptation patterns. In the context of the IBM’S MAPE-K model for self-adaptation, we propose reusable policies for self-adaptive cloud architectures. Architectural adaptation knowledge in the proposed pattern language is expressed as a formalised collection of interconnected-patterns. Individual patterns in the language build on each other to provide a generic and reusable solution to address the recurring adaptation problems. In future, we focus on an incremental evolution of pattern language by discovering new patterns from adaptation logs over time.
Proceedings of the Wicsa 2014: Workshop on Dependable and Secure Cloud Computing Architecture (dascca, Co-located With Wicsa 2014), 2014
Cloud Computing; Self-Adaptive Systems; Pattern Language