Grid Middleware & Training Systems

Essentially, a grid consists of three elements: grid resources, grid middleware and applications (cf. Architecture ). Thus, the grid middleware implements the functionality of a grid. The grid middleware's task is to provide access to the grid resources for users and applications and to organize the cooperation of different grid resources. A particular challenge results from the distribution of the grid resources areal as well as beyond the borders of organizations.

To find appropriate resources for a user request, make them accessible for the users, control and optimize their usage and finally return the results to the user are typical functions of a grid middleware. In the case of a compute grid, this means, to locate one or more computers on which a job could run, to distribute parts of a larger job, to transport data for a computation, if necessary, to control the computation and to return results or errors to the user.

Ideally, the use of a grid middleware enables the user to address and to use a multitude of heterogeneous resources in a uniform way. Applications and users will not have to cope with specific attributes of different resources like the application of different authentication mechanisms, different batch systems or different possibilities for the transportation of large amounts of data. Such problems, evoked by the distribution and heterogeneity of resources, should be solved by a grid middleware. The complete transparency of the used resources is currently  not quite achieved.

An important function of the grid middleware is to control access to grid resources which are often provided by different organizations. Thus, adequate mechanisms for authorization and authentication need to be provided. Many grid middleware, therefore, support the authentication via certificates (i.e. X.509) and only grant a temporary authorization for the usage of resources. On the other hand, applications, users and resource providers are not supposed to be restricted too much by security mechanisms.

There are grid middleware which specialize on specific types of resources but there are also frameworks which might be adopted to a large extent by users for their specific needs. From the multitude of the existing grid middleware (http://gridcafe.web.cern.ch/gridcafe/gridprojects/middleware.html), we will only present the following middleware according to the guidelines of the D-Grid:

  • Globus Toolkit (GT) provides a lot of open source tools serving as a basis to build grids and grid applications. The development of the Globus Toolkit is coordinated by the Globus Alliance, and a lot of projects around the world have contributed and still contribute to the GT (http://www.globus.org/).
  • UNICORE (Uniform Interface to Computing Resources) is an exhaustive and instantly executable grid middleware. UNICORE consists of software for both client and server systems that can be operated by users as well as administrators via a GUI. The leading developer of UNICORE is the Supercomputing Center in Jülich (http://www.unicore.eu/).
  • gLite is a grid middleware which emanated from developments for the Large Hadron Collider (LHC) at the European Organization for Nuclear Research (CERN). The basis of gLite has been developed within the LCG project (LHC Computing Grid). Subsequently, gLite was further developed in the EU project EGEE (Enabling Grids for E-sciencE). These activities are currently continued in the project EGEE II.
  • dCache is a storage grid middleware. dCache realizes a virtual file system across different, distributed storage systems and is constructed to exchange large amounts of data. dCache is mainly developed at the Deutsches Elektronen-Synchrotron (DESY) in Hamburg (http://www.dcache.org).