Self-Healing Systems Will Age
A number of researchers are advocating the adoption of self-healing approaches as a way to create more robust systems. They suggest to copy a page from the book of life, where organisms with a self-healing capability can survive numerous mishaps and accidents. However, biological systems have another property, which I believe is associated with their ability to heal themselves: ageing, and, eventually, death.
We currently know how to build robust dependable systems using a number of approaches, such as static type checking, model checkers, exhaustive unit and system-level testing, formal methods, and redundant hardware components. These approaches are deterministic in nature: we know that if a program in a given state receives some pre-tested input it will behave in the way we have already verified; if a RAID-2 disk fails, the system will continue to work, until the other disk also fails. The intellectual and engineering achievement of creating extremely complex multi-million line digital systems that can work years without failure is extremely valuable. Here we have surpassed Nature using different materials and methods to create a new and unique type of highly dependable systems.
Proponents of self-healing systems want us to augment our systems with rules that will detect unanticipated failures and react on them. Unfortunately, human nature being what it is, self healing systems and approaches will be adopted (out of laziness) to plug shortcomings that should be detected and fixed using our existing engineering methodologies. However, a system that has healed itself ends in a state with more entropy (less known, predicable state) than it had before healing itself. (By definition, if the state after the self healing is known and predictable, we are not talking about self-healing, but about a vanilla corrective action.) In Nature, increasing entropy in organisms leads to sickness, ageing, and death.
Do we really want systems that will fail for inexplicable reasons, systems that will die out of incurable old age and software cancer? I don't think so. Nature has adopted self healing to deal with the shortcomings of the chemical processes used in life, and evolution as a way to engineer complex systems. Man can use superior materials and methods, and can design complex dependable systems from scratch. Let us not loose this ability.
Read and post comments