Grid news
Toth - Distributed Logging for ACGT environment (Juliusz Pukacki – PSNC)
One of the most important paradigms for designing ACGT architecture is the idea of loosely coupled services cooperating with each other to provide desired functionality for the end user. That architectural model is the consequence of Service Oriented Architecture (SOA) approach chosen for ACGT.
There are many advantages of using SOA solution: flexibility, lower maintenance costs, well defined integration schema, but there are also some drawbacks. One of them is the problem with monitoring and debugging of users actions in the distributed environment. The reason for that is quite obvious: single action on the level of user interface can cause multiple services invocations in the background. The best example of it, is the Workflow Environment where the user can design his/her experiment as a set of operations involving usage of databases or grid nodes.
The crucial issue for the ACGT services developers is the ability to track the flow of actions initiated by the user throughout the whole system. To fulfill that requirement, Toth the distributed logging system designed by PSNC, was deployed in the ACGT environment.
The main idea behind to Toth is to provide simple tools for the services to store the logs in the remote logs repository, and to provide simple yet powerful mechanisms for analyzing and filtering stored entries.
The main assumptions taken into account during Toth design and implementation are:
Open architecture: it is possible to add new modules enhancing basic functionality
Flexibility: simplified procedure of client application configuration with connection of possible further tuning of logging system by advanced administrators
Scalability
Intuitive interface based on web portal and web services
Implementation of a distributed logging system in ACGT consists of three main components:
Centralized log events repository for distributed logging – module for collecting and managing collected log events, preprocessing events, instant analyze of events from all components of monitored distributed system and for exploring collected events and filtering them;
User access module – set of user forms in web portal form (as a separate web portal and additional panel in the DMS portal) that uses log repository web services method for building queries on collected logs and for service management
Client module that may be used by application (or service) for sending events to log repository using standard logging mechanisms (e.g. log4j for Java).
Figure 1: Toth the distributed logging system designed by PSNC
Log events repository delivers functionality using JMS queue for collecting log events sent by clients and SOAP web services for implementing both: storing and querying events and management functionality. The internal architecture of Toth Log Repository consists of following elements:
Database log events repository allowing to perform queries and add events
Connector (based on implementation of JMS queue) listening for incoming log events to store in the repository. Applications may send logs to this connector using prepared log4j appender or may send events using its own implementation of JMS queue.
Web Service interface which delivers functionality for querying log repository and storing new events using WS methods. This is alternate possibility of adding new events to the Log repository (the other way is to use log4j appender for Java applications).
User interface application - portal - which is using log repository web service interfaces to present the stored log entries.
To take advantage of logging systems services administrators can use portal interface application. It allows managing the Distributed Logging events repository and exploring events stored there.
In a general case there can be a lot of entries stored in repository. One of the most important features of portal client is ability to define conditions that should be fulfilled by the event to be displayed.
User can filter repository by constructing condition specifying source, log event level, logger name and timestamp. Additionally it is possible to turn on and off interesting columns of presented result by checking out appropriate checkboxes. The example screen-shot of the application is presented on the figure 2.
Figure 2: Screen shot of the Toth application
The Toth Distributed Logging system is a powerful tool that can be used by service developers for debugging and monitoring of complicated scenarios running in ACGT environment. It requires a little more effort during services development but the benefits of using it are much more essential.