Some EDG services must maintain persistent metadata in remote relational databases. However, existing relational database systems are not grid-enabled, affecting adversely cross-organizational interoperability and reuse. Spitfirehttp://edg-wp2.web.cern.ch/edg-wp2/spitfire/index.html addresses these issues. Spitfire is designed to be used for metadata storage and retrieval.
The Spitfire middleware is inserted into the control and data path between the client and the RDBMS and so grid-enables the RDBMS. It introduces a uniform interface, data model, network protocol and security model. These are based on widely accepted standards and neutral with respect to programming language, platform and database product.
There are three main components to the Spitfire service: the primary server component and the client library component(s). Applications that have been linked to the Spitfire client library communicate to a remote instance of the server. This server is put in front of a RDBMS (e.g. MySQL or Oracle), and securely mediates all Grid access to that database. The browser is a standalone web portal that can also be placed in front of a RDBMS.
The server is a fully compliant Web Service implemented in Java. It runs on Apache Axis inside a Java servlet engine (currently Apache Tomcat). The service securely mediates access to the RDBMS. The service is reasonably non-intrusive, and can be installed in front of a pre-existing RDBMS. The local database administrator retains full control of the database back-end, with only limited administration rights being exposed to properly authorized grid users.
The web services client library, at its most basic, consists of a WSDL service description that describes fully the API. This API allows SQL operations to be performed from the client application upon the remote Spitfire service, with full Grid security. Using this standard WSDL description, client stubs can be generated automatically in the programming language of choice. We provide pre-built client libraries for the Java, C, and C++ programming languages.
In addition to accessing the service with the clients, the user can access the database using a web browser, too. The server package contains a web interface for querying and manipulating the database, as well as an administrative interface for defining access rules for users and groups.
More information can be found on the Spitfire websitehttp://edg-wp2.web.cern.ch/edg-wp2/spitfire/documentation.html.