Quality-Driven Architectural Patterns for Self-Aware Cloud-Based Software
Maria Salama, Rami Bahsoon · 2015
Architecture-based self-adaptation has been recognised as one of the prominent ways to design autonomic systems, where self-manageable architectures tend to achieve the required level of dynamicity and compliance with the continual changing in QoS requirements during run-time. Self-awareness and self-expression have recently emerged as promising architectural concepts in the field of self-adaptive software. Self-aware architecture patterns are envisioned as enabler for self-adaptation, but they tend to provide limited support for the QoS run-time requirements. While the research community has developed in architecture quality management, patterns and tactics, addressing quality attributes in self-aware architectures has not been tackled yet. In this paper, we aim to provide quality-driven architectural patterns for emerging class of architecture enabled by the principles of self-awareness. We report on the feasibility of correlating QoS tactics with self-aware capabilities to better respond to QoS run-time requirements and trade-offs. We describe novel extensions which make the correlation between QoS tactics and self-awareness explicit. We quantitatively evaluate the feasibility, generality and fitness of the proposed approach, as well as its potential applicability to self-aware architectures. Though the proposed extensions can potentially benefit architectures which leverage on self-awareness, we use the case of cloud auto-scaling architecture.