A method for providing for the graceful degradation of the performance and
functionality of a distributed computer application. A plurality of
sensors monitor the performance and availability of various external
resources and/or services required by the application, as well as the
performance of various components of the application, and report the
information to one or more controllers. The controllers make decisions
based on rule-based criteria as to how to modify the behavior of the
application according to the performance and availability of the various
required resources and services. The controllers send messages to one or
more actuators which effect the change in behavior of the application. A
console displays the status of the system and allows users to modify the
rules used to modify the behavior of the application.