MonALISA System Design
MonALISA is a globally scalable framework of services to monitor and help
manage and optimize the operational performance of Grids, networks and
running applications in real-time.
The MonALISA architecture, presented in Figure 1, is based on four layers of global services.
The network of JINI - Lookup Discovery Services (LUS) provides dynamic registration and discovery
for all other services and agents. Each MonALISA service can execute many monitoring tasks through the
use of a multithreaded execution engine and to host a variety of loosely coupled agents that analyze the
collected information in real time. The collected information can be stored locally in databases.
The layer of Proxy services, shown in the figure, provides an intelligent multiplexing of the
information requested by the clients or other services and is used for reliable communication between agents.
It can also be used as an Access Control Enforcement layer .
Figure 1: The MonALISA Architecture
A service in the MonALSIA framework is a component that interacts autonomously with
other services either through dynamic proxies or via agents that use self-describing protocols.
By using the network of lookup services, a distributed services registry, and the discovery and
notification mechanisms, the services are able to access each other seamlessly. The use of dynamic
remote event subscription allows a service to register an interest in a selected set of event types,
even in the absence of a notification provider at registration time. The lookup discovery service
will then automatically notify all the subscribed services, when a new service, or a new service
attribute, becomes available.
The code mobility paradigm (mobile agents or dynamic proxies) used in the MonALISA system
extends the approaches of remote procedure call and client-server. Both the code and the appropriate
parameters are downloaded dynamically into the system. Several advantages of this paradigm are:
optimized asynchronous communication and disconnected operation, remote interaction and
adaptability, dynamic parallel execution and autonomous mobility. The combination of the
service architecture and code mobility makes it possible to build an extensible hierarchy of
services that is capable of managing very large systems.