Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

What is Jini?

JINI is a way to do distribute computing that helps you manage the dynamic


nature of networks.

 It is a technology which helps devices to work together and connect simply.


 JINI technology is a simple infrastructure for providing services in a network,
and for creating spontaneous interactions between programs that use these
services. Services can join or leave the network in a robust fashion, and clients
can rely upon the availability of visible services, or at least upon clear failure
conditions. When you interact with a service, you do so through a Java object
provided by that service. This object is downloaded into your program so that
you can talk to the service even if you have never seen its kind before - the
downloaded object knows how to do the talking.
 The Jini architecture is designed to allow a service on a network be available to
anyone who can reach it, and to do so in a type-safe and robust way.

Why Jini?

 Enables a spontaneous "plug, use, and unplug" network


 No system administrator required
 Everything on the network (hardware or software) is a "service"
 Each service represented by a mobile object
 Interface says "what"; Implementation says "how"

Is Jini Portable?

• Jini technology will run on any network with at least one Java Virtual Machine.
How does JINI work?

• Jini technology provides simple mechanisms which enable devices to plug


together to form 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.

Goals of the Jini architecture:

 Network plug-and-work: You should be able to plug a service into the network


and have it be visible and available to those who want to use it. Plugging
something into a network should be all or almost all you need to do to deploy
the service.
 Erase the hardware/software distinction: A service on the network should be
available in the same way under the same rules whether it is implemented in
hardware, software or a combination of the two.
 Enable spontaneous networking: When services plug into the network and are
available, they can be discovered and used by clients and by other services.
When clients and services work in flexible network of services, they can
organize themselves in the most appropriate way for the set of services that
are actually available in the environment.
 Promote service-based architecture: With simple mechanism for deploying
services in a network, more products can be designed as services instead of
stand-alone applications.
 Simplicity: Being a well behaved Jini service is relatively simple, and much of
what you need to do can be automated by other tools, leaving you with a few
necessary pieces of work to do.

The Jini architecture relies upon several properties of the Java virtual machine:

o Homogeneity: The Java virtual machine provides a homogeneous platform - a


single execution environment that allows downloaded code to behave the
same everywhere.
o A Single Type System: This homogeneity results in types that mean the same
thing on all platforms. The same typing system can be used for local and
remote objects and the objects passed between them.
o Serialization: Java objects typically can be serialized into a transportable form
that can be later deserialized.
o Code Downloading: Serialization can mark an object with a codebase: the
place or places from which the objects can be downloaded. Deserialization can
download the code for an object when needed.
o Safety and Security: The Java Virtual machine protects the client machine
from viruses that could otherwise come with downloaded code. Downloaded
code is restricted to operations that the virtual machine's security allows.

What are the components of a JINI System?

• In a running Jini system, there are three main players.


• There is a service, E.g. printer, a toaster, a marriage agency, etc.
• There is a client which would like to make use of this service.
• Thirdly, there is a lookup service (service locator) which acts as a
broker/trader/locator between services and clients.
• There is an additional component, and that is a network connecting all three
of these, and this network will generally be running TCP/IP.
Where is JINI used?

• Devices permeate our lives.  Look around:  TVs, DVDs, cameras, phones, PDA,
printers, disk drives, pagers. 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 expert to do it for you.

How does JINI Technology help in devices?

• With the help of JINI Technology, a device that can take charge of its own
interactions can self-configure, self-diagnose, and self-install. 

Digital Camera Example

With JINI

• With Jini technology it’s possible for a camera to plug into a digital photo kiosk
or simply connect the camera to your home Jini network.
• We will instantly have access to the files and can choose to use color printer
services or share the images through your distributed disk service.
• Jini connection technology enables impromptu networks of resources to live
and serve in the ever changing world.

Without JINI

• Today, the camera is cabled to a general purpose computer or the camera


memory is removed and inserted into a computer, in order to download the
images.
Where does JINI fit in the hierarchy?

Jini Infrastructure

• Jini connection technology is designed to simplify networking through an


infrastructure to support devices connecting and forming communities.
• It is based on Java technology, using the Remote Method Invocation to move
code around the community
How does JINI reduce the cost of the modern day networking devices?

• With the ever falling cost of Computers, 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.

Federation

 Jini systems organized as federations of services


 No central controlling authority
 Read: No single pillar propping everything else up
 Federation yields robustness
 Lookup service is like a singles bar

Registering a Service

 Service provider discovers a lookup service


 Lookup service sends its ServiceRegistrar proxy to the service provider
 Via the ServiceRegistrar, ...
 The service provider sends its own proxy to the lookup service
 (Interchangeable: proxy, proxy object, service object, service proxy)

Finding a Service

 Client discovers a lookup service


 Lookup service sends its ServiceRegistrar proxy to the client
 Via the ServiceRegistrar, ...
 The client sends lookup query (usually by type) to the lookup service
 The lookup service replies with requested service proxy
Using a Service

 Via the service proxy, ...


 Client interacts with the service
 Client invokes methods of the service proxy's interface
 Proxy talks across the network to any remote aspects of the service

Hardware and Software

 Services can be hardware (devices) or software (servers)


 Everything is a service, represented by an object, used via an interface
 Dynamic lookup enables new services to be discovered, old services to be
updated
 Services are network-available components, searched for by interface type

Enabling Change

 Traditional, protocol-based distributed systems difficult to change


 In Jini, protocols can evolve
 In Jini, base interfaces can be extended
 Old clients can use base interfaces
 New clients can use new interfaces via lookup or instance of and down casting

Where's Java?

 Java class files fly across then network


 JVM interprets them at the client
 Legacy (non-Java) code can serve up a proxy
 Legacy code can be wrapped via JNI calls

Conclusion

 Jini is a distributed computing architecture that leverages network mobile


objects
 Goal: Help you manage the dynamic networks
 Goal: Scale up to lots of clients and services
 Goal: Enable spontaneous "plug, use, unplug"
 Goal: Raise the level of abstraction for distributed systems programming

You might also like