AMGA - Overview



The ARDA project is studying the needs on metadata catalogues in a grid environment and what the solutions offered by the HEP experiments so far.

In order to investigate how an implementation of a highly performant and possibly distributed (including distributed updates) metadata server could look like, ARDA has written a prototype implementation. For the rationales of the design see here .

This prototype is also used to understand the design of the protocol interface of the server. Currently, the protocol of the metadata server is not yet final but already somewhat stable: Definition of the Client Server Protocol. It corresponds to the interface design for a web-service which is deveped by ARDA together with the gLite team.


The AMGA implementation uses streaming to communicate between client and server which shows a very promising performance. To meet the EGEE requirements, we have also implemented an alternative SOAP-based frontend. We have made a RPM including:

In the download directory you can find RPMs for installation on CERN Scientific Linux 3. Along with a source tarball and the latest Java client. Available is the WSDL definition describing the SOAP frontend and several examples.

The AMGA server comes with client APIs for C++ (Using the C++ Client API), Python (Using the Python Client API), Java (Using the Java Client API)and Perl. The client APIs apart from the C++ one are distributed separately from C++ server. They only need to be unpacked and work without much of an installation. The Java style documentation for the Java Client API can be found here. Both the Java API and the C++ client RPM include a command line interface.

Installation and First Steps

Installing the rpm on a machine will automatically install and set up postgresql including creation of an arda user. This last step might produce some error messages if the database metadata and the user arda already exist. This is a common situation if the server package has been previously installed. Please ignore these message. In a future release the installation process will be updated to deal with this situation gracefully. Detailed installation instruction for the RPM can be found in Installation .

After installation each user interested in using the client must define its own client configuration file. The client looks for its configuration in two places:

Configuring and Starting the Servers

The metadata server includes two frontends:

Each frontend has its own configuration file: amgad.config and mdsoapserver.config, respectively. During installation these files are created on the /etc directory. The default values should work fine in most situations, but if you want, you can fine-tune the behaviour of the servers by editing those files. To make this easy, all the settings are documented on the configuration files, but there is also a more detailed documentation at Configuring the AMGA Server and the Replicatin Daemon .

To start the server either execute amgad or mdsoapserver.

Command line access

Either the C++ or the Java interactive clients can be used to connect to the server interactively. The C++ client runs only on Linux, while the Java client is platform independent. The C++ Client can be started via:

  mdclient localhost

The Java client is started using one of the scripts provided: mdjavaclient.sh for Linux and mdjavaclient.cmd for Windows:

  mdjavaclient.[sh|cmd] localhost

While at the interactive prompt, it is possible to get help on the commands supported by the server by writing:

  Query> help

Client APIs

The C++ streaming API is described in Using the C++ Client API . The examples perf.cc and test_api.cc are part of the source tarball (note that they do queries on the database so they may give errors with your empty catalogue). The benchmark directory contains further examples for both the streaming and the SOAP front-end.

The Java API is in Using the Java Client API . The Java style documentation for the Java Client API can be found here.

The Python API is documented in Using the Python Client API . An example of how to use the Python API can be found on the testClient.py. file that is on the pythonapi directory of the source distribution.

A Perl API client module is available as Mdclient.pm, its documentation is here .

A PHP API client is available as amga_php_api.tar.gz and as org.glite.amga.api-php module. The documentation can be found here .

A Web Frontend for AMGA has been developed by INFN Catania. It is presented here.

An Easy-to-use GUI Client for AMGA has been developed by KISTI. It can be found here .

Documentation by Topic

People involved in AMGA

and formerly:





Generated on Mon Apr 16 15:21:59 2012 for AMGA by  doxygen 1.4.7