Popis: |
Self-optimization is the process in which a software system autonomously and continuously adapts itself based on environmental changes which negatively impact its overall performance. Most self-optimizing systems rely on an abstract model, with the majority relying on an abstract model representing the running software architecture to guide self-optimization decisions. However, existing approaches to self-optimization are centralized resulting in a single point of failure. This paper outlines a decentralized approach to self-optimization based on DARE, an architecture-based framework for providing component-based software systems with self-configuration, self-healing, and self-protection properties. We show how DARE services are extended to monitor and analyze the incoming message rate of components as well as how these services coordinate at runtime to self-optimize the controlled software system without losing any transactions. Experimental results demonstrate DARE's ability to achieve self-optimization at runtime and in a decentralized way. |