Jini Technology

Sun's distributed, federated object system based on Java technology.

see http://java.sun.com/products/jini for more info.

In essence, Jini provides a mechanism for locating services on the network that conform to a particular (Java) interface, or that have certain attributes associated with them. Once a service is located, the client can download an implementation of that interface, which it then uses to communicate with the service.

Jini provides a discovery protocol that allows services to bootstrap themselves onto the Jini network by locating and registering with a Lookup Service. Collections of Jini services, registered with Lookup Services are said to form a "Jini Community". Since the most common form of the discovery protocol uses multicast, communities will tend to spontaneously form within network boundaries. There is a non-spontaneous facility for unicast discovery also.

Jini makes use of leasing to ensure the network can route around damage. Services must actively renew leases or be discarded from the community. The Jini specification also provides facilities for remote events and distributed transactions across services.

It's also related to the JavaSpaces "Object Space".


Anyone here using this yet? I'm browsing through the Core JINI book. The leasing idea, in particular, looks very interesting. -- MichaelFeathers

I am prototyping a point-of-sale system using JiniTechnology to gain massive system robustness. -- MikeMorris

I am using GigaSpaces implementation of JiniTechnology for computational chemistry. -- JackMollier?


It is extremely interesting. And because it has two i's in the name, the idea to discuss this all on another wiki site (JiniWiki) wasn't very hard to come up with. -- CeesDeGroot


I'm just starting with Jini and whilst the technology seems good, the API is dreadful. I'm amazed at how many calls take null arguments to mean defaults (try using overloading instead) and how many classes have public data (all of these classes are ValueObjects). -- NoelWelsh


Version 2 of the spec and Jini Technology Starter Kit was released in June of 2003. It still lacks a clean "out of the box" setup.


Ruby ships with a Jini-like technology named RubyRingServer.


Jini (http://www.jini.org) has been designed from the beginning to support distributed Service Oriented Architectures (SOA) by directly addressing Deutsch's Eight Fallacies of Distributed Computing (L. Peter Deutsch, Sun Labs):

Deutsch notes that "All prove to be false in the long run and all cause big trouble and painful learning experiences." Jini explicitly rejects these assumptions.

As noted in WhatIsSoa, the four defining characteristics of an SOA are:

Jini implements each of these characteristics explicitly, making it an ideal implementation technology.

The key benefits of Jini are:

Jini is lightweight compared to alternatives such as WebServices, J2EE, or proprietary products. Proficient Java developers quickly pick up the technology and spend more of their time building business functionality rather than struggling with overly complex tools.

For all of its strengths as an SOA implementation technology, Jini is not the best choice for providing business functionality to external parties. A more restricted interface mechanism should be used at an organization's virtual borders.


I misread the title of this page as "Jimi Technology", which made me think of ripping out some fantastically intricate algorithms then setting your keyboard on fire.


See also JavaSpaces, GigaSpaces


EditText of this page (last edited August 14, 2008) or FindPage with title or text search