Monday, September 17, 2007

Failed Prediction -- BioSoftware



Even with modern development languages, simple errors in source code can result in complete program failure during execution. Why is it that a simple syntax error can cause an application to entirely stop working? Wouldn’t it be nice if this cause / effect relationship was more equally proportioned? The notion of self-healing software has been around for a long time.

In January, 1994, Alan Kay was interviewed by Kevin Kelly and Steven Levy for Wired magazine. During the interview Kay stated “I was thinking about ecological computing. When I was working with computers in the late '60s, all of the computer power on Earth could fit into a bacterium. The bacterium is only 1/500th of a mammalian cell, and we have 10 trillion of those cells in our bodies. Nothing that we have fashioned directly is even close to that in power. Pretty soon we're going to have to grow software, and we should start learning how to do that. We should have software that won't break when something is wrong with it. As a friend of mine once said, if you try to make a Boeing 747 six inches longer, you have a problem; but a baby gets six inches longer 10 or more times during its life, and you never have to take it down for maintenance."

Much work has been done trying to implement Alan’s ideas. For example, Kevin Fulk and Dr. Blake Ives did a good Biological Computing survey in November, 2002. They talk about DNA Chips which have been available since 1996, and the first automated DNA Computer released in 2003. They predicted genetic “programs and robots” 5 or more years from now, and hybrids and engineered life forms in the distant future.

Also in November, 2002, Selvin George, David Evans, and Lance Davidson wrote a paper published by ACM titled A Biologically Inspired Programming Model for Self-Healing Systems in which they discuss their approach to mimic basic cell processes within software.

Stelios Sidiroglou, et al took another approach, where they attempt to Build a Reactive Immune System for Software Services (Usenix ’05).

Unfortunately, we haven’t quite figured out how to grow software – but it’s definitely worth trying!

0 comments: