Biologically Inspired Self-Healing Software System Architecture - Elhadi, Mazin (2008)
Self-healing capabilities have begun to emerge as an interesting and potentially valuable property of software systems. Self-healing characteristic enables software systems to continuously and dynamically monitor, diagnose, and adapt itself after a failures has occur in their components. Adding such characteristic into existing software systems is immensely useful and valuable for allowing them to recover from failures. However, developing such self-healing software systems is a significant challenge. The nature introduces to us unforeseen concepts in terms of presenting biological systems that have the ability to handle its abnormal conditions. Based on this observation, this thesis presents self-healing architecture for software system based on one of the biological processes that have the ability to heal by itself (the wound-healing process). The self-healing architecture provides software systems the ability to handle anomalous conditions that appear among its components. The presented architecture is divided into to layers, functional and healing layer. In the functional layer, the components of the system provide its services without any disruptions. The component is considered as faulty component if it fails to provide its services. The healing layer aims to heal the faulty component and return it to the running system without the awareness of the user. The presented self-healing software system is formally described to prove its functionality. Set-theoretic and Finite State Machine (FSM) is introduced. A prototype for the presented architecture has been implemented using Java language. Java objects are considered as the system components. The modules of the healing layer in the selfhealing architecture have been implemented into Java classes. An object from the module class will be created to perform its task for the healing process. The thesis concludes with recommendations for future works in this area and enhancement of the presented architecture. v