Sponsored Link •
Jini: A software infrastructure for the hardware revolution
The first talk about Jini I ever heard was given by Jim Waldo, Sun's enthusiastic chief Jini architect, at a Java users group meeting in New York last December. Waldo started his talk by claiming that Jini was not an attempt to wrap existing operating systems, but was an attempt to "change fundamentally the architecture of computing systems." While everyone is in a frenzy about the Internet these days, he noted that the Net itself doesn't represent the fundamental change that's coursing through computing. "The Internet is a symptom of what's really going on," Waldo said. "What's really going on," he continued, "is a switch in the way we think about computers: The network is becoming a central part of what we think of as a computer ... Computers have stopped being computing devices and have started being communication devices."
Waldo then described how in a fit of nerdy enthusiasm one Saturday afternoon, he took a screwdriver to his microwave oven to see what kind of processor was inside. "I know," he said, "I should go down to the video store and rent a life." Embedded in the guts of his microwave oven, Waldo discovered a Motorola 68000 processor, which happened to be the kind of processor used by his very first Sun workstation. It occurred to him at that point that, "I could run V7 Unix on my microwave oven!" Microwave ovens are computers, he told the audience, but "we don't usually think of microwave ovens as computers, because they lack one of the three parts we've traditionally thought of as making up a computer ... a CPU, some memory, and a disk." The microwave oven has a CPU and some memory, but no disk.
Waldo then went on to describe three common assumptions about software in the traditional, disk-centric world:
"Since disk drives keep getting bigger," Waldo claimed, "we put all our software on the disk." To demonstrate what he meant by "big," he said that the estimated size of the software required for President Reagan's Star Wars missile defense system was 30 million lines of code. The size of Microsoft's current Windows operating system is 45 to 60 million lines of code. "Solaris isn't that much better," Waldo added. "It is smaller, but not much smaller."
According to Waldo, one of the reasons the Star Wars project was cancelled was due to the belief that it was impossible for human beings to create a 30-million-line program that worked reliably. "Admittedly," he said, "the blue screen of death doesn't fire lasers at you."
Waldo believes OSs have become so large "because the operating system has to know about everything." Given the rising importance of diskless, network-connected embedded devices, however, "this [disk-centric] model [for computing] doesn't fit anymore," stated Waldo.
He went on to say that the emerging hardware environment will be dominated by computers that have a CPU, some memory, and a network connection. And, whereas traditional computers look on startup for a disk from which to boot the operating system, the new devices will look for the network. "When a cell phone boots up, it checks itself and then looks for the [phone] network. If it doesn't find the network, it isn't a cell phone."
Given this background, Waldo explained how Jini attempts to provide an architecture for the emerging network-centric hardware environment, an architecture based on the idea of a federation rather than central control. (For more on the federation concept, see the introductory Jiniology column, "Jini: New technology for a networked world" -- in Resources.) "Jini is not an operating system," Waldo insisted, "because nothing in Jini knows or controls everything. [Rather,] Jini defines a small set of rules that enable clients and services to interact. Jini defines the rules of federation." The implication here was that because Jini doesn't involve a central controlling authority, its runtime infrastructure can come in well below 30 to 65 million lines of code (and thus be more robust than Windows or Star Wars). As Jim Waldo put it, "All of Jini can fit on a single 1.4 MB floppy." In addition, Jini's lack of a central controlling authority means Jini systems lack a central point of failure that can bring everything to a halt.
The mobility of objects
During Bill Joy's presentation at the Jini Community Summit in May, he showed several "stacks" that represented various stages in the evolution of the computing model. The last stack he showed represented the computing model that Joy claims is now emerging. It was labeled "object-centric." (See Figure 1.) In this stack, devices and services (the bottom layer) expose objects (the middle layer) used by client applications (the top layer). Joy said the Java virtual machine, RMI, and Jini provide the central layer, labeled "Objects and Agents." "We think of this [middle layer] as a BIOS," he said. By calling the middle layer a BIOS (basic input/output system), Joy was claiming that objects (such as those supplied by a Java/RMI/Jini infrastructure) would provide the basic means for applications to talk to the "computer" represented by the network -- a computer made up of a federation of devices and services.