Self-healing software is on its way

By emulating processes that occur in the human body and applying them to computers, IBM Israel is leading the way in building self-healing software.

 Self-healing software is on its way


The IBM Haifa research facility (Photo courtesy Israel 21c)

By Brian Blum – Israel 21c

If your computer gets sick, would you rather give it a full system overhaul or the equivalent of a digital Advil to relieve the symptoms? Onn Shehory and his team at Israel’s IBM Haifa research facility have developed much more than a computerized analgesic. Say hello to the world’s first self-healing software.

The project – called SHADOWS for "a Self Healing Approach for Developing cOmplex softWare Systems" – was proposed by Shehory and funded by the European Union’s 6th Framework Program, a technology initiative that invests in promising international endeavors. The idea was to emulate how the human body behaves and apply it to software.

"When you develop some sort of dysfunction, the body senses this and reacts automatically," Shehory tells ISRAEL21c. "It is essentially self-monitoring." SHADOWS does the same for computer systems. "It recognizes specific misbehaviors, classifies them into possible types of problems, and then for the serious ones, makes the appropriate adjustments," he says. This may include inserting new lines of codes before a program runs or moving around memory resources, to prevent the most common reasons for system crashes.

Take an aspirin and call me later

In the case of memory, for example, Shehory explains that "we can manipulate the usage of memory without actually knowing where the problem is coming from. We don’t have to find the bug, just to know that something is wrong." That’s the same way that a pain and fever medication acts on the body. "Instead of a week of fever, you might just have a half an hour at the end of the week," he says. "It doesn’t remove the root cause – the virus – but it will prevent the fever from coming back for a long time.

"In order to continue benefiting from the advances and innovations becoming available in the IT landscape, software developers and architects must begin to design software… to incorporate internal safeguards that can both identify and repair problems," adds Yaron Wolfsthal, head of the Reliable Systems Technologies group at the IBM Haifa lab.

The need for self-healing software is clear: Computer systems are now ubiquitous, a part of everything from dishwashers to managing a countrywide electricity grid. The problem is that software systems are inherently buggy. Even utilizing software testing, reviews and other protective measures, "with millions of lines of code, it’s too difficult to identify all the problems in advance," Shehory says.

Traditional approaches to fixing software have meant calling on engineers to sift through the code, locate the bug and repair it – a process that’s akin to searching for a needle in a digital haystack. And yet, "we can’t afford for systems to fail on critical missions… or even non-critical missions," exhorts Shehory.

Identifying problems from the get-go

SHADOWS doesn’t go so far as to create self-aware artificial intelligence – no worries about a Terminator-style SkyNet attacking the planet. Nor is it specifically targeted at preventing terrorists from bringing down global networks. "It’s not about security, it’s about the robustness of the code," Shehory explains, although he suggests that since SHADOWS can identify problems as they start to brew, it may allow programmers to jump into action if they sense a cyber-attack is imminent.

SHADOWS is sophisticated but doesn’t require any changes to existing legacy computer systems – it can sit alongside those programs monitoring their action and only start working its magic when it detects something awry. Shehory hopes, however, that programmers will speed things up by manually inserting "comments" when they write the software that can direct SHADOWS to look at, say, only 10,000 rather than a million lines of code.

The genesis of SHADOWS was a proposal IBM in Israel made to a European Union program that promotes collaboration in research and technology across Europe. Eight other partners joined IBM in the three-year, $5 million project – major universities including the University of Potsdam in Germany and the Brno University of Technology in the Czech Republic, and technology heavyweights such as Phillips Electronics of the Netherlands and the Spanish phone carrier Telefonica, which provided a case study on the use of the SHADOWS technology. The EU pays for 50 percent of the project with the IBM lab responsible for the other half.

Software – heal thyself!

Despite the innovation, SHADOWS is not yet ready for prime time – it’s more a general research-oriented framework than an actual, saleable product – although parts of it may be commercialized. Each partner in the project owns its own intellectual property should a marketable solution ultimately be developed.

In the meantime, Shehory is considering applying for a second stage grant to address the technology’s biggest limitation: The resistance of the people who write the computer systems that need SHADOWS to inserting machine-generated code automatically into their babies.

"The psychological effect is very strong," Shehory admits. "If SHADOWS writes some new code, the programmer might be hesitant, thinking ‘can I trust this, will it work properly?’ "The solution may be as simple as adding a feature that "recommends" the change, allowing the engineer to decide whether or not to accept it. Still, Shehory says, "we’re trying to find technical ways to address this difficulty without human intervention." Software – heal thyself.