Self-Healing METHOD FOR DISTRIBUTED SOFTWARE IN HETEROGENEOUS COMPUTER SYSTEMS
Modern software systems are created and executed in the conditions of continuous evolution of hardware platforms and operating systems. Most of them have a distributed structure, and the software components of the system are hosted on remote heterogeneous computer resources. At some moment one of the programs, computing resource, communications equipment or one of the available services fails. In some cases, there is a likelihood of external influence on the performance of the software components. In software systems, the term "self-healing" implies the existence of any application, service, or system that may find that it is not working properly, and without any human intervention, makes the necessary changes to restore itself to normal or design state. The system can perform the same actions if its structural elements are likely to fail. The problem is to make a fault-tolerant system that is able to respond to software and hardware changes and self-repair after crashes or take appropriate action in the event of failure. In in this article levels of software self-healing are considered. Models of distributed software and heterogeneous computer systems are proposed that take into account the architecture of software components and the heterogeneous nature of modern computing resources. A self- healing method for distributed software systems has been developed to restore the functionality of software components in the context of heterogeneous computer resources. The self-healing systems under study can be divided into three levels, depending on the type of resources we track and influence: application software, system software, and hardware level. The developed method allows working on all three levels