This GridCoord report contains a compendium of Grid research initiatives in European universities and research labs. This analysis is related to the recent and current projects on Grid Computing and to the possible industrial impact of this technology. It covers Grid applications being developed across Europe, research activities in software development tools and environments for next generation Grids and applications, and Grid middleware being used and produced. EU activities are correlated to those at the international level (GGF).
The document contains a chapter for each country that is represented by partners in the GridCoord project. Each chapter is organized as follows:
The basic software technologies that are needed to program Grids belong to two main areas, that have different levels of abstraction. Software development tools, either programming languages or libraries, assist the programmer in the development of complex grid applications, exploiting concepts and abstractions at the programmer level, leaving Grid management issues to the tools.
Grid Middlewares, instead, allow programmers or higher-level tools to handle all Grid related details: applications built on these middlewares can fully exploit the services offered by the chosen middleware and the unique properties of Grids that they present to the programming level.
Several tools and techniques are being studied to aid programmers and users in the development and exploitation of complex grid applications. They can be classified in three families:
General purpose programming environments like ASSIST (Italy), ProActive (France) and JGrid (Hungary) provide a comprehensive set of tools that simplify the programming of applications that are distributed on Local Area Networks (LAN), on cluster of workstations, or on Internet Grids;
Domain-specific development tools target specific needs of large communities: handling of biomedical requests on computing grids (IRIT, France), coupling HPC and Visualization (SGI Grid, Poland) or providing virtual laboratories for e-Science (VL-e, Nederland);
Interactive tools, i.e. grid portals (PROGRESS, Poland, and P-GRADE, Hungary) simplify the user interaction with Grid resources, enabling the execution of sequential, legacy programs on grids, as well as distributed programs that are explicitly designed to co-operate with the portal in order to fully exploit the grid.
Middlewares are of the utmost importance, when speaking of Grid technologies, and often there is a tendency of labelling most of the Grid-related software technologies as middleware, even if it is not appropriate. A survey and a thorough discussion about middlewares is reported in the last chapter of this document, where several aspects of the surveyed data are analyzed. The most interesting classification is based on the kind of services that they provide (an excerpt follows):
General Grid Environments: Padico (Paco++), ProActive, UNICORE, P-GRADE, JGrid. These are “super-middleware”, which take care of practically all the Grid-related issues you might encounter when coding some application for a Grid.
Grid enablement: Pacx-mpi, geddm, caraml, paco++, and most database systems (cited later). These middleware do not allow all Grid possibilities, but transform a distributed code into code that can be deployed on a Grid.
Legacy code: Guigen, GEMLCA. These middleware take legacy code (code written long ago, that cannot be maintained, but still works) and wrap it to make it work on a Grid.
Components/GUI: Guigen, ICENI, COVISE, UNICORE, P-GRADE. This is maybe the next step towards easy programming: instead of writing lines of code, the user draws the structure of the program, by dragging modules together.
Database: GeneGrid, GEDDM, caraml (partly). Big databases may be geographically spread apart, and the treatment may need huge computing power. Grids help solve these problems.
Control/Supervision: mpich-v, marmot, sgas, InfoProviders [rather resource discovery], VISIT [creation of bridge compute/visual]. The middlewares enable some control over what's happening on the Grid, and give the maintainers of the Grid a view of what exactly is running on the Grid.
File Systems: GridLab, ftm, GridCast [BBC stream availability], MAPFS. An important feature of Grids is being able to have files accessible from every node of the infrastructure. This needs advanced file systems which may for example fetch files on the fly, and keep coherence between distant versions of the same file.
Communications: VISIT. Some advanced communication abilities are required on a Grid, like linking together simulation and visualization, or to translate from one application to another.
Service infrastructure: DIET.
Job submission: GridWay. Job control is a key issue of an efficient Grid structure: one needs to be able to run concurrent applications, allocate free nodes, and stop jobs which are too greedy.
Business Grid: GRASP. This is maybe the future of Grid middleware, targeted at making money with the concept, and providing services or facilities for a financial contribution.
The survey suggests that for the software tools belonging to General Grid Environments, that unify the handling of all the Grid-related tasks, from deployment to scheduling to monitoring, the term middleware can be an understatement. We think that some of them could better be listed in the software development tools category.