New York
University
Computer Science
Department
Courant Institute of
Mathematical Sciences
Jini Connection
Technology
Course
Title:
Application Servers
Course Number:
g22.3033-011
Instructor: Jean-Claude Franchitti
Session: 5
Table of
Contents:
·
Vision or
Reality?
Jini technology promises to be a reality in the immediate future as an
architecture to enable connections between devices any time, anywhere.
·
How Jini Technology Makes
This Work
Jini Technology provides
mechanisms that group devices together into a service network, secured through
the Java™ language.
·
Smart
Devices
Flexible devices in a
Jini system, irrespective of size, manage themselves.
·
Historical
Trend
Computing has surpassed
many bounds within the past decades to evolve from mainframes to smaller, yet
much more powerful processors in this Web-dominated age.
·
Sun Community Source
Licensing
The Sun Community Source
License (SCSL) provides licensees with source code and three levels of
participation.
·
What the Java community is
Doing
Already, several major
manufacturers are applying Jini technology in their devices.
·
Close
Jini technology is the
architecture to streamline the future of computing.
Picture this: Three
strangers from three companies--on the road to jointly bid a job. Among them
they have a laptop, a project disk drive with data & applications, a PDA, a
cell phone, and a clamshell pager--and their presentation is not ready. Their
hotel suite has a small network: scattered net jacks, a couple of infrared &
short-range RF transceivers, and though they never worked together before, they
have snapped into an impromptu working community. The suite has an Internet
gateway & low-resolution printer. The TV, the VCR, and the set-top box are
connected to the same network. As they work they use all the services in the
room, including those on each other's devices. Plug in the disk & PDA, turn
on the laptop & TV--total setup time: 2 minutes.
While one of them edits the
presentation, the others watch it unfold, mirrored on the TV. From time to time
one of them takes the laptop to another hotel room to concentrate on a section
while the others keep working, running simulations from the project disk on the
gateway & viewing results on the TV. Sometimes one of them prints a slide or
graph to proof. With the clamshell they fetch files from offices & email
questions. Using the cell phone as a remote, they order room service through the
TV & check their flights.
When they're done, they need
a high-resolution set of overheads. From the pager they reserve the hotel's
high-res color printer for 15 minutes--it's in a small room down the hall. Using
the suite key programmed by the reservation service to open the room, one of
them goes into the printer room, loads foils bought from online room service,
and phones into the suite's network to start printing.
Vision or Reality?
This is a great vision, but
aren't computers and software too brittle to pull it off anytime soon? No--it's
about to happen. Jini connection technology makes
computers and devices able to quickly form impromptu systems unified by a
network. Such a system is a federation of devices, including computers, that are
simply connected. Within a federation, devices are instant on--no one needs to
install them. The network is resilient--you simply disconnect devices when you
don't need them.
In
our story the devices and how they communicated were central. The laptop was
merely one player that came and went on a larger stage. The key was several
smart and flexible independent devices simply connected. This created a work
environment where the tools were ready to hand and largely invisible.
How Jini Connection Technology Makes This Work
Jini technology provides
simple mechanisms which enable devices to plug together to form an impr_omptu
community--a community put together without any planning, installation, or human
intervention. Each device provides services that other devices in the
community may use. These devices provide their own interfaces, which ensures
reliability and compatibility.
In
our story, the hotel suite provided a small network and a lookup
service with which devices and services registered. When the project disk
was plugged in, it went through an add-in protocol--called discovery
and join--in which the disk first located the lookup service
(discovery) where it then uploaded all its services' interfaces (join). The
other devices--the PDA, the clamshell pager, the cell phone, and the laptop--all
went through the same process.
To
use a service, a person or a program locates it using the lookup service. The
service's interface is copied from the lookup service to the requesting device
where it will be used. The lookup service acts as a switchboard to connect a
client looking for a service with that service. Once the connection is made, the
lookup service is not involved in any of the resulting interactions between that
client and that service.
It
doesn't matter where a service is implemented--compatibility is ensured because
each service provides everything needed to interact with it. There is no central
repository of drivers, or anything else for that matter.
In
our story, the presentation was mirrored on the TV; to do this, the person
operating the laptop selected the TV screen display service and plugged it into
the presentation software. To reserve the hi-res printer, a service was selected
that was built on top of the printer service to control who, how, and when the
printer is used.
The
Java™ programming language is the key to making Jini technology work. Devices in
a network employing Jini technology are tied together using Java Remote Method
Invocation (RMI). By using the Java programming language, a Jini connection
architecture is secure. The discovery and join protocols, as well as the lookup
service, depend on the ability to move Java objects, including their code,
between Java virtual machines.
Jini technology not only
defines a set of protocols for discovery, join, and lookup, but also a leasing
and transaction mechanism to provide resilience in a dynamic networked
environment. The underlying technology and services architecture is powerful
enough to build a fully distributed system on a network of workstations. And the
Jini connection infrastructure is small enough that a community of devices
enabled by Jini connection software can be built out of the simplest devices.
For example, it is entirely feasible to build such a device community out of
home entertainment devices or a few cellular telephones with no "computer" in
sight.
Smart Devices
Devices permeate our lives.
Look around: TVs, VCRs, DVDs, cameras, phones, PDAs, radios, furnaces, disk
drives, printers, air conditioners, CD players, pagers, and the list goes on. A
device performs a simple task, and only that task: Today devices are unaware of
their surroundings--they are rigid and cannot adapt. When you buy a disk drive,
you expend a lot of effort to install it or you need an expert to do it for you.
Now, devices of even the
smallest size and most modest capabilities can affordably contain processors
powerful enough for them to self-organize into communities that provide the
benefits of multi-way interactions. A device can be flexible and negotiate the
details of its interaction. We no longer need a computer to act as an
intermediary between a cell phone and a printer. These devices can take care of
themselves--they are flexible, they adapt.
A
device that can take charge of its own interactions can self-configure,
self-diagnose, and self-install. When computers were the size of large rooms, it
made sense to have a staff of people to take care of them. As computers became
smaller and shared by fewer people, each sys admin took responsibility for more
computers. But now the cost of a computer is low, and Jini technology creates
the possibility of impromptu device communities popping up in all kinds of
places far from any sys admin. Self-managing devices reduce further the need for
expert help, and this should lower the total cost of ownership for Jini
connection technology-based systems.
Historical Trends
How
have we arrived at a place where connected devices are the locus for the next
wave of computing?
The
most significant reason is our better understanding of physics, chemistry, the
physical bases for computation, and chip manufacturing process. Today, a
significantly powerful computer can be built from one or two small chips and an
entire computer system can built on one small board.
There were three dimensions
of improvement: size, cost, and computational power. Since the 1960s, size and
cost of computers have decreased dramatically while computational power has gone
through the roof.
The
mainframe of the 1960s was a collection of boxes in a large room--it cost
millions of dollars and set the bar for computational power. Only a company
could afford one.
The
minicomputer became possible when the functionality of a mainframe could be put
in a few boxes. It had the computational power of the previous mainframe
generation, and could be bought by a single department. Most minicomputers were
connected to interactive terminals--the beginnings of computer-based culture, a
community.
When a computer the power of
a mini shrank to a box that fit beside a desk, we got the workstation. A
department could afford to buy one for a couple of professionals. A workstation
had enough computational power to support sophisticated design, engineering, and
scientific applications, and to provide the graphical support for them.
The
personal computer was small enough to fit on a desk and powerful enough to
support intuitive graphical user interfaces, individuals could afford them, and
companies bought them for every employee.
Eventually processors became
small enough and cheap enough to put one in a car in place of an ignition
system, or in a TV instead of discrete electronics. Today's cars can have fifty
or more processors, the home over a hundred.
The
computational power dimension has another fallout. The overall trend toward
smaller, faster, cheaper processors meant that fewer people had to share a CPU,
but it also meant that people in the organization could become isolated. When a
tool is shared, it creates a community; as the tool shrinks, fewer people use it
together, and the community disperses. But, a community is hard to give up.
Fortunately, computational power kept pace with the shrinking processor, and as
the community served by a single computer system shrank, there was enough power
to support communication between systems. Thus for example, workstations became
successful once they could communicate and exchange data.
The
final stretch of the computational power dimension is that now processors are
powerful enough to support a high-level, object-oriented programming language in
such a way to support moving objects between them. And such a processor is small
enough and cheap enough to sit in the simplest devices.
Once there is sufficient
computational power, the ability to connect and communicate is the dominant
factor determining value. Today for most people, a computer runs only a few
applications and mainly facilitates communication: email, the Web. Recall how
fast Internet popularity soared first with email and more recently once the Web
and browsers became prevalent.
Sun Community Source Licensing
When the Internet was
developing, there were two essential activities: defining and perfecting the
underlying protocols and infrastructure, and creating applications and services
on top of that infrastructure. Internet infrastructure includes TCP/IP, HTTP,
SMTP, and FTP--protocols and their implementations. On top of these were built
email composers and readers, file fetching programs, Web browsers, and the Web
itself. No single company or organization did all the work, and none could, if
the venture was to be successful, because underlying it all is a standard
protocol, and a protocol can be successful only if it is widely adopted.
For
Jini connection technology to succeed, the underlying protocols and
infrastructure must become pervasive, and to accomplish this requires a strong
community of participants and partners.
The
Sun Community Source License (SCSL) is a mechanism to build such a community
around Jini technology. The SCSL opens the source code for the Jini technology
infrastructure to the community of Jini technology licensees, who are free to
use it, extend it, improve it, and repair it by following an open process that
insures both fairness and stable evolution of the technology. Community members
may add to this common body of source code while still maintaining, if they
wish, proprietary implementations, though interfaces must be published so other
community members can build their own implementations.
There are three levels of
participation in the SCSL:
·
Research
Use:
This enables researchers and students to use the source for any non-deployment
purpose, and provides a way for organizations and individuals to examine and
evaluate Jini connection technology.
·
Internal
Deployment: This enables organizations
and individuals to deploy products based on Jini connection technology within
their organization.
·
Commercial
Use:
This is for commercial distribution and is based on a branding license model.
Fees are associated only
with commercial use, and only in for-profit situations. The research use and
internal deployment licenses are Web-based click-throughs, so that joining the
community is simple and immediate, just as is Jini technology itself.
The
SCSL anticipates an emergent, self-organizing community coalescing into interest
groups surrounding different sorts of services, such as printing and digital
cameras. Such interest groups would define, refine, and standardize interfaces
for their category of service, providing useful community source and
verification suites for new community members to get
started.
What the Java Community is
Doing
A
network of devices employing Jini technology can be built from many diverse
types of devices. Today there are initiatives underway by several major
manufacturers to enable their devices with Jini technology. These devices
include printers, storage devices such as disks, personal digital assistants,
digital cameras, cell phones, residential gateways, digital video cassette
recorders, TV sets, set-top boxes, DVD players, industrial controls, and every
sort of imaginable consumer electronics device. There are several technologies
in preparation for connecting devices within a particular domain, such as home
entertainment or industrial control, and bridges are being planned to connect
these other types of networks to communities utilizing the Jini connection
technology.
Close
The right architecture makes it all simple--and the results can startle. Jini connection architecture is only what is needed to gather a group of devices into an impromptu community that is simply connected: a simple protocol to discover a lookup service and join it, a lookup service which acts as a switchboard connecting clients to services, the Java programming language to provide the underlying object model, and RMI technology to provide federation and to move objects. By looking to simple devices as the archetype of how to design devices and by creating a way to simply connect them, we may at last begin to see advanced computer technology simplify our lives.