next up previous contents
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 up previous contents
Next: Peer to Peer Computing Up: Parallel and Distributed Computing Previous: JavaParty   Contents
Bryan Carpenter 2004-06-09