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.