NanoXen: Better Systems Through Rigorous Containment and Active Modeling
Modern software design has less writing large programs and more orchestrating the actions of prewritten library elements. These elements, generally known as components, are stateful software elements which can operate and interact in unexpected ways. Most errors in large systems result from unanticipated behavior from components, or unexpected interaction between components. In this paper, the authors argue that two principal innovations permit the rapid construction of far more robust and reliable software systems: rigorous containment, to control interactions, and active modeling with dynamic model checking, to rapidly detect unexpected behavior. They outline a small set of requirements which will produce such a system, NanoXen, of virtual components, the component analog to virtual machines.