GRIDtoday Logo UD

DAILY NEWS AND INFORMATION FOR THE GLOBAL GRID COMMUNITY /

( Previous Article )    ( Table of Contents )   

Special Features:

SUN'S JINI HELPS PROPEL GRID CAPABILITIES

Grid computing, which many see as the next step in the evolution of distributed systems, uses multiple systems to spread resources across large distances. Vendors, in order to tap into this growing market, are beginning to develop new Grid-enabled services. Sun Microsystems, for instance, has the Jini platform to support a Grid system with a set of core services. The JavaSpaces service and distributed shared associative memory mechanism helps to run applications on Grid-like systems.

Grid computing is similar to an electric power grid, which harnesses power and provides it to customers regardless of their knowledge of the power's real origin.

Grids are currently described as providing any sort of useful computing resource, or services. CPU time, use of an external device, access to specialized software components, use of constant storage, or real-time data access make up some of these services. In addition, Grids can be considered heterogeneous -- they can focus on a single service. A main identifying point in any implementation of Grid is the distribution of heterogeneous services.

Also, commodity hardware can be used to make inexpensive, yet extremely powerful Grid systems which often surpass the speed of more traditional computing devices.

Universal communication protocols help to link Grid resources among a network. Consumers use the resources without even knowing anything about the hidden operations that take place throughout the network.

Not to be confused with clusters, Grids have largely distributed resources. Discovery and implementations of Grid resources must be decoupled from the underlying implementations -- no assumptions are made about the underlying implementation, operational policies, and administration of the Grid nodes.

In addition, cluster systems are usually administered under a single domain. Grid resources could be utilized by almost any organization. Some resources may be specialized depending on the needs of an organization, so the underlying implementation details should be abstracted from Grid users to provide them with more flexibility.

Grids can connect users and providers to allow transparent access to a collection of computing resources. Publicly defined contracts are used to describe the quality of service and the ways that the services are invoked.

Traditional means for allocating and charging Grid services do not apply due to its dynamic nature. Various factors may affect demand for Grid computing power, and traditional document deals are not the most effective way to guarantee service.

In several Grid implementations, the binding of service consumers to service providers based on user-defined QoS thresholds occurs via a resource broker or scheduler (check out vGrADS or Nimrod/G). These systems rely on either centralized or distributed schedulers that coordinate the dispatching of jobs or service requests to service providers. Conversely, Jini's JavaSpaces can, for some types of problems, replace the scheduler component with a space or a sort of blackboard that allows for sharing of data and parceling of work without direct knowledge of or communication between nodes.

A network architecture for the construction of distributed systems where scale, rate of change, and complexity of interactions within and between networks are extremely important and cannot be satisfactorily addressed by existing technologies. Jini technology provides a flexible infrastructure for delivering services in a network and for creating spontaneous interactions between clients that use these services regardless of their hardware or software implementations.

Jini network technology is all about infusing flexibility into systems to make them highly adaptive to changes in a network. Concepts introduced by Jini technology such as leasing, discovery and the movement of objects over a network vastly simplify interactions on a network embedding a great degree of resiliency and scalability within a distributed system. For developers, the simplicity inherent within the Jini architecture itself typically delivers gains in productivity and shorter development cycles.

By using objects that move around the network, the Jini architecture makes each service, as well as the entire network of services, adaptable to changes in the network. The Jini architecture specifies a way for clients and services to find each other on the network and to work together to get a task accomplished. Service providers supply clients with portable Java technology- based objects ("Java objects") that give the client access to the service. This network interaction can use any type of networking technology such as RMI, CORBA, or SOAP, because the client only sees the Java object provided by the service and,subsequently, all network communication is confined to that Java object and the service from whence it came.

Although Jini is not a complete Grid framework, its core services provide a foundation for the construction of Grid-like heterogeneous systems. Several initiatives are under way to extend the core Jini services to provide further Grid-like functionality, such as scheduling and wide-area service discovery. An example of one such effort is the JGrid project, which is hosted at www.jini.org .

The Jini programming model extends the core Java classes to include semantics for distributed computing. This programming model is based on a set of interfaces defining public requirements for behaviors such as transactionality across nodes and distributed event subscription and notification. Another key concept of the model is embodied by the lease interface, which incorporates the notion of time into a reference to a non-local object. A Jini lease grants access to a service for a certain time period and can be renewable. Leases allow for the dynamic nature of a Grid environment, in which services and clients join and leave the system. When a lease expires, resources allocated for the service can be freed on both the client and the provider. Leases on a service can be shared or exclusive.

In addition to its core services, Jini includes JavaSpaces, which is a distributed, associative, network-accessible, shared memory system implemented as a Jini service. At the highest level, a JavaSpace provides synchronized, transactional, read, write, and associative search access to objects in a persistent shared memory space. Contents of a JavaSpace are associative, meaning that they are addressed (searched) by their contents instead of a specific location identifier. Clients to a JavaSpace can use it to share information, including divisions of a problem that can be solved in a distributed and parallel fashion. JavaSpaces lends itself to blackboard-style processing, in which specialized processes take items from the shared board, perform their function, and then return results to the shared memory space. JavaSpaces is described in a Sun Microsystems specification as part of Jini, and a reference implementation called Outrigger is distributed with the Jini Starter Kit.

On their own, the concepts behind JavaSpaces are neither directly related nor limited to Grid computing. JavaSpaces can, however, serve as an enabling technology for a class of useful services implemented on a Grid.

( Top of Page )

( Previous Article )    ( Table of Contents )