RainbowZnn

To achieve cost-effective self-adaptation, Rainbow consists of an approach and mechanism to reduce engineering effort and an explicit representation of adaptation knowledge. It provides a framework of mechanisms to monitor a target system and its executing environment and reflect observations into an architecture model, detect opportunities for improvements, decide on a course of adaptation, and effect changes (act). Using architectural style to exploit commonality between systems, Rainbow provides general, reusable infrastructures with explicit customization points to apply it to a wide range of systems. It also provides useful abstractions to focus engineers on adaptation concerns, facilitating its systematic customization to particular systems. To automate system adaptation, it provides a language, Stitch, to represent routine human adaptation knowledge using high-level adaptation concepts of strategies, tactics, and operators.

Applying Rainbow to Znn.com

To demonstrate Rainbow’s self-adaptation capabilities, we compare the use of self-adaptation versus basic manual configurations using a Znn.com setup. We use the expected utility of the system to its two groups of stakeholders, the providers and users, as the metrics of comparison. By effective, we mean that an approach resulted in a high utility for the system. We show that Rainbow self-adaptation is more effective than basic manual configuration on a system like Znn.com. We further show that Rainbow incurs low overhead in the process, as well as achieves composability. Specifically, we explore the following hypotheses:

  • Rainbow self-adaptation is more effective than manual reconfiguration.
  • Rainbow incurs low resource overhead (1-2%) on crucial resources like CPU utilization.
  • Given multiple objective dimensions, Rainbow chooses the most effective strategy.
  • Incremental addition of a new objective dimension incurs low development effort, O(days), and incremental addition of new adaptation strategies (once tested to work) requires, at worst, a quick restart of Rainbow.

For details of the solution for customizing the Rainbow framework to Znn.com, please see section 6.5 in Shang-Wen Cheng's thesis. You may also find Chapters 3, 4, and 5 useful background reading.