Abstract-This paper introduces a new concept of pluggable grid service, that provides seamless access to computational grids, based on aspect-oriented techniques. Pluggable grid services avoid explicit calls to grid services in scientific codes, localize grid-specific concerns into well defined modules and can be (un)plugged from scientific codes. Domain specific code becomes oblivious of grid issues, allowing scientists to concentrate on domain specific issues, and to manage grid issues by composing grid-specific modules. This paper presents a collection of pluggable grid services that illustrates the idea and shows how pluggable grid services can grid-enable a skeleton framework.
I. INTRODUCTIONComputational grids provide unparallel computational power to scientists, making it possible to perform larger and more complex simulations and experiments. However, current grid services require a considerable up-front investment to understand and to use a grid application programming interface. Moreover, to enable applications to run on computational grids, scientists lose control of the overall structure of their code and execution of their code becomes dependent of a grid infrastructure (or a ghost local grid). For instance, when using MPICH-G [1] programmers must parallelize their application, splitting application data among MPI process and to use send and receive primitives to exchange data among processes. The main control flow is now MPI-based, which poses limitations to understanding and evolving grid-enabled codes. These limitations contribute to a shortage of real grid users, as converting applications to run on computational grids requires multiple and non-reversible changes to the original domain specific code.Aspect-oriented programming [2] (AOP) was proposed to address crosscutting concerns in systems software. AOP makes it possible to localize into well defined modules concerns that are not effectively modularized with other programming techniques. This paper explores the use of AOP techniques to support pluggable grid services (PGS). The idea is three-fold:(i) Modularity of grid concerns: to use AOP techniques to localize grid concerns into well defined modules. (ii) Pluggability of grid services: to provide means to grid-enable scientific applications with less changes to the source code than current approaches. (iii) Unpluggability of grid services: to support the development of grid enabled applications that can run when grid-specific modules are not included in the build.