HOC-SA: A Grid Service Architecture for Higher-Order Components Jan Dünnweber Sergei Gorlatch University of Münster, Germany E-mail: {duennweb|gorlatch}@math.uni-muenster.de Abstract The current efforts on programming grid applications of- ten rely on service-oriented approaches like Grid Services. This paper presents HOC-SA – a Service Architecture for Higher-Order Components, which provides the program- mer with reusable and composable patterns of parallelism and is interoperable with the latest Globus Toolkit imple- mentations. We describe our implementation of HOC-SA using OGSA-DAI, a framework for integrating grids with distributed databases. We present a simple example appli- cation and report first measurements on our grid testbed. 1 Introduction In a Service-Oriented Architecture (SOA), computing entities interact in a way that enables one entity to perform work on behalf of another entity [9]. SOAs can be built using various distributed computing technologies like, e.g., CORBA, DCOM or Web Services. As Web Services allow for distributed computing in an internet-wide setting, SOAs based on Web Services offer clear advantages for the devel- opment of grid applications. Hence, emerging standards for grid computing like OGSA make use of Web Services or are actually designed to be incorporated into Web Services standards like WSRF. The steady integration of new technologies into grid computing creates new potentials, but at the same time poses challenges for application programmers who have to cope with a large variety of tools. Our objective is to offer a high-level programming model for grids which shields the programmer from low-level de- tails like interactions between multiple Grid Services and the employed parallelization strategies, thus allowing to concentrate on the application logic. The presented work originates from the following three veins of previous re- search: 1) Grid Services which are the central technol- ogy used in OGSA and WSRF as specified in cooperation with the Globus Alliance [11] by the GGF [1] and OA- SIS [2] respectively; 2) Component-based software engi- neering [15], with the major goals of reuse and composi- tionality; 3) Skeleton-based parallel programming [8], aim- ing at identifying and abstracting typical patterns of parallel computing, e.g., a farm or a pipeline. Based on these approaches, we introduced a new kind of components for grid computing – HOCs (Higher-Order Components) [5], offered as Grid Services that can be pa- rameterized with application-specific code. In this paper, we describe in more detail the service-oriented architec- ture used as runtime environment for HOCs. Our proto- typical HOC-SA implementation is based on the OGSI- implementation in GT3 as its underlying middleware plat- form and will be applicable in the WSRF context upon availability. For maintaining data persistence, we use the OGSA-DAI framework (Data Access and Integration) [3], which facilitates a uniform interface to data resources. The structure of the paper is as follows. Section 2 mo- tivates and introduces the concept of HOCs and the HOC- SA. In Section 3, we describe an OGSA-DAI based Grid Service used to enable code mobility in the HOC-SA, while Section 4 lists the advantages of maintaining mobile code in databases. We describe our implementation of the Farm- HOC in the HOC-SA, and Section 5 presents a simple ap- plication case study used to obtain first experimental results on our grid testbed. We conclude and compare our results to related work in Section 6. 2 Grid Programming using HOC-SA Components, as described in [15], capture common pro- gramming patterns as independent, composable program units and present to the application programmer a high-level API, hiding hardware-specific details. Among other bene- fits (e.g., separation of concerns), an important advantage of using components is code reuse: different applications can share a common component. 1