Today, plugging a new computer into a network is a major system administration task. In most TCP/IP networks, the system administrator must obtain the ethernet address of the device being added (a hexadecimal number like 8:0:20:1f:10:a) and assign that device an IP address (of the form 220.127.116.11). The network naming service must then be updated to assign a host name (like computer1) to the IP address. The Internet standard naming service commonly used to do this is the domain name service, or DNS. In many large corporations, DNS updates are only distributed once a day and it thus can take up to 24 hours after a new device is registered for it to be fully recognized on the network. This does not even start to address the ability of the new computer to access and run applications over the network. In some networks, the Dynamic Host Configuration Protocol (DHCP) is used to dynamically assign IP addresses on the fly to new hosts as they are plugged into specific networks. However, both DHCP and the evolving dynamic DNS protocols still require significant setup and configuration to be done ahead of time on both the name server and the client host. In order to expand the ability to participate in networks from roughly 100 million PCs today to the several billion microprocessor powered devices expected to be Java capable in a few years , a more spontaneous method of networking is required. In Jini technology, this is called discover and join.
Jini's discover and join protocol allows both devices and applications to join a network without either the device (application) or the network having to know anything about the other in advance. Here is how discovery works:
When a Jini enabled device is plugged into a network, it sends out a 512 byte multicast discovery packet on a well-known multicast port. Among other information, this packet contains a reference back to itself. The IP multicast protocol is used instead of a broadcast protocol for several reasons. Traditional naming services typically use a broadcast protocol because they assume that a name server is present on the local subnet. Most routers are configured to not pass broadcast packets to avoid quickly flooding networks with broadcast traffic. In addition, naming services like DNS predate the widespread usage of multicast protocols. Multicast packets, rather than being received by every host, are only received by hosts configured to listen on the particular multicast address being used. This significantly cuts down on network overhead. Like broadcast packets, however, the sender need only send out a single copy of the multicast packets to be received by many hosts.
The Jini lookup service listens on the multicast port. When the Discovery packet is received, Lookup uses the device's interface to pass an interface to itself back to the plugged-in device or application.
At this point, the new device or application can communicate with the Lookup service and vice versa. The first thing the device or application does is upload all its characteristics to the Jini Lookup. The process of uploading characteristics is the Join part of Discovery and Join.