Why Jini Technology Now?
Revision 1.0, January 1999 Table of Contents:We've all seen the picture: A computer room circa 1963 with its raised floor, a dozen tall skinny boxes representing the mainframe, a Teletype terminal, a bulky line printer or two, and the pièce de résistance--a cleancut gentleman loading a mag tape onto one of the 3 or 4 tape drives. He looks out of the picture toward you, smiling. The picture seems quaint to us now--how unlike contemporary computing. But in the intervening 35 years, what has changed in the picture? Not much--just the scale. The speed of computation has increased by perhaps a factor of 3000, the size of feasible computations by a factor of about 1000, and the size of the computer has decreased dramatically: The contemporary computer--the one that's 1000-3000 times more powerful than the one in the picture--sits on a desk and is used routinely in the office and at home. But a block diagram of the major components, their roles, and how they work together hasn't changed at all. We've merely shrunk the computer and sped it up, but we haven't advanced it as a tool. This is significant. Other significant things have changed as well--the smiling cleancut gentleman has disappeared, sort of. That man was the system administrator (sys admin) who was responsible for making sure that the gargantuan computer worked properly, that programs it needed were kept up to date and in good working order, and that the programs you wanted to run were loaded and executed as you specified. The problem is that he hasn't disappeared entirely: If you work in a small office, have a home office or a moderately sophisticated home computer system, or if you work in a department with limited resources, most of his duties have fallen on your shoulders. You make sure the computer is working properly; you keep the programs you use loaded and up to date; and you make sure that all the components are in working order and communicating properly with each other. In larger organizations, the smiling man is still called a sys admin, but his or her job is to install your computer when it first arrives and to fix it when it breaks down--and you share him or her with 20 or more other people. What else has changed? Computers have become ubiquitous, and many have disappeared. They've disappeared by donning coats of automobile hide, telephone skin, stereo fur, and microwave scales. Quite a few of the things we use have a computer in them, and all of these computers are easy to use, while the only thing we think of as a computer is hardest to use of all. There is nothing magical or paradoxical about this: Throughout history the best technology has always sunk below our view within tools and toys that do something we need or want. By disappearing they dominate our lives. But also their pervasiveness is quite visible on the Internet and the Web. With Web browsers we visit computers all over the world--sometimes in peoples' dens and bedrooms, sometimes in corporate halls the other side of sunset. When we work the Web, aren't we operating under the model that there is exactly one computer in the world? And when we connect to a site with wonderful animated graphics, we've actually installed and successfully run a program that someone far away has put together in her or his spare time. It's a simple piece of code written in the Java programming language, but what we've done was once considered remarkable. And even today, the simplest program we can buy from the best professional software developer can take many minutes or hours of devoted attention to install and run. These three facts (you are the new sys admin, computers are nowhere, the one computer is everywhere) should combine to improve the world of using computers as computers--by making the boundaries of computers disappear, by making the computer be everywhere, and by making the details of working with the computer as simple as putting a DVD into your home theater system. 1. What is Jini Connection Technology?Jini connection technology is manifest as a new system architecture that makes the improvements these observations suggest: Jini technology brings to the network the facilities of distributed computing, network-based services, seamless expansion, reliable smart devices, and ease of administration. Here's the vision: When you walk up to an interaction device that is part of a system employing Jini technology, all of its services are as available to you as if they were on your own computer--and services include not only software but hardware devices as well, including disk drives, DVD players, VCRs, printers, scanners, digital cameras, and almost anything else you could imagine that passes information in and out. Adding a new device to a system employing Jini technology is simply plugging it in. We use the term system for a couple of reasons. First, Jini technology really isn't embodied in a single computer nor is it a network of computers. Not only does it accept other sorts of devices (entertainment devices, MIDI devices, etc.) than we normally expect on a computer or computer network, but there is no single computer that is the computer. The system appears as a set of services that are available--some are software and others hardware, but the interfaces (user and programmatic) always present simply and uniformly the services available regardless of how they are implemented or where they are. The second reason is that the Jini technology infrastructure is not simply a set of point technologies but a new architecture for computing, sort of like a new block diagram for what a computer could be. And we use the term service because there is nothing inherently interesting about computers, just as there is nothing inherently interesting about home-theater components except what they do, what services they provide. A CD player, an amplifier, some speakers, and a CD make music--that's all we care about once it's all working. What most people care about from their computing systems is what they can do with them: read and compose e-mail, prepare papers and presentations, do financial work, find information on the Web, or be entertained. Each of these things is a service, and we care about them, not about the types of CPUs, the number of registers, the speeds of the buses, or the word size. In other words, the Jini technology infrastructure is a system architecture (hardware, software, and network) that supports the notion that a computing environment is a network-connected set of computing, storage, display, entertainment, communication, and IO devices. In a system employing Jini connection software, devices can be added or subtracted, and doing so may alter some of the capabilities of the system, but it will not alter its identity or basic usability. Jini connection technology requires a few things:
Jini Connection Technology Software DetailsJini technology ties together machines on which Java programming language objects are running, perhaps in different virtual machines. Jini technology enables such objects to work together as though they were on a single, very powerful computer: Such objects can be activated and tracked, can communicate with each other, and generally can be managed. A user can access all of the facilities on the collection of networked machines in a location-transparent fashion. System EnvironmentJini connection technology works in a networked environment, and we assume the following hardware trends will continue:
In designing Jini connection technology, we have assumed the following about trends in the software environment:
Infrastructure FunctionalityJini networking infrastructure provides resources for executing Java programming language objects, communication facilities between those objects, and the ability to find and exploit services on the network. By using Java Remote Method Invocation (RMI), Jini networking infrastructure provides communication between objects across device boundaries that enables those objects to work together. RMI enables activation of objects and the use of multicast to contact replicated objects, providing high availability and high reliance objects to be easily implemented in the Jini framework. Jini technology provides a lookup service allowing services connected by the communication infrastructure to be found. Jini networking infrastructure provides a mechanism--called discovery/join--for Jini technology-enabled devices (such as disk drives, printers, and computers) to discover the appropriate lookup service and join into the overall system employing Jini technology. When a device joins a system employing Jini technology, its services are added to that lookup service. Symmetrically, when a Jini technology-enabled device leaves a system employing Jini technology (by being removed or by becoming unreliable), its services are deleted from the lookup service. Jini Connection Technology BenefitsBy providing a well-established distributed computing platform which takes advantage of Java virtual machines running on a variety of platforms, users will see performance and reliability gains from applications designed to use Jini technology. Resources already provided in the Java programming language could see performance and reliability gains by being activated on unencumbered machines. Jini technology provides the possibility to compose systems to meet specific requirements rather than relying on a general-purpose system. Particular services for a task or a group can be put together because Jini technology provides a low-impact way of customizing not only your software but your hardware configuration. The services view of work enables devices and software to be managed uniformly. Managing resources available on a system employing Jini technology is much simpler: Each Jini technology-enabled device has enough information stored on it to enable hot-plugging. By simply plugging in a device, all of its Jini technology-related resources become available without intervention. Each device contains its own user interface for configuring and customizing the device. The total cost of ownership of a computer system will decline as fewer system administrators are needed. To be sure, in the short term a system administrator will still be required for even a medium-sized network, but the tasks he or she will be performing are those associated with the enterprise network, not routine resource maintenance. Further, systems for small business or departments and home use can be administered more reliably and at a much lower cost with Jini technology. Jini connection technology begins to bring together the realms of computing and home networks including entertainment and personal/family management. Devices enabled by Jini technology can include not only computers, printers, scanners, and disks, but VCRs, DVD players, CD players, MIDI devices, cell phones, PDAs, the Web, and even broadcast receivers. As long as a device can attach to the network and can appear as a Java technology object, it can be a Jini technology-enabled device. Finally, each new device and service that joins a community employing Jini technology increases the value of that community to the people using it, and each new device that becomes Jini technology-enabled increases the value of Jini technology in a spiral of increasing returns. Technology TrendsJini connection technology is based on a number of already existing technologies, and so it represents a small technological step but a large intellectual one. Video recorders were once considered useful only to television studios and filmmakers. But, in the 1970s people found that VCRs provided a way to alter how they used TVs, how they interacted with their families, and how they entertained themselves. For better or worse, the modern world will never be the same. What started out as a specialized, exotic device turned into one of the most common pieces of home technology. Similarly, computers and networks, until now the domain of specialists and professionals, can make the leap into the world of ordinary life where they can finally make the difference so many in the past have imagined. In this relatively technical section we will look at the technologies that are converging to make Jini technology possible. Network ModelsFrom their first appearance in the 1950s until today, computers have been expanding in connectivity. From the 1950s until the early 1970s there were almost exclusively isolated mainframes; from the early 1970s until the early to mid-1980s there were additionally minicomputers sometimes connected by proprietary networks or the ARPANET; from the early 1980s until the later 1980s and early 1990s there were additionally workstation servers and PC clients connected by LANs; from the early 1990s until now there were workstation servers and thin clients connected by LANs, WANs, and the Internet; and right now we are seeing the concept of servers and clients disappearing and the network actually becoming the computer. Each of these transitions has been fueled by a couple of forces: price, control, data transfer speed, and the role of the network. Mainframe -> MinicomputerFor many years the mainframe was the center of business computing: Payroll, record-keeping, inventory, and accounting were all handled by a large central computer. Control of the mainframe was in the hands of a centralized computing agency--the MIS department--which did all the backups, custom programming, upgrades, etc. The price of the machines was very high, which implied they were used for "important", noninteractive tasks. In the late 1960s and early 1970s several manufacturers produced what were termed "minicomputers". The minicomputer's main effect was to bring computing into departments and divisions, where it was once confined to corporate headquarters. The mini was physically smaller than the mainframes, considerably less expensive, and had interactive capabilities. Corporate data at that time resided partially in the mainframe and partially in the mini, and approximately 20% of the backup and maintenance load moved into the departments. Maintenance of the computers was still performed centrally. The total cost of ownership was still high and perhaps a bit higher than in the pure mainframe world. The most dramatic effect, though, was to begin the computerization of industry by making computers available at the departmental level with interactive computer terminals and some communication software. E-mail and electronic memos began to change the culture of the workplace to one where the "virtual" workplace began to emerge. Of significance was the battle that began between the central MIS groups and the departments and individuals that would play out over the next several decades. Early MIS groups enjoyed a monopoly on computing within a company. The mini was the first opportunity for the departments to challenge what they saw as the tyranny of the MIS group. Forward-looking departments saw benefits of computing in their own areas of responsibility outside the administrative role the computer played in the entire enterprise. With the minicomputer departments began to hire their own programming staff to do customized programming and some maintenance. A significant change pushing this transition was that many people in the departments had a computer background from their high school and college educations, and the new entrepreneurial spirit of the 1980s meant that department heads more often treated their departments as small business, exercising more and more autonomy. Mini -> PC/ServerIn the mid- to late 1980s, several trends came together to weave a change in corporate computing. The first was the reduction of size of what was effectively the next evolution of the minicomputer: the workstation. Both the workstation and the personal computer became possible when an entire processor could be put on a single chip and an entire computer on a single board. The primary distinction between a workstation and a PC is the power of the microprocessor; generally, the amount of installed RAM; and sometimes the connectivity. The power of the workstation increased to where it largely replaced the minicomputer, and the purchase price of the workstation soon approached that of the PC. Many departments had both workstations and informal computer support groups, and some had their own MIS groups to do custom programming and support. The other trend was the ascendance of the personal computer. This took place when the personal computer began to have enough productivity software that departments put one on every desk. Productivity software includes word processing, e-mail, document preparation, accounting, project management, and simple database packages. The trend was accelerated by the appearance of LANs which connected PCs, workstations, and mainframes. Workstations ran on the same network as the PCs and had enough horsepower that the dream of the departments could begin to be realized: department-level computing where the business of the department could be codified. The price of PCs dropped enough that, by the early 1990s, individuals were buying their own PCs for working at home. At first this was supported by transferring files with floppy disks, but advanced to modem-based connectivity once the problems of high-speed data transfer over analog phone lines were handled. Notice that with the workstation and the PC, the source of processing power had shifted for the first time from a centralized CPU center to local machines. All the important productivity software came off the shelf and ran very well on PCs. Corporate data still resided in central mainframes and minicomputers--which came to be called servers--and so PCs and workstations needed to be connected to them. Data transfer speed increased from something close to 56 kilobits per second in the early 1980s for custom or proprietary connections to as much as 10 megabits per second in the early 1990s so that cross-mounted file systems could provide a way to informally share information within and between departments. The MIS groups hit their low during this transition, because almost every one of their responsibilities had been taken over by departments and individuals while they were still held accountable for integration failures. PC/Server -> Thin ClientThe most dramatic change in the computing industry was the switch to the Web from the PC/server style of computing. In the late 1980s, the first implementation of the World Wide Web appeared. From then until Netscape popularized the Web, there had been slow but steady growth in the use of the Web and in the number of Web sites. When browsers became commonplace, businesses that had invested in three-tier and client-server applications realized that the browser could be viewed as a very thin client and the Web server as the server in an application. The Java programming language as a mechanism to create usable user interfaces within any browser and CGI scripting and Java programming language servlets on the server side completed the picture. The possibility of thin clients means that the cost of being connected into a business is very low if requirements are only modest. That is, any computer that can run a Web browser can be used to conduct business and exchange e-mail and documents with it. Of importance is the fact that the thinner the client, the more the focus of computing returns to a centralized place, though that place is likely to be a department and not the enterprise. On the other hand, with the speed of data transfer and the existence of so-called legacy connections, the client is increasingly represented by a Web browser, the server by a workstation, and the data by a mainframe-supported database. The cost of ownership decreases because the client is not required to run very many programs, and the cost then depends on how many clients are connected to a server and therefore how powerful the server must be or how many servers are required. Nevertheless, because the client is still a PC, its horsepower is overabundant, and so there is waste, causing pressure for a less expensive solution. This form of computing requires Internet and Intranet connections to be fast and reliable, putting pressure on the servers and infrastructure overall. Early thin-client systems were simple forms-based HTML interfaces. Soon after the Web began to take off, the Java programming language was introduced as a way to write small applications that would run on the client machine after being downloaded to a browser. Today this means that the client machine cannot be trivially simple and poorly powered (as a computational engine), but neither does it need to support general-purpose computing in quite the same way: virtual memory and hence fast disks are probably not necessary, nor is a large amount of disk storage. Embedded and Wandering ComputersWhile the world of computers was moving forward, the availability of very powerful, small, inexpensive, single-chip processors started to have an impact on devices such as automobiles, home entertainment equipment, industrial control equipment, telephony, and an entire universe of gadgets and gizmos. Devices that were once rigid became more flexible and powerful when processors were put in them. Nowhere in sight is a disk-based operating system because there is no need for general-purpose computation. But there is a need for flexibility. What has been lacking in this world of tiny computers is the connectivity that has helped move the world of computers forward. Once two devices can communicate, they can be programmed to work together. And once devices can start working together, a fabric begins to emerge much as the fabric that became the Web started to emerge once there was a simple way to communicate (HTTP). The other thing these little guys do is wander. Cell phones, PDAs, cars, and even laptops move from place to place, and anywhere along the way they can be used for work or play. And while there are 70 million or so PCs, there are almost 3 billion embedded processors, some of them wandering all over. Thin Client -> The Network Is the ComputerIf we look at the hardware trends described above, we see a couple of things:
The implications of these trends are interesting. The computations that the hardware can perform are vastly larger and more complex than before. Numerical computation has gone through the roof. Simulations, graphics, reasoning--all of these are several orders of magnitude better than they were just a few decades ago. These gains are important, but they are more important to the professional programmer or professional user than to the majority of people using computers for ordinary productivity--these are the largely hidden gains of the industry and the field of computer science. These gains are seen by looking at CPU performance, RAM size, and disk size. In the days of mainframes and minicomputers, each company or department shared a single computer with a single space of applications that could be run, data that could be shared, and, in most cases, a community of workers and colleagues. There was no question about whether you could run a program your colleague could or whether data formats were compatible. In the days of workstations and personal computers, people gained the luxury of guaranteed access to reliable computation. Although this opened up new possibilities for how to work, it also served to isolate people and resources into small islands that might communicate only in a rudimentary way. The gains were still important: If each user had his or her own computer, other users cannot impose a heavy load on a shared computational resource, and individuals could upgrade their own computers with smaller cost than in a centralized context. In the 1980s we connected computers via networks and began using graphical user interfaces. In functionality, convenience, and power, this opened up a world of possibilities so that people could work and act in ways only imagined before. In particular, the two apparently diverging advantages of a common workspace and guaranteed, incrementally upgradeable resources could converge. No longer would it matter what you, your department, or even your company had purchased for computer equipment, you could find information and interact and in some cases use devices in the next office, down the hall, in the branch office, or on the other side of the globe. With a network, connecting new devices can be simple--you would no longer need to open up a cabinet or a closed box, you could simply plug it in. With the Web, the whole face of applications and interaction changed. But in the intervening 15 or so years since the early 1980s, the network and display technology advanced hardly at all compared to advances in the other hardware areas, and the dream of reuniting separated computers into a shared workplace never fully materialized. The experiences of typical end-users has not gotten much better than they were in the days of isolated workstations and personal computers, except insofar as applications take advantage of the increased compute horsepower. In fact, in many cases connecting computers together in networks today has decreased their reliability and sometimes their performance as well, precisely because the design of the network was an add-on, making the entire network appear as a peripheral to any particular computer, and making any good sharing rely on the ministrations of the sys admin. Let's look at the software trends, starting with a bad one. As the mainframe has shrunk there has been an incredible complication and bloat of operating system software. While the IBM 360 in the 1960s was implemented in a few million lines of source code, some current PC-class operating systems have almost 50 million lines. Such complexity is literally beyond imagination, and reliability has suffered just as you'd guess. The following are some of the positive software trends:
An architecture based on these positive trends could change the face of the world of computing. 2. Jini Connection TechnologyWhen we put all these things together, we get Jini connection technology. The computer-based technology is converging from one side, the component-based view is converging from another, plug 'n' whatever is converging from yet another, and the view of connecting up things on a network (including the Internet and the Web) and using them is binding the whole thing together. In a system employing Jini technology, everything is a service, everything is connected without a lot of setup trouble, and controlling them is uniformly accomplished because every service is really an object with a particular interface. Such systems will combine computer and consumer devices along with a variety of external sources--the Net, broadcast, cable, satellite, and landline. Jini technology is the first step in this direction. 3. ConclusionNot to be forgotten is the smiling sys admin who takes care of your computer. Today he or she doesn't handle mag tapes much, but with Jini connection technology the sys admin will be still smiling because it isn't necessary to perform frustrating maintenance on network systems whenever a component is added or removed, or capabilities change. Jini technology represents the best hope for consolidating the world brought forth by the revolution spurred by the Web, Java programming language-based distributed computing, and consumer electronics. In the end, computers will become what those who worked with them years ago imagined: pervasive, almost invisible, as easy to maintain and expand as your home theater system--in fact, part of it. To send comments about this site, please email jini@sun.com. |
|