As modern software systems continue inexorably to increase in complexity and capability, users have become accustomed to periodic cycles of updating and upgrading to avoid obsolescence—if at some cost in terms of frustration.
In the case of the U.S. military, having access to well-functioning software systems and underlying content is critical to national security, but updates are no less problematic than among civilian users and often demand considerable time and expense. That is why DARPA announced it will launch an ambitious four-year research project to investigate the fundamental computational and algorithmic requirements necessary for software systems and data to remain robust and functional in excess of 100 years.
The Building Resource Adaptive Software Systems, or BRASS, program seeks to realize foundational advances in the design and implementation of long-lived software systems that can dynamically adapt to changes in the resources they depend upon and environments in which they operate. Such advances will necessitate the development of new linguistic abstractions, formal methods, and resource-aware program analyses to discover and specify program transformations, as well as systems designed to monitor changes in the surrounding digital ecosystem. The program is expected to lead to significant improvements in software resilience, reliability and maintainability.
“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,” said 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.”
Current applications execute on a software stack comprising many different layers of abstraction, providing various services and structures. Access to these layers is mediated through different kinds of interfaces, all typically specified as secondary documentation supplied along with the application program interface. Because this documentation is typically defined informally, it provides only a partial, incomplete understanding of the system as a whole and requires substantial manual effort and reasoning.
“Ensuring applications continue to function correctly and efficiently in the face of a changing operational environment is a formidable challenge,” said Jagannathan. “Failure to respond to these changes can result in technically inferior and potentially vulnerable systems. Equally concerning, the lack of automated upgrade mechanisms to restructure and transform applications leads to high software maintenance costs and premature obsolescence of otherwise functionally sound software.”
The premise on which BRASS operates is that an entirely new clean-slate approach to software design, composition and adaptation is required. This approach aims to enable the expression and discovery of new kinds of specifications, program analyses and formal methods that precisely capture the relationship between computations and the resources they use, and algorithmic transformations that enable applications to adapt to changes without the need for extensive programmer involvement.
According to Jagannathan, BRASS could lead to the construction of families of programs all generally preserving high-level functionality but with different implementations that are optimized for different sets of resources and expose opportunities for cost reduction.