1. A method for maintaining on demand and uninterrupted access to a networked computer system service comprising the steps of: a) determining what cluster resources are present in a network and providing a managed object abstraction to represent the cluster resource; b) establishing a directed graph of dependencies among the resources; c) selecting a particular node as an availability manager for the cluster; d) establishing communication links among the availability manager, any non-manager nodes and the managed objects representing the resources; e) establishing a policy determining the desired response of the cluster resources to changing system states and conditions; and f) responding to the changing system states and conditions by reassigning resource roles as required.