Efficient Utility-Driven Self-Healing Employing Adaptation Rules for Large Dynamic Architectures


Sona Ghahremani, Holger Giese, and Thomas Vogel. “Efficient Utility-Driven Self-Healing Employing Adaptation Rules for Large Dynamic Architectures”. In: International Conference on Autonomic Computing. ICAC ‘17. IEEE, 2017, pp. 59–68. DOI: 10.1109/ICAC.2017.35 (Karsten Schwan Best Paper Award)

ICAC 2017 Karsten Schwan Best Paper Award


Self-adaptation can be realized in various ways. Rule-based approaches prescribe the adaptation to be executed if the system or environment satisfy certain conditions and result in scalable solutions, however, with often only satisfying adaptation decisions. In contrast, utility-driven approaches determine optimal adaptation decisions by using an often costly optimization step, which typically does not scale well for larger problems. We propose a rule-based and utility-driven approach that achieves the beneficial properties of each of these directions such that the adaptation decisions are optimal while the computation remains scalable since an expensive optimization step can be avoided. The approach can be used for the architecture-based self-healing of large software systems. We define the utility for large dynamic architectures of such systems based on patterns capturing issues the self-healing must address and we use patternbased adaptation rules to resolve the issues. Defining the utility as well as the adaptation rules pattern-based allows us to compute the impact of each rule application on the overall utility and to realize an incremental and efficient utility-driven self-healing. We demonstrate the efficiency and optimality of our scheme in comparative experiments with a static rule-based scheme as a baseline and a utility-driven approach using a constraint solver.


    author = {Ghahremani, Sona and Giese, Holger and Vogel, Thomas},
    title = {Efficient Utility-Driven Self-Healing Employing Adaptation Rules for Large Dynamic Architectures},
    year = {2017},
    booktitle = {International Conference on Autonomic Computing},
    series = {ICAC~'17},
    pages = {59--68},
    publisher = {IEEE},
    doi = {10.1109/ICAC.2017.35},