JiniNetwork Service Location Embedded network devices use infrastructures, like Sun's Jini, to locate network-based services. Jini thrives because most embedded devices support Java. Gateways provide a link to embedded network devices that don't run Java.
Jini's dependence on Java is both an advantage and a disadvantage. On the positive side, Java provides a consistent execution platform for services. It also supplies access to other Java-based technologies. Examples include JavaSpaces and Java Remote Method Invocation (RMI), which are both part of Jini. On the other hand, a Java virtual machine (JVM) requires a significant amount of memory and processing power, making it unsuitable for smaller 8- and 16-bit platforms. These can still be used in a Jini environment, but they need a Java-based gateway.
Jini is designed to work with a range of devices, from portable units, such as digital cameras, personal digital assistants (PDAs), and cell phones, to gateways, printers, network-attached storage (NAS) devices, and even PCs. Jini works with most network transport protocols, although TCP/IP is the most popular. Jini can work with other technologies too, such as Bluetooth, JetSend (a service protocol for devices like printers), and Home Audio-Video interoperability (HAVi).
Jini services automatically register themselves with a Jini lookup service, so an application can use Jini to locate a service. Services use the same mechanism to utilize other services. Plus, Jini allows services to be located on the same device or network.
Architecture Jini devices broadcast only when trying to locate a lookup service on a locator device. Devices that provide a service register that service with a lookup server, while client applications locate a service by sending a lookup request to a lookup server. In response to a request, a client receives a service object used to invoke actions on the service provider.
Jini facilitates connections between services located on devices. For example, a Jini-enabled digital camera could download images to a Jini-enabled printer.
At least one lookup service is required, but multiple lookup services can be used. Lookup services also can implement other lookup services to locate services not registered in the local service database. This hierarchical architecture is significant because devices are part of larger networks, such as the Internet. It also is useful when clients are on the other side of a gateway or firewall and thus unable to locate a remote lookup service.
Attributes identify services. The service database stores these attributes so that clients can request a service based on a collection of them.
Jini provides more than just location services, which also separates it from other architectures, like Universal Plug and Play (UPnP). Jini supports remote invocation of services. It provides security and access control services, and it even supports complex transactions with a two-phase commit. These features are often built on top of other architectures instead of by using a consistent architecture and environment like Jini and Java.
Jini employs JavaSpaces. This technology provides distributed object access that may be employed by clients and services. Although JavaSpaces is comparable to CORBA, it requires a Java environment, as does Jini. JavaSpaces provides Jini's transaction and event support that simplifies distributed applications.