Abstract
This paper attempts to identify one of the necessary conditions for self-healing, or self-repair, in complex systems, and to propose means for satisfying this condition in heterogeneous distributed software. The condition identified here is the following: For a system with a wide and open range of possible con.gurations to be self healing, it must possess suitable regularities, which can be relied upon to be satis.ed by all possible con.gurations of the system, and which must be invariant of its failures. We observe that self healing in physical artifacts, as well as in biological systems, are largely based on regularities engendered by the laws of nature. But since laws of nature have no effective sway over the behavior of software, we propose means for imposing arti.cial laws over a given distributed system, which are designed to induce desired regularities in them. We demonstrate the ef.cacy of the proposed approach by applying it to a simple example of electronic purchasing in enterprise systems.