Programming the Grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications

Computational Grids [17,25] have become an important asset in large-scale scientific and engineering research. By providing a set of services that allow a widely distributed collection of resources to be tied together into a relatively seamless computing framework, teams of researchers can collaborate to solve problems that they could not have attempted before. Unfortunately the task of building Grid applications remains extremely difficult because there are few tools available to support developers. To build reliable and re-usable Grid applications, programmers must be equipped with a programming framework that hides the details of most Grid services and allows the developer a consistent, non-complex model in which applications can be composed from well tested, reliable sub-units. This paper describes experiences with using a software component framework for building Grid applications. The framework, which is based on the DOE Common Component Architecture (CCA) [1,2,3,8], allows individual components to export function/service interfaces that can be remotely invoked by other components. The framework also provides a simple messaging/event system for asynchronous notification between application components. The paper also describes how the emerging Web-services [52] model fits with a component-oriented application design philosophy. To illustrate the connection between Web services and Grid application programming we describe a simple design pattern for application factory services which can be used to simplify the task of building reliable Grid programs. Finally we address several issues of Grid programming that better understood from the perspective of Peer-to-Peer (P2P) systems. In particular we describe how models for collaboration and resource sharing fit well with many Grid application scenarios.

[1]  Ian T. Foster,et al.  Grid information services for distributed resource sharing , 2001, Proceedings 10th IEEE International Symposium on High Performance Distributed Computing.

[2]  Ian Foster,et al.  The Grid 2 - Blueprint for a New Computing Infrastructure, Second Edition , 1998, The Grid 2, 2nd Edition.

[3]  Dennis Gannon,et al.  PARDIS: A parallel approach to CORBA , 1997, Proceedings. The Sixth IEEE International Symposium on High Performance Distributed Computing (Cat. No.97TB100183).

[4]  Dennis Gannon,et al.  CAT: a high performance, distributed component architecture toolkit for the grid , 1999, Proceedings. The Eighth International Symposium on High Performance Distributed Computing (Cat. No.99TH8469).

[5]  Tobias Straub,et al.  Grid Security Infrastructure , 2006 .

[6]  大島 正嗣,et al.  Simple Object Access Protocol と,その応用としてのソフトウェアの組み合わせについて (渡邉昭夫教授退任記念号) , 2001 .

[7]  Ami Marowka,et al.  The GRID: Blueprint for a New Computing Infrastructure , 2000, Parallel Distributed Comput. Pract..

[8]  James Arthur Kohl,et al.  The CCA core specification in a distributed memory SPMD framework , 2002, Concurr. Comput. Pract. Exp..

[9]  Andrew S. Grimshaw,et al.  Object-based approaches , 1998 .

[10]  Dennis Gannon,et al.  Developing component architectures for distributed scientific problem solving , 1998 .

[11]  Satish R. Thatte,et al.  SOAP: Simple Object Access Protocol , 1999 .

[12]  Geoffrey C. Fox,et al.  A grid event service , 2001 .

[13]  Scott R. Kohn,et al.  Toward a Common Component Architecture for High-Performance Scientific Computing , 1999, HPDC.

[14]  Andy Oram,et al.  Peer-to-Peer: Harnessing the Power of Disruptive Technologies , 2001 .

[15]  Dennis Gannon,et al.  Using the Grid to Support Software Component Systems , 1999, PPSC.

[16]  Yogesh L. Simmhan,et al.  The XCAT Science Portal , 2001, ACM/IEEE SC 2001 Conference (SC'01).

[17]  Geoffrey C. Fox,et al.  High-performance commodity computing , 1998 .

[18]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[19]  Richard Monson-Haefel,et al.  Java message service , 2000 .

[20]  Dennis Gannon,et al.  Developing and evaluating abstractions for distributed supercomputing , 1998, Cluster Computing.

[21]  William E. Johnston,et al.  Computing and Data Grids for Science and Engineering , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[22]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[23]  Dennis Gannon,et al.  A component based services architecture for building distributed applications , 2000, Proceedings the Ninth International Symposium on High-Performance Distributed Computing.