Next: Peer to Peer Computing
Up: Parallel and Distributed Computing
Previous: JavaParty
Contents
Jini
As we mentioned in previous chapter, Jini technology may eventually
become a core part of the underlying communication environment for our HPJava
project (see section 5.5.4). In this section we
will give a more general overview of Jini technology.
Jini technology [7,24], built by Sun Microsystems, is a
programming model that makes it easier for programmers to get their devices
talking to each other. It is a lightweight layer of Java code that rests on top
of the Java 2 platform. Jini provides a mechanism to enable smooth adding,
removal, and finding of devices and services on the network without device
vendors having to agree on network level protocols to allow their devices to
interact. A service can be anything that sits on the network and is ready to
perform a useful function. Hardware devices, software, and communications
channels
can all offer up their services to a dynamic network in a standard fashion
without a central controlling authority.
Jini's architecture takes advantage of one of the fundamental features of
object-oriented programming--the separation of interface and
implementation. Jini depends on Java's RMI to provide the underlying
distributed communications framework. The runtime infrastructure
uses one network-level protocol, called discovery, and two object-level
protocols, called join and lookup. Discovery enables clients and
services
to locate lookup services. Join enables a service to register itself in
a lookup service. Lookup enables a client to query a lookup service for
services that can help the client accomplish its goals. In addition the Jini
programming model includes three important API collections:
Distributed events, distributed leasing, and
distributed transactions. The distributed event
programming model offers a set of interfaces to allow services to notify each
other of changes in their state. The distributed leasing model provides
a set of interfaces that encourage distributed objects to obtain
leases for use of particular distributed resources. The service is
responsible for renewing that lease before expires. If the lease is not
renewed, access to the distributed resource expires, and resources are freed.
The purpose of this feature is that it cleans up resources no longer in use by
potentially failed distributed objects. For example, the lookup service
automatically unregisters a failed service object.
Finally, a distributed transactions programming model is
to provide services for coordinating distributed operations, and guarantee
that either all must occur atomically or that none occur at all.
Next: Peer to Peer Computing
Up: Parallel and Distributed Computing
Previous: JavaParty
Contents
Bryan Carpenter
2004-06-09