The Chinese Solar Machine Layer by Layer Fire in the Library The Mystery Behind Anesthesia
The ultimate goal for programming: software that heals itself.
For decades we've thought of computers as centralized intelligences; our model was the human brain. But lately, 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 system-I have a cold as I write this-they 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.
This shift is not only transforming the research of leading academic groups at places like Stanford University, the University of California, Berkeley, and the University of Virginia but also influencing the development of commercial products: IBM and Oracle have both introduced products such as Web servers and database programs that they describe as "self-healing," a term typically applied to biological organisms. In 2001 Paul Horn, head of IBM Research, wrote a widely read white paper describing the notion of "autonomic computing" and calling on the computing research community to begin thinking of ways to design systems that could anticipate problems and heal themselves.The point of autonomic computing-and by extension, of self-healing software-is to give networks and computer systems the ability to regulate and repair things that now require human thought and intervention. For example, servers need to be rebooted now and then to keep them working. That can happen because of "memory leaks" created by software bugs, explains Steve White, who heads up IBM's autonomic-computing research from the T. J. Watson Research Center in Hawthorne, NY. "A program will take up more and more memory to run," he says, "so eventually it breaks. Start over, and it will work." At the moment, users need to recognize problems themselves and physically reboot their systems. But with autonomic computing, "You can make it possible to reboot a system easily and automatically," says White.
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 fixes-like automatic rebooting-that don't get at the core problem. But that will require an entirely new approach to programming.
To read the entire article you must log in:
Most of our content — all daily news, blogs, and videos — is free. Magazine stories are paid. To read this story, you must have a subscription or you must use a reading credit. Registration to Technology Review is free and entitles registrants to three free reading credits.
Manufacturing in the United States is in trouble. That's bad news not just for the country's economy but for the future of innovation.
This document is part of the “How-To Guide for Most Common Measurements” centralized resource portal. This tutorial provides a detailed guide for measurement and device considerations to take temperature measurements using thermocouples. Get an introduction to thermocouples, which are inexpensive sensing devices widely used with PC-based data acquisition systems. Also review some specific thermocouple examples and learn how thermocouples work and ways to integrate them into a data acquisition measurement system.
View full PDF >Our list of the 50 most innovative companies, including the following: