A framework for self healing systems

Today’s software systems face significant challenges in maintaining stability in the face of unforeseen disruptions, resulting in substantial costs. Existing self-healing solutions primarily target known or anticipated failures, leaving systems vulnerable to unforeseen states. This project presents...

Full description

Autores:
Cerino Pulido, Javier
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2024
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
eng
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/75425
Acceso en línea:
https://hdl.handle.net/1992/75425
Palabra clave:
Self Healing
Framework
Dynamic
Reinforcement Learning
Scala
Ingeniería
Rights
openAccess
License
Attribution-NonCommercial-ShareAlike 4.0 International
Description
Summary:Today’s software systems face significant challenges in maintaining stability in the face of unforeseen disruptions, resulting in substantial costs. Existing self-healing solutions primarily target known or anticipated failures, leaving systems vulnerable to unforeseen states. This project presents a modular framework for dynamic self-healing systems capable of addressing unforeseen error states through adaptive recovery strategies. By integrating continuous monitoring with Reinforcement Learning (RL), the framework detects disruptions based on a few predicates and learns corrective actions to restore system stability. The framework uses the foundations of Context-Oriented Programming (COP) for dynamic adaptation and employs the Scala programming language along with the REScala library to improve reactivity. Validation was performed using two case studies programmed in this project using already existing REScala application references: a graphical design application and a productivity task management system, demonstrating the framework’s ability to adapt to diverse reactive environments. This project lays the foundation for building more resilient self-healing systems that autonomously learn recovery strategies, reducing the reliance on predefined error handling mechanisms. The modularity and scalability of the framework aim to simplify integration across multiple domains, ensuring robustness and flexibility in reactive software systems.