Self-Healing Software

Technology Review writes:

A growing number of researchers have been talking about a shift in the core metaphor for computing, from the notion of artificial intelligence to something that might be called artificial biology. Forget about the dream of creating bug-free software. Just as bugs regularly affect any biological systemI have a cold as I write thisthey should also be expected in software. So software needs to be designed to survive the bugs. It should have the biological properties of redundancy and regeneration: parts should be able to die off without affecting the whole.

The point of autonomic computingand by extension, of self-healing softwareis to give networks and computer systems the ability to regulate and repair things that now require human thought and intervention.

In the future, the biological metaphor may even affect the way we program to begin with. Software could eventually heal some of its own bugs, supplementing catch-all fixeslike automatic rebootingthat dont get at the core problem. But that will require an entirely new approach to programming.

We need to move towards a programming philosophy where we look at the global system and understand what properties it needs to have, rather than thinking about programming as a sequence of instructions, says David Evans, who is pursuing biologically inspired programming methods as a computer science professor at the University of Virginia. Its really a different way of approaching problems.

Evans notes that software today is written linearly, with each step depending on the previous one, more or less guaranteeing that bugs will wreak havoc: in biological terms, organisms with no redundancy dont survive long if one means of accomplishing a task fails. More robust software would include many independent components so that it will continue to work even if several of its components fail.

Published by

Rajesh Jain

An Entrepreneur based in Mumbai, India.