Implementing Service Discovery Protocols in Home Network Systems

: Home networking systems are gaining increasing research attention in the recent period due to the huge efforts implied by major home appliance companies in order to equip future home appliances with networking services and capabilities. Service discovery protocols being an essential backbone in home network system development receive the majority of research efforts to provide robust and efficient home networks. In this paper the most popular service discovery protocols are reviewed in a comparative study discussing the advantages and disadvantages of each of them over the others.

layer is inserted on the networks. For example, the plug and play functionality provided by Bluetooth and the network bandwidth reservation functionality provided by ATM are not usually available on the top of the IP layer. Also, some appliances do not support the IP layer for connecting to other appliances and services. Moreover, each appliance may assume different control protocols and data formats to communicate each other [2].

Service Discovery Protocols
Service discovery protocols (SDP) are network protocols which allow automatic detection of devices and services offered by these devices on a computer network. Service discovery requires a common language to allow software agents to make use of one another's services without the need for continuous user intervention [3]. Below are the major service discovery protocols applied:

Jini
Jini is a service discovery technology based on Java, developed by Sun Microsystems. Because of the platform-independent nature of Java, Jini can rely on mobile code for interaction between clients and services. Lookup services provide catalogs of available services to clients in a Jini network. On initialization, Jini services register their availability by uploading proxy objects to one or more of these lookup services. The proxy objects are essentially "device drivers" written in Java-they allow the client to control the service. Protocols are included for connecting to lookup services with known locations and for dynamically discovering lookup services within multicast range. Once a client has contacted a lookup service, it can search for interesting services and then download the corresponding service proxy objects. In Jini, searching is based on the type of the proxy object generally specified using a Java interface and on sets of descriptive attributes [4].
The purpose of the Jini architecture is to federate groups of devices and software components into a single, dynamic distributed system. Jini systems provide mechanisms for service construction, lookup, communication, and use in a distributed system. Examples of services include devices such as printers, displays, or disks; software such as applications or utilities; information such as database and files; and users of the system. The heart of the Jini system is a trio of protocols called discovery, join, and lookup. A pair of these protocols -discovery/joinoccurs when a device is plugged in. Discovery occurs when a service is looking for a lookup service with which to register. Join occurs when a service has located a lookup service and wishes to join it. Lookup occurs when a client or user needs to locate and invoke a service described by its interface type (written in the Java programming language) and possibly, other attributes. The following steps show what interactions are needed among a client, a service provider, and a lookup service for a service to be used by the client in a Jini community: 1. Service provider locates a lookup service by multicasting a request on the local network or a remote lookup service known to it in priori.

2.
A service provider registers a service object and its service attributes with the lookup service. This service object contains Java programming language interface for the service, including the methods that users and applications will invoke to execute the service, along with any other descriptive attributes. 3. A client requests a service by Java type and, perhaps, other service attributes. A copy of the service object is moved to the client and used by the client to talk to the service. 4. Then, client interacts directly with the service provider via the service object. Jini connection technology consists of an infrastructure and a programming model which address the fundamental issues of how devices connect with each other to form an impromptu community. Based on Java technology as shown in (Fig.1), Jini technology uses Java Remote Method Invocation protocols to move code around the network. Network services run on top of the Jini software architecture [5].

) Architecture of Jini Connection Technology
 Embedded and uploaded. An embedded DCM forms part of a controller's resident software, whereas an uploaded DCM originates from an external source and is dynamically added to the controller's software.  Native and bytecode. A native DCM, implemented for a specific platform, may include machine code for a specific processor or may access platform-specific APIs. A portable DCM is implemented in Java bytecode.  Standard and proprietary. A standard DCM provides the HAVispecified APIs. It offers basic functionality but can control a wide range of devices. A proprietary DCM provides vendor-specific APIs in addition to the standard HAVi APIs. Such a DCM would offer additional features and capabilities over a standard DCM, but would control a narrower range of devices, perhaps only a specific device or model.

Discussion
As it is obvious from the service discovery protocols explained above that each one has its own advantages and drawbacks. In comparison, the following points have been found noteworthy. As related to Jini protocol, it's based on Java platform and has a number of advantages including that it provides simple service attributes that are suitable for a wide range of home appliances while other service discovery protocols may target specific appliances only.
One of the major drawbacks of Jini is that it is java platform dependent which imposes computational requirements that are over the capabilities of most home appliances which include only simple computational units for cost reasons.
On the other hand UPnP is a peer to peer service discovery protocol. One of its major advantages is that it provides high level service description capabilities in the form of XML profiles on the opposite of Jini. Also UPnP is based on TCP/IP which provides high interoperability and flexibility.
One of UPnP advantages is also a drawback from another side, as XML files provide high description capabilities they are also difficult to interpret by home appliances.
And last but not least HAVi's advantage is that it supports multi streaming communication throughout the home network, and this also can be stated as a drawback because this implies that it only targets audio and video devices while Jini and UPnP target a broader range of home appliances.