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.