One unfortunate fact of modern life is that functional new software becomes non-functional old software with depressing regularity. For most people, this means predictable episodes of frustration, but for the US military, it's a more serious problem. DARPA's new Building Resource Adaptive Software Systems (BRASS) project aims to take a major shot at avoiding this obsolescence by developing software systems that can still operate properly a hundred years from now.

As systems become more complex, the problems of compatibility and obsolescence become more important. Perfectly good devices may be unusable, vital data may be inaccessible, and communications may be impossible. A simple example of this is the BBC Domesday Project of the 1980s, which digitized the famous 11th century Norman census of England's assets. The project was successful, but the LaserVision discs that the data was stored on were almost forgotten until 2002 when it was realized that their formatting was obsolete and would soon be impossible to access, resulting in a major preservation effort.

For the US military, the problem is more than just frustration; it can have an impact on national security. Even when updates are available, installing and configuring them is costly both in terms of money and time as the problems of backwards compatibility and degraded interoperability in military systems becomes more apparent.

BRASS is a four-year research project that looks at the computational and algorithmic requirements needed to build software systems that can remain functional for over a century. The idea is to produce systems that can actively adapt to changes in the computer environment. According to DARPA, this will require going back to a very basic level, developing new linguistic abstractions, and creating resource-aware program analysis aimed at monitoring changes in computer environments and making the software react accordingly.

Currently, applications work on a software stack made of many layers of abstractions. Getting to through these layers means using different program interfaces. Unfortunately, these interfaces are often informally and incompletely documented inside the interface software itself – if at all. This makes understanding the system extremely painstaking and difficult, it not almost impossible at times. In addition, this makes keeping applications working properly over time without automatic updates difficult, costly, and leads to premature obsolescence.

BRASS is based on a "clean-slate approach" to software design, composition, and adaptation. This will involve developing new software specifications, program analysis, and finding methods to determine how computations and computer resources interact, and finding algorithms to allow software to adapt itself to changes without the heavy need for a programmer. The hope is that this will lead to a new family of programs that are highly functional, but is very adaptable for change at low cost.

"Technology inevitably evolves, but very often corresponding changes in libraries, data formats, protocols, input characteristics and models of components in a software ecosystem undermine the behavior of applications," says Suresh Jagannathan, DARPA program manager. "The inability to seamlessly adapt to new operating conditions undermines productivity, hampers the development of cyber-secure infrastructure and raises the long-term risk that access to important digital content will be lost as the software that generates and interprets content becomes outdated."

Source: DARPA