Architectural Stability Reasoning using Self-Awareness Principles: Case of Self-Adaptive Cloud Architectures
With the increased dependence on software, there is a pressing need for engineering long-lived software. As architectures have a profound effect on the life-span of the software and the provisioned quality of service, stable architectures are significant assets. Architectural stability tends to reflect the success of the system in supporting continuous changes without phasing-out. The behavioural aspect of stability is essential for seamless operation, to continuously keep the provision of quality requirements stable and prevent architecture's drifting and phasing-out. In this paper, we present a framework for reasoning about stability during runtime, leveraging on self-awareness principles. Specifically, we employ runtime goals for managing stability goals, online learning for reasoning about stability on the long-run, and stochastic games for managing associated trade-offs. We evaluate the proposed work using the case of cloud architectures for its highly dynamics during runtime. The experimental results have shown the efficiency of self-awareness techniques in realising the expected behaviour stable during runtime operation.
READ FULL TEXT