03-03-2011, 11:59 AM
Presented by
Syeda Umme Salma
[attachment=9434]
Introduction
Jini is a “network infrastructure” running on top of Java to create a federation of virtual machines.
A “federation” is a set of services that can work together, in a single distributed computing space, to perform a task.
Network citizens (e.g. devices and applications) within this federation are “dynamically” connected to share information and perform tasks.
History of Jini Technology
• The idea of the Jini system sprang from Sun cofounder “Bill Joy” at Sun Aspen Smallworks R&D lab in 1994.
• On January 25, 1999, Jini was officially launched and the technology is available for download.
• Sun currently has agreement with a wide range of technology companies to develop Jini technology services, both hardware and software.
Features in Jini
• Distributed processing infrastructure –Dynamic configuration
• Ability to “automatically recognize" devices that are plugged – Plug and Play
• No manual configuration required
• Network includes hardware devices (consumer appliances) like telephones, fax, printer, cameras, television, mobile phones, PDA etc..
How to use Jini ?
• Jini takes up 400K which includes the class libraries, the server programs, and the virtual machine – Software
• Can be embedded at the device level within almost any hardware containing a JVM – Hardware
- The only external interfaces for Jini-enabled devices are a power cord and a telephone plug
An Example Scenario
• Printer driver must be installed.
• Location must be known to the clients.
• If the printer is moved to the new location, driver must be reinstalled.
• If the printer is replaced with a new enhanced capabilities again reinstallation of the driver is required.
Literature Survey
• Distributed system – consists of multiple autonomous computers that communicate through a computer network
Types - Client-server, 3-tier architecture, N-tier architecture, loose coupling, or tight coupling.
• Java Remote Method Invocation – clients use objects from different JVM
import java.rmi.*;
interface ComputeTask extends Remote { void acceptTask(Task task) throws
RemoteException, InvalidTask;
}
Literature Survey
• Broker Architecture – structures distributed objects with decoupled components that interact by remote service invocations. Example CORBA (Common Object Request Broker Architecture)- object oriented technology for distributed objects in heterogeneous systems. Supports multiple platforms.
Literature Survey
• Multicast - Multicast addressing is a network technology for the delivery of information to a group of destinations simultaneously.
Delivery the messages over each page link of the network only once.
Statement of Problem
Many aspects of Distributed systems, say configuration or topology if the devices are mobile, may be subject to change as part of a dynamic networking system.
Jini provides mechanisms to recognize, acknowledge, and build their systems to accommodate change.
Enables true plug and play mechanism.
Provides scalable, evolvable, and flexible system for dynamic runtime environments.
Approaches and Methods
Jini Architecture
• The Jini Client – needs service
• The Service Locator – finds services in distributed network
• The Jini Service – services used by client like printer, television etc..
Jini specifications
• A Programming Model – builds a distributed system.
Leasing
Distributed events
Transactions
A Runtime Infrastructure –
• Discovery protocol: Used to find the “lookup” services on the network, which are used to register a new service or to find a service.
• Join protocol: Used for registering a new service.
• Lookup protocol: Used by client devices to find a needed service.
Discovery Protocol
• A pair of these protocols – discovery and join -- occurs when a device is plugged in.
• Discovery occurs when a service is looking for a lookup service with which to register.
• The service provider locates a lookup service by multicasting a request on the local network for any lookup services to identify themselves.
Join Protocol
• Join occurs when a service has located a lookup service and wishes to join it.
• A service object for the service is loaded into the lookup service.
• Service object contains the Java programming language interface for the service, including the methods.
Lookup Protocol
• A client locates an appropriate service by its type.
• The service object is loaded into the client.
• The final stage is to invoke the service.
The Discovery/Join/Lookup Process
Jini Services
• Service registration: Every new service must register itself to allow users to find and use it.
• Service discovery: Enables users to find the service.
• Service use: A Java object that specifies service capabilities and contains Java code that allows a client computer to use the service.
• Service removal: A service is removed by removing the associated service proxy object from the LUSs.
Jini Features for Distributed Computing
Code Mobility
-relies heavily on RMI so both data and code can be moved.
- enables you to allocate and migrate code transparently.
Leasing
- Jini is designed to be used in an unreliable environment.
-Uses leasing model, which imposes a time limit for the use of the service
- the client holder requests a lease from a grantor.
-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.
Jini Features for Distributed Computing
Distributed events
- Jini-based services can notify each other when a change in their state occurs.
- Event Notification Mechanism , this distributed event model allows services to register with each other and receive notification.
- The Event Generator generates remote events upon abstract state changes. The Event Listener registers interest.
- Objects that want to receive notification of a remote event, implement the RemoteEventListener interface.
- An UnknownEventException is thrown if the event is unrecognizable.
Jini Features for Distributed Computing
Transactions
-A transaction is essentially multiple atomic operations that can be treated as a single unit.
-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.
Advantages of Jini Technology
• Location independent -a service requester need not be prewired with the lookup service location information.
• Protocol agnostic -a service requester can interact with any type of service provider using appropriate protocols.
• Loosely coupled-a service requester can discover the service provider's interface at run-time.
• Dynamic and self-managed-the entire community is self-formed and self-managed at run-time.
• More fault tolerant
• Plug and Play – spontaneous networking.
Results and Discussion
• Results in a system in which the network supports a fluid configuration of objects that can move from place to place as needed.
• Uses the the Java application environment to simplify the construction of a distributed system.
• Allows fluidity of all components in a distributed system, extending the easy movement of objects(data and code) to the entire networked system.
• Provides mechanisms for devices, services, and users to join and detach from a network(automatically).
• The system is Adaptive, Scalable, Evolvable, and Flexible.
Conclusions and Further Scope
• Jini is a network middleware for the new age of ubiquitous computing.
• It enables communication between applications and devices in a heterogeneous network environment.
• Jini Technology provides global high-performance distributed computing.
• Future work includes re-implementing the system in Jini.