| Grid computing combines aspects from parallel computing, distributed computing and data management, and has been playing an important role in pushing forward the state-of-the-art in computer science and information technologies. There is considerable interest in Grid computing at present, with a significant number of Grid projects being launched across the world. Many countries have started to implement their own Grid computing programmes – such as in the Asia Pacific region (including Japan, Australia, South Korea and Thailand), the European Union (as part of the Framework 5 and 6 programmes, and national activities such as the UK eScience programme), and the US (as part of the NSF CyberInfrastructure and the DDDAS programmes). The rising interest in Grid computing can be seen by the increase in the number of participants at the Global Grid Forum (http://www.gridforum.org/), as well as through regular sessions on this theme at several conferences.
Many existing Grid projects focus on deploying common infrastructure (such as Globus, UNICORE, and Legion/AVAKI). Such efforts are primarily aimed at implementing specialist middleware infrastructure that can be utilized by application developers, without providing any details about how such infrastructure can best be utilized. As Grid computing infrastructure matures, however, the next phase will require support for deploying and developing applications and associated tools and environments which can utilize this core infrastructure effectively. It is therefore important to explore software engineering themes which will enable computer scientists to address the concerns arising from the use of this middleware.
However, approaches to software construction for Grid computing are ad hoc at the present time. There is either deployment of existing tools not really meant for Grid environments, or tools that are not robust – and therefore not likely to be re-used in communities other than those within which they have been developed (examples include specialized libraries for BioInformatics and Physics, for instance). On the other hand, a number of projects are exploring the development of applications using specialist tools and approaches that have been explored within a particular research project, without considering the wider implications of using and deploying these tools. As a consequence, there is little shared understanding of the common needs of software construction, development, deployment and re-use. The main motivation for this book is to help identify what these common themes are, and to provide a series of chapters offering a more detailed perspective on these themes. |