• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
The Jini
architecture exemplifies a new approach to computing
systems—making the network the central connecting tissue. By replacing thenotion of peripherals and applications with that of network-available servicesand clients that use those services, the Jini system breaks down the conven-tional view of what a computer is, while including new classes of devices ina unified architecture.
 Jim Waldo
 A federation of spontaneously networked electronic components of all types can communicate, interact, and  share their services and functions, as explained by Jini’s lead architect.
THE
JINI ARCH
NETWORK-CENT
 Jini technology assumes a changing net- work, in terms of both the componentsthat make up the network and the way these components interact. Networks aregenerally long-lived entities that, as they grow to include ever-larger populations of users and machines, become increasingly difficult to upgrade as a single entity. That’s why the Jini architecture is designedaround support for incrementally upgrad-ing network components (hardware andsoftware) [9]. So, for example, installing a
76
 July 1999/Vol. 42, No. 7
COMMUNICATIONSOF THE ACM
 
    T    E    R    R    Y    M    I    U    R    A
ITECTURE
FORRIC COMPUTING
network printer in a Jini environmentinvolves simply plugging it into the net- work and turning on the power; remov-ing it from the network involves nomore than unplugging it.Because it is designed for the network, Jini challenges the presuppositions thathave shaped conventional thinking aboutcomputers and how software is writtenfor them. The result is a system that offersconsiderable new power but is simpler touse and adapt than current systems. Jini allows anything with a processor,some memory, and a network connec-tion to offer services to other entities onthe network or to use the services that areso offered. This class of devices includesall the things we traditionally think of ascomputers but also most of the things wethink of as peripherals, such as printers,storage devices, and specialized hard- ware. In the near future, the definition will also encompass a host of otherdevices, such as cell phones, personaldigital assistants, and microprocessor-controlled devices, such as televisions,stereo components, and even modernthermostats.Making the network central requires adesign that allows updates and changesto individual components without the wholesale shutdown of the network.Unlike a single machine, a large network cannot be shut down without great diffi-culty; updating the entire network ismore difficult still. So the Jini systemallows upgrades and updates to beinstalled and used by the componentsbeing networked without requiring thatthe network be shut down or all individ-ual components be updated. An additional result of buildingaround the network is that the data andcode running on any device in the net- work cannot be assumed by users ordevelopers to have been built especially for that device. Indeed, given thelongevity of networks and the rapid rateof change in small devices, the code andthe information used on a particularprocessor is often constructed or gath-ered long before the processor isdesigned or built.The combination of rapid change andlong-running networks imposed anothergoal on Jini’s designers. Users of a Jini-
COMMUNICATIONSOF THE ACM
 July 1999/Vol. 42, No. 7
77
 
78
 July 1999/Vol. 42, No. 7
COMMUNICATIONSOF THE ACM
based network should be able to add or remove mem-ber components without having to update othermember components in the network community.Further, the way these components communicate with one another had to be able to change over time. A final goal for Jini’s designers was imposed by thesize of today’s networks and how rapidly they aregrowing. If we have all the embedded systems thatcould possibly be given access to a network as part of our system, Jini technology has to be able to scale tolevels previously unthought of. (The specifications forthe Jini system, along with the source code for the ref-erence implementation, are at www.sun.com/jini.)
A Simple Set of Conventions
 Jini technology is not a distributed operating system (inthe traditional sense) or an application. It is, in a classicsense, a system defining a small, simple set of conven-tions that allows services and clients to form a flexibledistributed system that can change easily over time. We separated the system’s various components intothe infrastructure, the program-ming model, and the clients andservices themselves. While each of these components is logically independent, together they canuse one another to make an over-all system that is more flexible andreliable than the sum of its parts.Each component of the Jinisystem can be viewed as a logicalextension of the Java languagesystem to the fully distributedcase [1, 3] (see Figure 1). The Jiniinfrastructure is built on the JavaRemote Method Invocation sys-tem, which has been part of the Java platform since the release of  Java 1.1 in January 1997 [12].On top of this base, Jini adds tothe infrastructure two compo-nents: the discovery protocol, which allows an entity  wishing to join a Jini network to find a lookup ser-vice, and the lookup service, which acts as a place where services advertise themselves and clients go tofind a service.The Jini programming model consists of three setsof interfaces meant to extend the usual single virtualmachine programming model at the core Java pro-gramming libraries to allow the connection of dis-tributed objects in robust ways. One set of interfacesdefines a distributed event model that is an extensionof the standard Java event model in Java Beans [7]. A second set of interfaces enables a two-phase-commitprotocol—a simplified distributed version of thetransaction model in the Java transaction service [8].Finally, there is a set of interfaces and classes thatdefine the notion of leasing, developed specifically forproblems in resource allocation and reclamation indistributed systems.The Jini system’s services and the clients that usethem are open-ended; the services offered depend onthe Jini federation—the informal group of clients andservices that use the Jini-defined interaction pat-terns—in question and the time one happens to belooking at the federation. The other parts of the sys-tem aid in offering and finding these services. The vastrange of services that can live in the system includeshardware implementations of Jini interfaces, softwareservices that act as distributed components, and hard- ware/software combinations.
 Jini and Java
The Jini system is Java-centric—because it builds onthe existing Java environment and because it requires
Figure 1. Jini system structure, including itsrelationship with the Java language.
ServicesInfrastructure Java Jini
 Java virtual machine Java RemoteMethodInvocationDiscoveryLookup serviceLeasingTransactionsDistributed events JavaSpacesTransaction managerEnterprise Java Beans Java naming anddirectory services Java transaction serviceBeansSwing graphicstoolkit
ProgrammingModelLets objects findand communicate with one anotherEverything elseis a serviceAdds simple APIsfor remoteobjects andbasic distributedcomputing Jini serviceLookup service
Figure 2. Jini stores theproxy for a service in the Lookup serviceas part of registration
Discovery requestDiscovery responseService registration
Serviceproxyobject
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...