JINI Architecture Overview

Learn how Jini components collaborate to provide a dynamic, distributed, self-healing network, and why this Java-based solution can be considered a network extension of the core Java application model.

This chapter is from the book

This chapter is from the book

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
componentswhich 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 revolutionfancy
handheld devices such as cellular phones, pocket PCs, and PDAswhich,
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
componentprocessor, 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 21). The security camera on your
home network could be activated by the emergency support center from a remote
location.

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
architectureits 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 22):

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 itbut 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 entitya 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.