JINI Architecture Overview
- Vision and Goals for Jini
- System Assumptions
- System Architecture
- System Components
- System Service Architecture
- Summing Up
The greatest challenge to any thinker is
stating the problem in a way that will allow a solution.Bertrand Russell
We are living in a fast growing era of computing. Processor speed has multiplied many times. Network bandwidth has increased at a rapid pace every year. The memory capacity of disks and RAM has increased signifi-cantly. Having a 1- or 2-gigabyte RAM on one's desktop is no longer a dream. The most positive feature of all this improvement is the cost of these componentswhich has been spiraling downward over the years.
On the other front, computer networks have been expanding beyond proportions. With the advent of the Internet, we are now dealing with networks of more than a million fixed nodes. Added to this is the recent gadget revolutionfancy handheld devices such as cellular phones, pocket PCs, and PDAswhich, through wireless or with dial-up connection, become dynamic nodes. There are not many systems that were designed for such scalability needs. Today, due to the availability of smaller and cheaper processors, memory, and network cards, almost all devices are becoming intelligent by adopting one of every componentprocessor, memory, and networking card. With a few dollars, you can network-enable any device in your home: from a power switch to a washing machine, TV set, VCR, audio equipment, or microwave oven. The day is not far away when all your 911 calls may be handled in a completely different way through your home network (see Figure 21). The security camera on your home network could be activated by the emergency support center from a remote location.
Figure 2-1 Future networking: looking beyond.
So the computing theme today is pervasive, ubiquitous, and dynamic distributed computing. Currently, there is no technology that can handle such a requirement. Microsoft's Millennium Edition, Sun's Jini, and Hewlett-Packard's e-Speak are envisioned to fill this solution space.
In this chapter we will look into the details of Jini's architectureits vision, assumptions, components, component details, and its solution for solving the pervasive, ubiquitous, and dynamic distributed computing problems.
Vision and Goals for Jini
As a dynamic distributed technology, Jini has the following vision and goals (see Figure 22):
To provide an infrastructure to connect anything, anytime, anywhere. The vision of Jini is to provide an infrastructure that can help different network users to discover, join, and participate in any network community spontaneously.
To provide an infrastructure to enable "network plug and work." The goal of Jini is to make any service joining the network available for other users without installation and configuration hassles. The vision is 0% installation and 0% configuration. It should be as easy as plugging a telephone into a telephone jack and using itbut it is not there yet. In fact, today's services are more operating system- and driver-centric. Even after downloading appropriate drivers and appropriate configuring, it is more a scenario of "plug and pray" than of "plug and play."
To support a service-based architecture by abstracting the hardware/software distinction. Jini's vision is to provide an architecture centered around a service network instead of a computer network or device network. Jini's architecture simplifies the pervasive nature of computing by treating everything as a service. This service can be provided through hardware, software, or a combination of both. The advantage in abstracting this way enables the infrastructure to be designed to accommodate a single type of entitya service. All protocols, such as joining or leaving the network, can be defined with respect to this service type instead of individual types. Such abstraction also helps in hiding the implementation of the service provider from the service requester.
To provide an architecture to handle partial failure. A distributed architecture is not complete until it provides a mechanism for handling partial failures. Jini's vision is to provide an infrastructure and an associated programming model that can handle partial failures and help in establishing a self-healing network of services.
Figure 2-2 Jini's visions and goals