Title: Jini Technology
1Jini Technology
2Jini Technology
- Introduction
- Architecture Overview
- Lookup Service
- Programming Model
- Application
3Jini Technology
- Introduction and Architecture Overview
4What is Jini
- A breakthrough initiative based on Java
technology - Enables all types of devices to simply connect
into impromptu networks, making access to and
delivery of new network services as simple as
plugging in a telephone. - Enables all types of digital devices to work
together in a community put together without
extensive planning, installation, or human
intervention. - Each device provides services that other devices
in the community may use.
5What is Jini
- A distributed system based on the idea of
federating groups of users and the resources
required by those users - The overall goal is to turn the network into a
flexible, easily administered tool - The focus of the system is to make the network a
more dynamic entity
6Where Jini Technology be Used
- Almost anything that passes digital information
in and out - Traditional computer hardware and software
- Consumer appliances such as personal digital
assistants (PDAs), digital cameras, VCRs, TVs,
DVD players, cell phones, and CD players.
7An Example Scenario
Three professionals Bob, Sue, and Dave, at
three different sites use JiniTM technology to
pull together a complex project, deploying a host
of different networked devices.
8History of Jini Technology
- The idea of the Jini system sprang from Sun
cofounder Bill Joy at Sun Aspen Smallworks RD
lab in 1994. - Under the leadership of Bill Joy and Jim Waldo
- Ann Wollrath, the inventor and designer for Java
Remote Method Invocation (Java RMI) - Ken Arnold, the designer of JavaSpaces
technology - Bob Scheifler, a principal of the X Consortium
and designer of Lookup/Discovery. - Based on the potential to create a ubiquitous
network by leveraging the unique distributed
computing characteristics of Java technology
9History of Jini Technology
- On January 25, 1999, Jini was officially launched
and the technology is available for download - By September 1999, 18,000 click-thru agreement
/downloads of Jini release from Suns web site - Sun currently has agreement with a wide range of
technology companies to develop Jini technology
services, both hardware and software. - includes Axis, Canon, Datek, Epson, FedEx,
Mitsubishi, Norwest Mortgage, Novell, ODI,
Quantum, Seagate, Toshiba, Computer Associates,
Oki, Salomon Brothers
10History of Jini Technology
- It is expected that by using Jini technology, we
can enable infinitely connected network of
services into which anyone will be able to
plug-and-participate anytime, from anywhere,
using the simplest possible technology.
As easy to connect to as a telephone dial tone
As persistent and reliable as a radio
As easy to operate as a TV
As powerful as all of the devices connected to it
11Why Jini Technology
- Network plug and work
- Enables a services based architecture
- Spontaneous networking
- Erase the distinction between hardware and
software - A distributed computing infrastructure to make
writing distributed programs easier
12Jini Technology Builds on Java Technology
13Nomenclature
- Key terms used in talking about Jini
- Federation -- A federation consists of a group of
devices (like printers, hard disks and so on) and
software programs (any program that is compiled
down to Java bytecode) that form a single,
dynamic, distributed system. - Resource -- The devices and programs within a
federation are called resources - Service -- A resource offers a service. A service
can be storage, communication, computation or
anything that a resource can do.
14Structure of Jini Technology
15Jini Infrastructure
- Infrastructure is the set of components that
enables building a federated Jini system - The lookup service, which serves as a repository
of services. It reflects the current members of
the federation and acts as the central
marketplace for offering and finding services by
members of the federation - The discovery/join protocol, a service protocol
that allows services (both hardware and software)
to discover, become part of, and advertise
supplied services to the other members of the
federation - A distributed security system, integrated into
RMI, defines how entities are identified and how
they get the rights to perform actions on their
own behalf and on the behalf of others
16Jini Infrastructure - Lookup Service
- The central organizing mechanism for Jini-based
systems - The lookup service reflects the current members
of the federation - When new services become available on the
network, they register themselves with a lookup
service - When clients wish to locate a service to assist
with some task, they consult a lookup service
17Jini Infrastructure - Discovery / Join / Lookup
protocol
- Discovery enables clients and services to locate
lookup services. - Join enables a service to register itself in a
lookup service. - Lookup enables a client to query a lookup service
for services that can help the client accomplish
its goals.
18Jini Infrastructure - Registering a Service
1. Service provider broadcasts a discovery packet
onto a well-known port 2. Lookup service monitor
the well-known port for the presence of the
discovery packets 3. Using RMI, the lookup
service replies to the originator of the packet,
finishes the discovery 4. The service provider
joins the lookup service
19Jini Infrastructure - Finding a Service
1. A resource first queries the lookup service
for a particular interface 2. If the interface is
present in the lookup service, the client proxy
of the interface is returned to the resource
20Jini Infrastructure - Using a Service
The resource invokes method of the client proxy
interface.
21Programming Model
- A set of interfaces that enables the construction
of reliable services, including those that are
part of the infrastructure and those that join
into the federation - Leasing interface defines a way of allocating
and freeing resources using a renewable,
duration-based model - Event and notification interface a notification
mechanism between services and resources that
stretches beyond machine boundaries - Transaction interface wrapping of multiple
operations on multiple services into a single
unit of work that either completely succeeds or
is rolled back
22Programming Model - Leasing interface
- A lease in Jini is a finite duration agreement
between two Jini entities. A lease is negotiated
between the entity requesting and the entity
granting the lease. - With this design, resources claimed in a lease
can be automatically released after a period of
time. A long-running Jini system - Can effectively recover from disconnection and/or
partial system failure - Has the equivalent of a garbage collection
process for stale and unreferenced entries and
resources
23Programming Model - Transaction interface
- The transaction interfaces introduce a
light-weight, object-oriented protocol enabling
Jini applications to coordinate state changes. - The transaction protocol provides two steps to
coordinate the actions of a group of distributed
objects. - voting phase each object "votes" whether it has
completed its portion of the task and is ready to
commit any changes it made. - commit phase a coordinator issues a commit
request to each object. - Various levels of Atomicity, Consistency,
Isolation, and Durability (ACID) can be
implemented and guaranteed
24Programming Model - Event and notification
interface
- Distributed event notification is handled via
registration to event generating entities and
providing objects that implement the appropriate
listener interface - These interfaces are specially designed to cater
for the less predictable event propagation
characteristic over a distributed system.
Specifically, it caters for having agents or
middlemen that will manage and handle event
registration and notification on behalf of client
objects.
25Services
- Hand-coded using the programming model. Can be
programmed to do any task suitable of the
resource - Services appear programmatically as objects
written in the Java programming language, perhaps
made up of other objects. - A service has an interface which defines the
operations that can be requested of that service.
- The type of the service determines the interfaces
that make up that service and also define the set
of methods that can be used to access the
service. - A single service may be implemented by using
other services.
26Separation of interface and implementation
- Service object can be
- completely local proxy
- RMI stub as a proxy
- smart proxy
- Client does not care about network protocol
- Service implementation can evolve over time
27A Jini System in Action - Remote PDA Printing
28References
- http//java.sun.com/features/1999/01/jini_scenario
.html - http//www.developer.com/journal/techfocus/080598_
jini1.html - http//www.sun/com/jini/whitepapers/architecture.h
tml - Professional Java Server Programming, WROX
- http//www.abcomp.be/news/events/receptions/abny99
/history.html
29Jini Infrastructure - Discovery / Join / Lookup
protocol
Discovery
1. Service provider broadcasts a presence
announcement by dropping a multicast packet onto
a well-known port 2. Lookup services monitor the
well-known port for presence announcement
packets. It opens and inspects the packet when
receives a presence announcement 3. Using RMI,
the lookup service sends an object, called a
service registrar, across the network to the
originator of the packet
30Jini Infrastructure - Discovery / Join / Lookup
protocol
Join
The service provider invokes the register()
method on the service registrar object, passing
as a parameter an object called a service item, a
bundle of objects that describe the service. The
register() method sends a copy of the service
item up to the lookup service, where the service
item is stored.
31Jini Infrastructure - Discovery / Join / Lookup
protocol
Lookup
1. A client invokes the lookup() method on a
service registrar object 2. The client passes as
an argument to lookup() a service template, an
object that serves as search criteria for the
query. The service template can include a
reference to an array of Class objects. These
Class objects indicate to the lookup service the
Java type (or types) of the service object
desired by the client 3. The lookup service
performs the query and sends back zero to many
matching service objects. The client gets a
reference to the matching service objects as the
return value of the lookup() method
32Jini Infrastructure - Service Invocation
Invoke service
Service object can grant clients access to the
service in many ways. The object can actually
represent the entire service, which is downloaded
to the client during lookup and then executed
locally. Alternatively, the service object can
serve merely as a proxy to a remote server. When
the client invokes methods on the service object,
it sends the requests across the network to the
server, which does the real work. The local
service object and a remote server can each do
part of the work as well.
33Jini Technology Benefits
- No configuration hassles or device drivers.
- Devices simply announce themselves and their
capabilities (service). - Seamless access to local and remote devices.
- Devices (i.e. printers) can be associated with
people, places, etc. - Everyone has access to the same information
resources. - For the duration of the meeting everyone has
access to common resources which means that they
have a unified and consistent view of their
immediate network.
34Jini Technology Benefits
- The Resource is there when you need it.
- If another employee needs to show a presentation,
Mitch can simply relinquish the Projector and let
the other employee take over transparently. - It's easy to share information with the team.
- Personal Calendars can be synched up or shared
"spontaneously" to set up a follow-up meeting for
example
35Jini Connection Technology Makes Things Work