Description
In order to utilize network resources effectively and be resilient to network failures, network clients must adapt to dynamic network state. However, detecting and handling asynchronous network events, which change network state, is a complicated task. Instead of imposing this burden on each network client, a Network Event Manager (NEM) accepts service requests of the form { event, action } from the clients. It maintains network status, performs event detection, and executes actions on behalf of a client when the client's registered event occurs. This paper discusses the issues involved in designing and implementing a network event manager. A network event manager can be used as a user watchdog or be applied to the adaptive control of pulsating computation, which is a single-phase or multi-phase distributed computation structured as a set of master and slave processes. We show that many time-consuming computations, like compilation, typesetting, and computer animation, can be structured as pulsating computations. The coupling of a shared network file system and a network event manager simplifies the recofiguration of pulsating computations with changes in network status. Experiences with two prototype implementations of Event Manager are described.