JINI™ (pronounced like genie, a pseudo-acronym: Jini Is Not Initials) is a network architecture for the construction of distributed systems where scale, rate of change and complexity of interactions within and between networks are extremely important and cannot be satisfactorily addressed by existing technologies. Jini technology provides a flexible infrastructure for delivering services in a network and for creating spontaneous interactions between clients that use these services regardless of their hardware or software implementations.
Jini network technology 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.
Table of contents
7 Fallacies of Distributed Computing
- The network is reliable
- Latency is zero
- Bandwidth is infinite
- The network is secure
- Topology doesn't change
- There is one administrator
- Transport cost is zero
These assumptions about the network hinder efficient performance and distributed software deployment. Following attributes of Jini Network Technology take care of the pitfalls.
- Code mobility: Extends the Java programming model to the network; i.e., moves data and executables via a Java object over a network
- Protocol agnostic: Provides the ultimate in design flexibility
- Leasing: Enables network self-healing and self-configuration; i.e. improving fault tolerance
- Resiliency – Networks readily adapt to changes in the computing environment
- Integration – Allows fast, easy incorporation of legacy, current, and future network components
- Licensing – Jini network technology is available free of charge with an evergreen license
The Jini architecture specifies a way for clients and services to find each other on the network and to work together to get a task accomplished. Service providers supply clients with portable Java technology-based objects ("Java objects") that give the client access to the service. This network interaction can use any type of networking technology such as RMI, CORBA, or SOAP, because the client only sees the Java object provided by the service and,subsequently, all network communication is confined to that Java object and the service from whence it came.
When a service joins a network of Jini technology-enabled services and/or devices, it advertises itself by publishing a Java object that implements the service API. This object's implementation can work in any way the service chooses. The client finds services by looking for an object that supports the API. When it gets the service's published object, it will download any code it needs in order to talk to the service, thereby learning how to talk to the particular service implementation via the API. The programmer who implements the service chooses how to translate an API request into bits on the wire using RMI, CORBA, XML, or a private protocol.
The existence of the Java platform makes it possible to define the Jini networking technology which, in turn, enhances the value of the Java platform by making services available throughout the network. The Java platform specifies what is available on any particular machine that is running the platform. It defines a set of services (classes and the Java Virtual Machine) that exist on a particular machine that can be used by the programs running on that machine. The Jini technology extends this notion of a platform from a particular machine to the network that connects machines which are running the Java platform. Jini technology-enabled services are not necessarily resident on any particular machine in the network, but are instead available to all of the machines through the network. The services do not need to be everywhere, but instead only need to be somewhere on the network to be available to all of the participants in the network.
JINI and UPnP
Using the Jini Surrogate Architecture, Jini and Universal plug-and-play (UPnP) can work together. A UPnP device through a surrogate operating on its behalf could access a Jini technology-enabled network.
- Juxtapose (JXTA)
- Java Management Extensions (JMX)
- Simple Network Management Protocol (SNMP)
- Zero Configuration Networking
- OSGi Alliance
- Service Location Protocol