monitoring indicators at different levels of abstraction. At the application level, it instruments the Java Virtual Machine (JVM) to notify several different types of events triggered during the execution of Java applications, e.g. object allocation and method calls. At the kernel level, MAPI inspects system-specific information generally hidden by the JVM, e.g. CPU usage and incoming network packets, by integrating with Simple Network Management Protocol agents and platform-dependent monitoring modules. MAPI is the core part of a portable tool for distributed monitoring, control and management in the Internet environment. The tool is implemented in terms of mobile agents that move close to the monitored resources to enforce distributed management policies autonomously, with a significant reduction in both reaction time and traffic overhead. Received 1 November 2001; revised 22 April 2002