A framework for dynamic software architecture-based self-healing

Self-healing is an active topic in areas like large complex distributed systems and continuous running systems, such as telephone switching systems, banking systems, mobile embedded systems. The architecture-based self-healing approach uses the architectural model as a basis for system reconfiguration. In architecture-based self-healing systems, the architectures may also be changed. The architectures that change during system's execution are dynamic software architectures. In this paper, a dynamic software architecture-based approach to self-healing is proposed. In the approach, architectural reflection is used to make the system architectures observable and controllable. Moreover, architectural style is used to ensure the consistency and correctness of the changes.