Barbara Burrell, Bill McCarty, Arthur Yount
What is Jini?
Jini connection technology is based on a simple concept that devices should work together. No drivers to find, no operating systems issues, no weird cables and connectors. It is designed to facilitate the communication of cellular phones, pocket-sized computers, pagers and other devices over computer networks. In simple terms, itís really a Java program that serves as a translator between the device and the rest of the devices on the network (see Jini Technology below).
Jini was introduced by Sun Microsystems in January, 1999. The first major step in bringing computing technology to the world occurred when chips were first fitted onto circuit board in 1978. Programmers developed a series of programming languages that specialized in instructing networks of personal computers. They hit a wall with C++ because these languages could not program to and from different devices in a simple manner. Hence, Java was developed to describe the complex instructions from a series of light switches through its own language semantics. Even Java is limited when it comes to networked systems. Jini was five years in development on top of twenty years of research.
Bill Joy, Sunís co-founder and CEO, describes five areas of research and development that led to Jini. Remote Method Invocation: alone it fails, but it works within Jini. Object and information storage: figuring out how to store massive amounts of information and objects for a limited time is key to Jini. Transactions: transactions systems must allow immediate change. Distributed events: events are necessarily logical. Distributed security: good security enables trust. Joy points out that Jini resolved and brought together all these areas of Java.
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 that are organized 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 defines 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.
The runtime infrastructure uses one network-level protocol, called discovery, and two object-level protocols, called join and lookup. Discovery, illustrated in the middle of Figure 1, enables clients and services to locate lookup services. Join enables a service to register itself in a lookup service. Lookup enables a client to query a lookup service for services that can help the client accomplish its goals.
Architecture of Jini Technology
Discovery works like this: Imagine you have a Jini-enabled disk drive that offers a persistent storage service. As soon as you connect the drive to the network, it broadcasts a presence announcement by dropping a multicast packet onto a well-known port. Included in the presence announcement is an IP address and port number where the disk drive can be contacted by a lookup service.
Lookup services monitor the well-known port for presence announcement packets. When a lookup service receives a presence announcement, it opens and inspects the packet. The packet contains information that enables the lookup service to determine whether or not it should contact the sender of the packet. If so, it contacts the sender directly by making a TCP connection to the IP address and port number extracted from the packet. Using RMI, the lookup service sends an object, called a service registrar, across the network to the originator of the packet. The purpose of the service registrar object is to facilitate further communication with the lookup service. By invoking methods on this object, the sender of the announcement packet can perform join and lookup on the lookup service. In the case of the disk drive, the lookup service would make a TCP connection to the disk drive and would send it a service registrar object, through which the disk drive would then register its persistent storage service via the join process.
Figure 2 below demonstrates how a Jini federation can be composed using emerging communication technologies Ė such as JetSend, for communicating with cameras, and Bluetooth, for communicating over short range radio links Ė as front-ends for a distributed system.
Example of a Federated Community
Competition:Microsoft's Universal Plug and Play (UPP) is the companyís answer to Sun's Jini. UPP is a broad, instant-networking technology for everything from Web appliances to PCs and digital cameras. Microsoft is advertising that Windows 2000 will be UPP compatible when it is released.
The distinguishing feature between the Universal Plug and Play model and architectures like Jini is the API strategy. Jini uses APIs as the sole contract between vendors. Universal Plug and Play is built around open protocols and data formats. These protocols and data formats form the contract between vendors rather than the proprietary APIs defined by Jini. From an API perspective, individual platforms will implement APIs mapping to the protocols and data formats of Universal Plug and Play. So, Windows-based Universal Plug and Play implementations will provide device-specific and service-specific sets of APIs to speed the development of Universal Plug and Play-enabled applications on Windows. Similarly, vendors who want to implement Universal Plug and Play on other operating systems or devices will do so by adhering to the protocol standards, and may provide their own APIs targeted at the features provided by their operating system.HP's ChaiAppliance Plug and Play, a Java-based instant networking technology for Web appliances compatible with Microsoft's Universal Plug and Play (UPP) technology. ChaiAppliance Plug and Play -- a technology that will allow Java-based Web appliances to be discovered on an impromptu UPP-based network Ė is already available for developers.
HP and Microsoft's backing of Universal Plug and Play represents the most deliberate effort to create a rival architecture for Internet appliance connectivity. Some critics of Jini say ChaiAppliance Plug and Play seems to be a one-way bridge out of Jini land into the world of Universal Plug and Play.
A key difference between Chai and Jini, according to HP, is that Chai supports device recognition using Web standards such as HTTP and XML, rather than Java, which is used by Jini.Jini Community:
The Jini community promotes cooperation among vendors who usually compete against one another. Vendors and developers agree on an object-exchange mechanism. The model is self-organizing, community-based, democratic structure.
Two Phds, Gabriel and Goldman, have promoted "open source" development, in which programmers give away their work in the hope that others will improve and extend it. They have developed design principles based on pattern language as a way for the community to structure and govern itself. There are rules for the organization; 54 concise phrases accompanied with a few sentences of embellishment. For example, How should rivals come together? As if at a "dangerous watering hole." The community is divided into groups of concern: commercial and individual. Community-wide decisions are made through voting on proposals. To be a member of the community, each member must agree to the terms of the Sun Community Source License, which is used to protect the secured areas of the community site.
Backers of specifications for the Jini community aim to ease the chore of connecting future generations of smart devices, such as home appliances to a network, will combine their technology with Sun Microsystems Inc.'s Jini platform. For example, backers of the Home Audio/Video Interoperability (HAVi) specification will make their technology interoperate with Sun's Jini so that HAVi-compliant gear can access services over a Jini-based network. The following are some examples of emerging communication technologies that are operating within the Jini community:Bluetooth, the code name for radio technology that will wirelessly link small computing devices within 30 feet of one another. With Bluetooth, you could enter a room and wirelessly transmit data from a handheld device to a printer or a PC and collaborate with nearby colleagues. The Bluetooth SIG founders group, consisting of Ericsson, IBM, Intel, Nokia, and Toshiba. It can be used over cellular networks, hard-wired connections such as IEEE 1394, Universal Serial Bus, serial or parallel ports, and the Bluetooth wireless communications protocol. JetSend, the communications protocol is designed to do away with the need for a network server or a device driver to translate, for example, the message a PC or digital camera sends to a printer. Hewlett-Packard last week unveiled what it hopes will become a widely accepted protocol for passing imaging instructions across networks among a range of machines such as PCs, cameras, scanners, and printers.
HAVI, Home Audio/Video Interoperability defines key elements and functions of middleware, communications protocols, and application programming interfaces that will enable appliances such as televisions and camcorders to work together over a network in a home. HAVi will interoperate with Sun's Jini so that HAVI-compliant electronics gear can access services over a Jini-based network.
Managing a Printer
This example, depicted in Figure 3 is commonly sited in Jini and Sun literature. The particular example shows how alarms are forwarded from the Jini technology-enabled resource to the network management platform, and what actions are taken. First, the printer is connected to the network. Through the Jini technology and the Java Dynamic Management kit, the printer is discovered and automatically appears on the map on the network management platform. Second, the system administrator, via a pop-up window on the network management platform, accesses the Jini technology-based lookup server directory to recover the management application from the printer. Finally, when a problem arises, and a corresponding alarm is generated. One example might be "job too big." When this occurs, the job is cancelled from the network management platform, via the pop-up printer management application, and the owner warned of the cancellation. In addition, statistics on printer usage
Managing a Printer
Managing an NT Server
A second example often sited is managing an NT server. As shown in Figure 4, using the Jini technology-based lookup service, the system administrator discovers the NT server BIOS as the NT server is booted, and adds it to the map on the network management platform. When the inevitable server crash occurs, a corresponding alarm is generated to the network management platform. Then the system administrator again uses the lookup service directory, this time to recover the management application from the NT server. Finally, a patch is downloaded to the NT server, using the management application. The NT server is rebooted, using the management application. When the NT server is finally up and running, a cancellation alarm appears on the network management platform acknowledging things have returned to normal.
Managing an NT Server
The US Army has already teamed up with Sun to implement Jini connection technology to support battlefield applications executed in the Army's Battlefield Command Systems (ABCS) Tactical Operation Centers (TOCs) worldwide. The company press release includes, "The Jini technology provided by Sun was chosen by the US Army to help further the goal of increased interoperability and free flow of information within the military's internal Information Systems."
Malaysian Software Company announced that it will soon launch what it describes as the first enterprise software package written to Sun Microsystems' Jini standard for distributed computing. Using Jini's capabilities, the Madura enterprise resource planning (ERP) suite will be delivered as a service over the Internet, rather than being sold or leased to customers.
Devices Thinking for Themselves
The future is limitless as Jini programs become more complex. In time, more devises will connect to a userís Jini network. For example, a cell phone or a pager might know when not to ring, perhaps during "Class" or the "Opera." This can be achieved by checking the
userís computerized calendar on a PalmPilot or PC. "[These devices] need to be aware, not only of other devices, but they need to be aware of where they are and when they are," says Sunís chief scientist Bill Joy, "so they can start doing things that make sense to us, as opposed to them."
To get there faster, Sun has already began licensing the technology to high-tech companies including, Hewlett-Packard, Kodak, Xerox, 3Com, and Ericsson. However for now, we will have to be content to have Jini run on a PC.