Understanding the JINI Networking Technology
 
Published: 17 Sep 2007
Abstract
This article discusses the architecture, features and benefits of JINI and provides a brief introduction to Jini Extensible Remote Invocation (JERI). It also discusses some of the key terminologies related to the JINI Networking Technology and provides links to resources and discussion forums that are related to this technology.
by Joydip Kanjilal
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 35749/ 58

Introduction

JINI is a Java based networking architecture that is designed for distributed computing and is based on Service Oriented Architecture. It is an open source software architecture that can be used to design and implement adaptive, scalable distributed systems. Jini technology includes JavaSpaces Technology and Jini Extensible Remote Invocation (Jini ERI).  Jini is "highly flexible" and "adaptive to change" irrespective of its implementation in hardware or software. Jini network technology suffices to the requirements of any dynamic computing environment for building adaptive networks that are highly flexible, scalable and evolvable. You can consume a JINI enabled service from a service consumer or a program once it announces itself, i.e., makes its presence felt in the network. JERI is Jini Extensible Remote Invocation and may be defined as a new implementation of the Java RMI programming model.

About Jini Network Technology

Jini network technology or simply "Jini" is a network architecture that helps in building distributed systems and owes its inception to "Sun Microsystems." According to Sun Microsystems, "Jini network technology, which includes JavaSpaces Technology and Jini extensible remote invocation (Jini ERI), is an open architecture that enables developers to create network-centric services -- whether implemented in hardware or software -- that are highly adaptive to change. Jini technology can be used to build adaptive networks that are scalable, evolvable and flexible as typically required in dynamic computing environments."

Jini helps in dealing with some of the flaws of Distributed Computing as assumed by the programming world such as: zero latency, infinite bandwidth, network is secure, reliable and homogeneous, etc. Jini helped in dealing with the system evolution issues, security and dynamic assembly of service components. Jini also helped in enhancing the ability of the network to maintain an adequate level of service while undergoing various faults. Jini actively helps in “Code Mobility” which is an important concept pf the platform, and also provides many benefits that include non-protocol dependence.

Jini provides its users with great and consistent access to various hardware and software resources within a dynamic, distributed Jini system called "djinn.”  This networked accessibility of software and hardware entities is termed by Jini as “federation.”

Objectives

According to Jini.org, "Jini technology is a service oriented architecture that defines a programming model which both exploits and extends Java technology to enable the construction of secure, distributed systems consisting of federations of well-behaved network services and clients. Jini technology can be used to build adaptive network systems that are scalable, evolvable and flexible as typically required in dynamic computing environments." Jini provides an ambience for creating dynamically networked components, applications, and services that scale from the device to the enterprise. It is available for free and extends the Java programming model to offer you design flexibility and resiliency. It can be easily integrated to an existing network and offers an open development environment for creative collaboration through the Jini Community.

The main objectives of Jini are as follows:

·         It enables the users of the JINI Network to share various hardware and software resources across the network.

·         It facilitates access to resources across the network from any location irrespective of the location.

·         Ease of administration and management of the network

·         Seamless Network resiliency and integration

Looking back in time

Jini technology owes its inception to Sun Microsystems. During 1999, Sun Microsystems contributed Jini to the “Jini Community.” Jini is available for free to the programming world. Serious work is in progress by its community members to impart the enhancements to this technology through the open Jini Community Decision Process.

It is developed by the members of the Jini Community with the help of open Jini Community Decision Process. As distributed computing became popular, the terminology of network architecture denoted classifications and implementations of distributed computing architectures.

According to Sun Microsystems, “the term Jini refers to both a set of specifications and an implementation; the latter is referred to as the Jini Starter Kit. Both the specifications and the Starter Kit have been released under the Apache 2.0 license and have been offered to the Apache Software Foundation's Incubator.”

The JINI Components

There are three major components of a running Jini system: the “Jini Client,” the “Service Locator” and the “Jini Service.” “Jini Client” is anything that would like to use the Jini Service. The “Service Locator” is a locator, trader or broker that acts between the service and the client and also helps in locating services in a distributed Jini environment. The “Jini Service” is anything that can be used by client programs and also by other services.

The Jini basic architecture model can be conceptualized as a 5 layered model. The three major components (Jini Client, Service Locator, and Jini Service) lay on the uppermost layer of the Jini basic architecture model. The next layer below has the “Jini Technology.” The third layer has “Java Technology” followed by the fourth layer for the “Operating System.” The lowermost layer is the “Network Transport” layer.

The Jini technology “infrastructure” is comprised of the following services:

·         The Discovery and Join protocols

·         A Distributed Security system

·         The Lookup Service

The “discovery/join protocol” provides the technique by which any service becomes part of a Jini system. “RMI” (Remote Method Invocation) presents the base language for communication between Jini services. The implementation of the “distributed security model” defines the process for entity identification and the ways to obtain rights to perform actions on their own and for others. The “lookup service” presents the current members of the federation. It also acts as the central location for the federation members for offering and finding services.

The basic components of the Jini “programming model” are listed as under:

·         The “leasing interface” that defines a way of allocating and releasing resources using a renewable, time-specific model.

·         The “event and notification interface” that enables event-based communication between Jini services.

·         The “transaction interfaces” that enable entities to mutually work in such a way so that all of the group based modifications happen atomically, or none of them happens at all.

How does Jini work?

The Jini architecture makes all the services in the whole network adaptive to changes. It does this with the use of the objects that float around the network. A specification is provided by the Jini architecture for both clients and services to locate each other in the network. The clients and services then assemble together and perform a task. Clients can get access to the service from the portable Java based objects that are given to the clients by the service providers. Any standard networking technology can be used such as RMI, CORBA or SOAP for the network interaction as only the Java technology based object provided by the service are visible to the client. Consequently, that Java object (and its originating service) confines all the network communication.

The core functionality behind Jini is centered on three basic principles, Discovery, Join and Lookup. Discovery implies that a service registers itself with the Lookup service. Join implies that the service has found the Lookup service and wishes to join it. The client now can lookup for a specific service using the Lookup service and invokes methods on it.

A service while joining a network of Jini enabled services and/or devices, projects itself by publishing a Java object that implements the service API. These services include not only software but hardware devices too, including disk drives, DVD players, VCRs, printers, scanners, digital cameras, and almost anything else one could dream of that passes information in and out. Adding a new device to a system employing Jini technology is simply plugging it in. Amazing, isn't it?

Related terminologies

This section discusses some of the key terminologies related to JINI Networking Technology.

"Services" in Jini relate to any entity that can be used by the members or the users of the JINI Federation. It can typically be a printer, a communication channel, etc.

"Discovery" in Jini is the procedure of locating available lookup services. The Jini-aware code finds the Jini communities by means of the Jini Discovery protocols namely Multicast Request Protocol, Multicast Announcement Protocol, and Unicast Discovery Protocol.

“Lookup” in Jini is actually a service and is similar to a name server and monitors and tracks the services that have joined the Jini community. "A service is added to a lookup service by a pair of protocols called discovery and join--first the service locates an appropriate lookup service (by using the discovery protocol), and then it joins it (by using the join protocol)."

"Leasing” in Jini is the process that grants access to resources to the members of the Jini community for a specified period of time. According to Sun Microsystems, "Access to many of the services in the Jini system environment is lease based. A lease is a grant of guaranteed access over a time period. Each lease is negotiated between the user of the service and the provider of the service as part of the service protocol: A service is requested for some period; access is granted for some period, presumably taking the request period into account. If a lease is not renewed before it is freed--either because the resource is no longer needed, the client or network fails, or the lease is not permitted to be renewed--then both the user and the provider of the resource may conclude the resource can be freed."

“Remote Events” in Jini technology are typically used by the community members of the Jini community to notify each other using events.

“Transactions” in Jini technology are used to complete complex units of work that have chances of failing before its completion. Transactions in Jini provide Consistency, Durability, Atomicity and Isolation.

The following section takes a brief look at Jeri, an abbreviated form of Jini Extensible Remote Method.

Jini Extensible Remote Invocation (JERI)

One of the best-kept secrets of the JINI community is Jini Extensible Remote Method Invocation (JERI), which was released as part of JINI 2.0. JERI is really useful and effective, and comes with a lot of cool and exiting features.

JERI is Jini Extensible Remote Invocation, a new implementation of the RMI programming model. So it is on par with RMI's native JRMP protocol. It is also on par with RMI/IIOP in the sense that all of these are implementations of the Java RMI programming model. However, they all use different protocols underneath and have different protocol stacks.

The salient features of the Jeri Network Technology are:

·         Can be customized seamlessly

·         Support for integrated security and non TCP based transport

The JERI infrastructure basically has three layers.

·         The Marshalling Layer

·         The Object Invocation Layer

·         The Messaging Layer

Let us now understand what each of these layers relates to. The marshalling layer is responsible for marshaling of arguments and return values of methods. The Object Invocation Layer is responsible for identifying the remote object that will be used to make a remote call. The Messaging Layer is simply a request-response layer that is responsible for transporting the bytes.

References

Conclusion

The Jini Network technology from Sun Microsystems is an open software architecture that helps Java dynamic networking for constructing distributed systems that are highly adaptive and useful to change according to the need and situation's demands. According to Sun Microsystems, "A Jini system is 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 on which resources can be found by human and computational clients. Resources can be implemented as either hardware devices, software programs, or a combination of the two." You can use the Jini Network technology to create technology systems that are scalable, evolvable, and flexible, in dynamic runtime environments in a multifaceted way. In this article we have had a look at what the JINI Technology is all about and also a brief introduction to Jini Extensible Remote Invocation (Jini ERI). Happy reading!



User Comments

No comments posted yet.

Product Spotlight
Product Spotlight 





Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2024 ASPAlliance.com  |  Page Processed at 2024-04-19 7:04:11 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search