JGrid: A Jini Technology-Based Service Grid
by Zoltán Juhász and Gergely Sipos
The JGrid system is a service-oriented grid framework that enables the construction of dynamic, self-organising grid environments that support global service discovery and provide seamless, secure access to a wide range of grid services on demand.
The aim of the JGrid project is to develop a software framework for next-generation Grid systems. We believe that future grids will be pervasive, enclosing various software and hardware components as services, and will provide simple and seamless access to services from anywhere at any time. Future grids will also be used not only for high-performance computing tasks, but also for carrying out business and assisting society and individuals in many aspects of everyday life. These systems will need to be reliable, to operate with minimal administrator supervision; self-organizing, adaptive and self-healing behaviour is mandatory.
The project is being pursued in Hungary by a consortium of two universities (University of Veszprém and Eötvös University of Sciences, Budapest), one research institute (SZTAKI) and Sun Microsystems Hungary. It is supported by the Hungarian Government under IKTA grant No. 089/2002. The project is also listed as a Jini community project, meaning it is open to the international research and development community (see the links section for addresses). Work started in 2002 and is expected to finish at the end of this year.
Among the most challenging problems posed by grid systems are discovery and coordination, that is, how to find and orchestrate a set of services operating on heterogeneous resources under different administrative control in order to solve a given problem. Grids are dynamic; services may join and leave the system at any time by their own will or due to faults. Current grid frameworks do not adequately support dynamic service discovery. Heterogeneity is addressed by creating a common (XML-based) protocol to achieve interoperability. Next-generation grid applications that use a large set of services need more however; a programming model is required that enables the creation of applications that can execute in such highly dynamic environments. This model needs to support, among other things, state-full service invocation, error handling, notification mechanism based on events and security.
|Figure 1: Part of the JGrid Service Browser graphical user interface showing discovered services.
The Java language is a good candidate for creating grid systems and a grid programming model. It is an object-oriented, platform-independent language with built-in security and error handling features. On its own, however, it is unsuitable for creating dynamic systems. Jini Technology developed by Sun Microsystems in 1999 provides the missing features for the Java platform. Jini is an infrastructure and programming model for creating dynamic distributed systems. It supports service discovery, protocol-independent service access, event-based notification, distributed resource management and security, and hence is a natural fit for creating grid systems.
|Figure 2: Overview of the job execution process in the JGrid system using a broker. The client contacts the broker and specifies the type of services sought for job execution. The broker discovers available services S1-S9 and selects the most suitable one, S4. It then submits the job to this service. Status events are sent to the broker and then to the client to monitor execution. The broker may choose alternative services in case of a service fault.
Currently, the main focus of the JGrid project is on computational problems; we have developed key grid services required for the construction of computational grids. JGrid users can create execute-interactive grid applications using Java tasks that execute on Compute services. Tasks can be sequential or parallel. Parallel programs can use MPI-style message passing or remote method invocations for inter-process communication. Non-Java applications such as legacy Fortran and C programs can be executed on Batch services that integrate batch runtime systems (eg Sun Grid Engine or Condor) into the JGrid framework. User data can be stored in the grid using services that allow users to store and retrieve their files and data from anywhere in the world. JGrid provides wide-area discovery that extends the Jini discovery mechanism in order to efficiently find grid services on the Internet using powerful search queries. A service browser is provided to find and display available services to the user. Discovering and controlling services may be a tedious task. The JGrid Compute Broker service relieves users from system-related tasks; a job can be submitted directly to the broker with appropriate resource requirements, and the broker will then discover suitable batch services, submit the job and supervise its execution. On detecting an error, it may take corrective measures on behalf of the user such as re-submitting the job to another batch service; on successful completion, the user receives the result. The broker provides computational users with a largely simplified interaction with the grid.
The JGrid project also provides development support for grid application programmers. The P-Grade graphical program development environment has been extended in order to generate JGrid executables from graphically designed parallel message passing programs. The P-Grade system also supports the creation of grid workflow applications on JGrid. The graphical workflow editor of the P-Grade portal system can be used to define a workflow, which is then executed under the supervision of a JGrid Workflow Manager service.
The JGrid system has been demonstrated on several international forums and can be downloaded from the project homepage. A national testbed is under construction that will allow users to experiment with JGrid services, develop and execute grid applications. Future project activities include the development of non-computational services, eg for media streaming and processing, database access and e-commerce and business applications, as well as providing access to services from mobile devices.
University of Veszprém, Hungary