A method system for tracking the state of an entity (e.g., an object) on
behalf of a client (e.g., an application program). The states of an
entity include up and down. The tracking system of the present invention
receives a request from a client to track the state of an entity. The
tracking system then watches the state of the entity to detect when the
entity enters the up state. When the entity enters the up state, the
tracking system performs a behavior that is specified by the client to be
performed when the entity enters the up state. When the entity is in the
up state, the tracking system monitors the state of the entity to detect
when the entity enters the down state. When the entity enters the down
state, the tracking system performs a behavior that is specified by the
client to be performed when the entity enters the down state. When the
tracking system receives a request from the client for a pointer to the
entity, the tracking system determines the current state of the entity
and either provides a pointer to the entity or indicates that a pointer
is not being provided.