Tool Support for Service-Oriented Ad-Hoc Grid Computing
Keywords: Grid Computing, Ad-hoc, Service Oriented Computing, Eclipse, Software Development
The Grid computing paradigm is attracting a growing number of users developing larger distributed computing projects than ever before. The initial vision of the Grid encompasses the fusion of different high-performance computing centers into a common infrastructure that allows uniform access to those heterogeneous resources.
Currently, most Grid projects are in the hands of large research organizations, companies or governments. These institutions have dedicated staff who manage the Grid and configure it specifically for their needs. The installation of a production quality large scale Grid is far from trivial, making these administrators vital to the task.
If the Grid is to fulfill the vision of becoming the next-generation Internet, the complexity of installing and maintaining the Grid must be reduced significantly. The Internet boom was made possible by making access to the Internet intuitive and transparent to the users. As a consequence, the number of users increased exponentially, which further increased the support for and the acceptance of the new medium.
The introduction of the service-oriented computing paradigm and the corresponding web service standards such as WSDL and SOAP in the field of Grid computing through the Open Grid Services Architecture (OGSA) is a major step towards reducing the complexity of Grid use, operation and maintenance. While OGSA describes the higher-level architectural aspects of service-oriented Grid computing, the Web Services Resource Framework (WSRF) is a fine-grained description of the infrastructure required to implement the OGSA model. Service-oriented Grid computing offers the potential to provide a fine grained virtualization of the available resources to significantly increase the versatility of a Grid. It can be employed to create a broader user base as a catalyst for new Grid developments by extending the initial vision of the Grid - connecting the world's supercomputing centers - to also incorporate the much larger community of desktop computers. The influx of users will allow the Grid to offer the possibility of harnessing the unused CPU cycles (or other resources) of idle workstations, as found in practically every organization, by combining them on demand to spontaneously form an ad hoc Grid without a preconfigured fixed infrastructure.
To achieve this goal, a number of new challenges must be taken into account. For example, through the extension of the Grid by non-dedicated resources, the complexity of the Grid is greatly increased. Currently, a handful of administrators with specialist knowledge manage their Grid infrastructure, configure the separate nodes and preinstall all Grid services which are required. When a large number of nodes is added to the Grid on a dynamic basis, central administration is no longer feasible. The heterogeneity of the system is increased and the reliability of the nodes is decreased due to reboots or crashes caused by the regular users of those nodes. The system itself must be capable of coping with the dynamic topology changes of the underlying network and the heterogeneity of the nodes to form an ad hoc Grid autonomously. Security is also of vital importance to such an extended Grid system. Since the number of users within a system is increased, new security mechanisms are needed to ensure that malicious code can not harm legitimate services running on the Grid.
In this project, we intend to investigate the potential and the problems involved in realizing a service-oriented ad hoc Grid environment to provide computing resources on demand to every participant.
The objectives of the project are:
- improving the usability of Grid technology
- supporting the separation of Grid middleware and application development
- decreasing the time-to-market for Grid applications
- enabling Grid application development for non-computer science communities
The deliverables of the project will be Eclipse plugins for supporting selected aspects of developing software applications for a Grid environment:
Service Creation and Extension Wizard
This wizard is responsible for creating and maintaining the entire Grid middleware specific code base of the service implementation, leaving the application developer free to concentrate on the application logic. An extensible library of Grid service patterns will be maintained from which the service implementation is derived. Transformation of application code into Grid services will be supported by the use of annotations.
Graphical Service Composition Tool
This tool provides support for graphical modelling of Grid applications from individual Grid services as the component building blocks. Modelling will be based on a Grid application meta model capturing typical design elements of Grid applications.
Application Deployment Wizard
This wizard is responsible for locating available Grid nodes and offering an interface for a filtered selection of nodes onto which the Grid application can be dynamically deployed. In addition to the deployment support during development, a standalone installer for the application can be generated.
Grid Configuration Assistant
This assistant offers functionality to inspect and manage different sets of Grid container configurations, helping the user to analyze erroneous or conflicting configuration settings by drawing on the distributed configuration of selected Grid containers.
Remote Grid Service Debugging Assistant
This assistant extends the Eclipse remote debugging functionality to enable the debugging of the entire Grid application environment. Debug information can be collected from various Grid nodes and filtered to allow identification of problems stemming from the distributed nature of the application.
Funding: IBM Faculty Award (IBM Eclipse Innovation Grant)
Read more: Grid Development ToolsContact: GDT Developers

