 |
|
DAILY NEWS AND INFORMATION FOR THE GLOBAL GRID COMMUNITY /
|
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.
|