JINI, also called as Apache River is another comprehensive product of Sun Microsystems that was developed to provide a programming environment for the distributed applications. Comparing to other network technologies of Sun Microsystems (ex: RMI), JINI helps us to deal with some of the powerful distributed computing concepts, evaluate system problems, resilience, security and dynamic assembly of service components.
Jini grew from the early works of Java to enhance the distributed computing. It intends to standardise “network devices” & “network computing” components. Technically, Jini is the name for a solid distributed computing environment that can offer “Network Plug & Play”.
Jini can be used for mobile computing tasks where a service/device may have connected to a network for a shorter period. It also can be used in rapidly changing network environments. Code mobility is a core concept of Jini platform and provides many benefits including the non-protocol dependence.
The word ‘Jini’ means ‘the devil’ in Swahili which derives from an Arabic word given for a mythological spirit. This is also the origin of the English word ‘genie’.
One of the goals of using Jini is to move away from disk-drive oriented approach into network-oriented approach. This enables centralised management of the hardware and software components that makes easy maintenance. Jini is similar to RMI that inherits Remote Procedure Calls (RPC) concept, but Jini is far more advanced than RMI. Main components of Jini includes the client, the server and the lookup service. These three are the building blocks of Jini API. The service is the resource that is available in the distributed environment to be found by Jini lookup-service. This can include physical devices (such as printers or disk drives) and software services. The client is the entity who use these services.
Sun introduced Jini in July 1998. In same year November some of the industrial giants joined with Jini. Since then, Jini has started to grow day by day. The idea of Jini 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 was available to download. Sun made agreements with wide range of technology companies to enhance Jini, both hardware-wise and software-wise. Some of those companies were: Axis, Canon, Datek, Epson, FedEx, Mitsubishi, Norwest Mortgage, Novell, ODI, Quantum, Seagate, Toshiba, Computer Associates, Oki, Salomon Brothers.
Network plug and work – architecture allows device-to-device networking from personal computers, networked home appliances, consumer electronics devices and wireless devices. It is a distributed, open-architecture protocol based on established standards such as the Internet Protocol Suite (TCP/IP), HTTP, XML, and SOAP.
Enables a service-based architecture (SBA) that promotes the ability to use of Web services from anywhere on the network based on its services. SBA is a natural evolution from the world of procedural and object-oriented programming.
Spontaneous networking is a term used to denote a concept of networking where devices form ad-hoc networks. Main difference of ad-hoc network from the regular network is, in an ad-hoc network devices may join and leave the network without any human intervention or any kind of configuration.
The three major parts to run a Jini system:
- The Jini Client—Anything that would like to make use of the Jini service.
- The Service Locator—Anything that acts as a Locator/Trader/Broker between the service and the client, and is used to find services in a distributed Jini system.
- The Jini Service—Any entity that can be used by a client program or another service (e.g.: printer, VCR, or a software entity like an EJB service).
Jini Proxy Service
Jini Proxy provides a controlled penetration in firewalls for Jini services and clients. Proxy joins two firewall enclaves, subject to an access control engine built on that used in the RMI Proxy. Services in either enclave are available to the other enclave. One of the enclaves can be the Internet itself.
When you plug a new Jini-enabled device into a network, it broadcasts a message to any lookup service on the network saying, in effect, “Here I am. Is anyone else out there?” The lookup service registers the new machine, keeps a record of its attributes and sends a message back to the Jini device, letting it know where to reach the lookup service if it needs help. So when it comes time to print, for example, the device calls the lookup service, finds what it needs and sends the job to the appropriate machine. Jini actually consists of a very small piece of Java code that runs on your computer or device.
Jini is a set of APIs and network protocols that can help you build and deploy distributed systems which organised as federations of services. A service can be anything that sits on the network and is ready to perform a useful function. Hardware devices, software, communications channels — even human users themselves — can be services. A Jini-enabled disk drive, for example, could offer a “storage” service. A Jini-enabled printer could offer a “printing” service. A federation of services, then, is a set of services, currently available on the network, that a client (meaning a program, service or user) can bring together to help it accomplish some goal.
Jini provides a runtime infrastructure that resides on the network and provides mechanisms that enable you to add, remove, locate, and access services. The runtime infrastructure resides on the network in three places: in lookup services that sit on the network, in the service providers (such as Jini-enabled devices), and in clients. Lookup services are the central organizing mechanism for Jini-based systems. When new services become available on the network, they register themselves with a lookup service. When clients wish to locate a service to assist with some task, they consult a lookup service. Jini’s lookup service appears to be a centralised model (though the communication between client and service can be seen as decentralised) that does not scale well to very large systems. However, the lookup service can be scaled by running multiple instances that listen to the same multicast group.
Jini technology will enable an infinitely connected network of services that anyone can use this simplest possible technology to participate into access the services. In many respects, Jini is actually what consumers and computer scientists alike imagined computer networks would be someday as easy to operate as a television, as persistent and reliable as a radio, as easy to connect to as a telephone dial tone, and as powerful as all of the devices connected to it.