Thursday, April 2, 2009

Review: BonAHA - Service Discovery Framework for Mobile Ad-Hoc Applications

This article proposes a framework for service discovery. It is based on the mutlicast DNS (used also by apple bonjour). BonAHA as its name indicates is used for Ad-Hoc applications. (Bonjour for Ad-Hoc Application).

Service discovery protocols in Ad-Hoc require the developer to add network monitoring, node arrival/departure in/from the network. Applications need to be aware of such changes in a such mobile and dynamic networks.
However Bonjour is not suitable for Ad-Hoc networks due to the absence of a state view of the network.
BonAHA uses a concept of service. Application can register/listen to a particular service on a network. Service names are DNS-like.
Services are discovered by instantiating a service object and registering it to respond to network events.

Applications announcing a service follows these steps:
* Create a service object with the name of the service
* Set any metadata associated to the object
* Register it

Applications listening to service announcements follows these steps:
* Create a service object with the name of the service
* Set an event handler object for this service
* The class handling events for the service will handle events corresponding to node updates.
* Metadata associated with that node can be retrieved from the nodes.

The BonAHA API has two classes and one interface:
Class Bservice: allows to construct a service instance.
Interface BListener: handles node entry/update and departure.
Class BNode: correspnd to a node in the network offering a service and exposes metadata such as host name, host address, service name etc.



This article proposes a framework for service discovery and an API to allow developers to concentrate on the application part without handling the topology modifications.
Some issues remains unclear:
Services are not published on a central node due to the Ad-Hoc characteristic.
A node will listen then to service announcements. This means that it is not aware of services currently available in the network because it arrived after the announcements.
When registering a new services, announcement is broadcasted over the whole network? This does not results a huge overhead for every service announcement.
Can we use DHT table approach to store metadata associated to services available on the network?
What is the cost for maintaining service's updates due to node arrival/departure?

Link to the article

No comments:

Post a Comment