Building highly available enterprise applications using
web-oriented middleware is hard. Runtime
implementations frequently do not address the problems
of application state persistence and fault-tolerance,
placing the burden of managing session state and, in
particular, handling system failures on application
programmers. This paper describes Phoenix/APP, a
runtime service based on the notion of recovery
guarantees. Phoenix/APP transparently masks failures
and automatically recovers component-based
applications. This both increases application availability
and simplifies application development. We demonstrate
the feasibility of this approach by describing the design
and implementation of Phoenix/APP in Microsoft’s .NET
runtime and present results on the cost of persisting and
recovering component-based applications.