Technology.am (Oct. 1, 2009) — European researchers have built a system to create applications that manage and fix high-powered internet applications themselves.
Peter Van Roy, coordinator of the EU-supported SELFMAN project, identified four vital functions for a distributed application to manage itself – self-configuring, -tuning, -healing and -protecting.
Software is continually being patched, updated or replaced. For a distributed system to configure itself, it needs to keep track of all its components, update them as needed, and make sure that all parts of the system can still talk to each other.
“Our system can ask a component, what version are you? Who are you talking to? It can then replace an old version with a new one as needed,” says Van Roy.
Self-tuning means that the system can instantly adjust to changing loads and to components leaving or joining the network.
“Suppose one node is getting overloaded,” says Van Roy. “Our load-balancing algorithm allocates new nodes close to that hotspot. It spreads the heat to the other nodes and the hotspot cools down.”
The internet is an unpredictable environment. Routers crash, cables get cut, parts of the system overload and grind to a stop, and components come and go.
“With SELFMAN,” Van Roy says, “each node stores some of the data and each piece of data is replicated a certain number of times. If a node crashes, the other nodes detect the crash, find a new node and give it the missing data. The system heals itself.”
One of the biggest problems SELFMAN tackled was self defence.
The researchers found “small world” networks – in which most nodes are not directly linked, but in which any node can communicate with another in a few steps – were the safest.
“With a small world network, it’s easier to detect, isolate, and eject bad nodes,” says Van Roy. “The security service observes the system’s behaviour. If it notices that certain parts of the network are acting abnormally, it takes action.”
The SELFMAN team found that building these advanced capabilities into useful applications required a highly structured approach.
The foundation of each application is a structured overlay network. That’s a program – itself replicated across the network – that keeps track of all the nodes and connections between them, and can decide when and how to fix problems.
The next level is a replicated storage system. It makes sure that each node has access to the same data, and that data are always replicated to ensure they do not disappear.
The third level houses SELFMAN’s transactional problem-solver. It relies on a sophisticated algorithm called Paxos to provide a systematic way of reaching consensus among any number of fallible components.
Van Roy believes that SELFMAN opens the door to a host of high-powered, flexible, and “unbreakable” internet applications.