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.