Model-Centric Development of Highly Available Software Systems
01 January 2006
Decades of research in software reliability have produced many valuable and exciting results. One of these results, high availability (HA) middleware, promises to reduce the effort of developers who build highly available systems by providing common HA building blocks for such systems. In practice, however, leveraging existing HA middleware still requires significant development work to be done integrating the HA middleware with the application of interest. We present a solution to this problem in the form of model-centric development. Using this approach, developers focus only on describing key abstractions of their application and its reliability needs in the form of a model. Tools then generate much of the code needed to make the application reliable, and a run-time infrastructure uses the model to coordinate and control HA services at run-time. This paper describes our approach and our initial successes in using it to develop commercial telecom systems.