R-GMA: In 5 minutes

R-GMA in 5 minutes

The purpose of this page is to give a quick introduction to R-GMA, so that you can see what it is for, what it does, and find out whether it is useful to you.

Information and Monitoring Services

In a distributed environment, such as a computing Grid, it is important to be able to find information on what resources are available. This may be information on what computers are available on various sites to run jobs, including their current load and what software they have available. Information may also be needed on mass data storage facitilites, including the current status and maximum size and number of a files that may be stored. It is also important to be able to monitor the progress of jobs, especially when the user will probably not know where the job is going to be executed when the job is submitted.

The Grid Monitoring Architecture

The Global Grid Forum (GGF) defined a basic architecture for monitoring within the Grid, called the 'Grid Monitoring Architecture' or 'GMA'.

This architecture consists of three components: Consumers, Producers and a directory service, (which we prefer to call a Registry).

Grid Monitoring Architecture (GMA)
Image images/gma.png

In the GMA Producers register themselves with the Registry and describe the type and structure of information they want to make available to the Grid. Consumers can query the Registry to find out what type of information is available and locate Producers that provide such information. Once this information is known the Consumer can contact the Producer directly to obtain the relevant data. The Registry communication is shown by a dotted line and the main flow of data by a solid line. The GMA architecture was devised for monitoring but it also makes an excellent basis for a combined information and monitoring system.

The Relational Grid Monitoring Architecture

The Relational Grid monitoring Architecture (R-GMA) is a an implementation of GMA, with two special properties.

Anyone supplying or obtaining information from R-GMA does not need to know about the Registry, the Consumer and Producer handle the registry behind the scenes.

The Information and monitoring system appears like one large relational database, and can be queried as such. Hence the 'R' GMA, a relational implementation of GMA.

Note that R-GMA provides a way of using the relational model in a Grid environment and that it is not a general distributed RDBMS. All the producers of information are quite independent. It is relational in the sense that Producers announce what they have to publish via an SQL CREATE TABLE statement and publish with an SQL INSERT and that Consumers use an SQL SELECT to collect the information they need.

Interacting with R-GMA

APIs are available in various languages for interaction with R-GMA. Currently APIs are available in Java, C, C++, and Python. This allows various Grid Services and Applications to interface with R-GMA.

A web browser is available, which allows users to browse the status of a Grid.

A command line tool is also available, which helps a user to understand and test out producers and consumers.

The R-GMA Schema

The Schema is where the types of tables are defined, i.e. tables and columns that will be present in the Relational-type database. Some tables are pre-defined when the system is installed, these include things like certain Site Services. Tables may also be defined by applications, making the system very flexible.

Deployment

Typical deployment consists of Producer and Consumer Services on a one per site basis, and a centralized Registry and Schema. In future replication of the Registry and Schema will be available, to avoid a single point of failure.

Examples of Usage

Usage as a Grid Information and Monitoring tool

Note that the R-GMA usage up to now has been as a Grid Information, Monitoring and Logging tool.

A user submits a job in a Grid environment. When the user submits the job the Job Manager will need to find a suitable resource to run the job. The information System may be used to find the appropriate resource.

The user will also want to track progress of the job - R-GMA can be used to keep track of job progress. In this case the user submitting a job does not need to know about R-GMA, it is hidden from the user.

Direct Usage

The possibilities for using R-GMA as an information service for various applications are endless. Any system where the user wishes to manage information in a distributed system can use R-GMA.

More details

For a more detailed description of R-GMA see the R-GMA architecture explains more about what R-GMA is about.

Full documentation is available from the R-GMA documentation page This includes a full specification, and user manuals for the various API languages

Obtaining and Installing the R-GMA code

At present R-GMA is only available in RPM form for Linux systems, but should be available as a source distribution in the coming months for use on any Unix system. We also hope to make R-GMA available for Windows at a later date.

For information on installing R-GMA the installer is referred to the R-GMA development site.

R-GMA Home

    Contact the R-GMA team Last Modified:15/10/2006