A network appliance for monitoring, diagnosing and documenting problems
among a plurality of devices and processes (objects) coupled to a
computer network utilizes periodic polling and collection of
object-generated trap data to monitor the status of objects on the
computer network. The status of a multitude of objects is maintained in
memory utilizing virtual state machines which contain a small amount of
persistent data but which are modeled after one of a plurality of finite
state machines. The memory further maintains dependency data related to
each object which identifies parent/child relationships with other
objects at the same or different layers of the OSI network protocol
model. A decision engine verifies through on-demand polling that a device
is down. A root cause analysis module utilizes status and dependency data
to locate the highest object in the parent/child relationship tree that
is affected to determine the root cause of a problem. Once a problem has
been verified, a "case" is opened and notification alerts may be sent out
to one or more devices. A user interface allows all objects within the
network to be displayed with their respective status and their respective
parent/child dependency objects in various formats.