This chapter surveys the approaches to service discovery that are relevant to mobile peer-to-peer systems in a variety of scenarios. More specifically, the authors consider approaches that may be employed in infrastructure wireless networks, single-hop and multi-hop ad hoc wireless networks. They analyze each approach based on design and functional aspects that have implications for its flexibility, scalability, and discovery efficiency. The authors also point out some promising research and development directions in the area of service discovery, with a special focus on ad hoc wireless networks. They comment on specific variants of such networks that are emerging in practice, and their reflections on the design of effective service discovery solutions.
A service in a distributed system is any remote software or hardware entity that a user1 of such a system wishes to use. Service discovery mechanisms allow the user to locate these entities in the system. Designing such mechanisms is particularly challenging for mobile distributed systems. Typically, mobile systems are built of portable devices, which are scarcer of hardware resources (e.g. slower CPU, less memory, limited I/O capabilities and energy) than stationary systems. Besides, mobile systems are more prone to intermittent connectivity. Therefore, these systems call for mechanisms that allow devices to interoperate casually or opportunistically, i.e. without prior assumptions regarding the surrounding environment. Casual interoperability may lead to administrative overhead, since services may become unavailable (or new ones may appear) in the system anywhere, anytime. Service discovery mechanisms must therefore function as seamlessly as possible, automating the delivery of service information, as well as the selection and configuration of such services within the system, thereby enhancing its usability.
Classical scenarios of service discovery for mobile systems include PDAs and laptops detecting nearby printers and/or high-definition displays for opportunistically improving their I/O capabilities. Such examples illustrate the typical case of a master-slave relationship between devices. Nevertheless, there are mobile systems in which devices may exhibit a P2P (peer-to-peer) servicing pattern—we refer to such systems as mobile P2P systems. Examples of scenarios in which such systems would be useful include:
E-learning. Consider the scenario presented in (König-Ries & Klein, 2002), in which a student connects her PDA to a wireless network in the university campus to download a certain article. Another device in the network provides the article in PostScript format. Nevertheless, the student’s PDA cannot display such a format. She then searches the network for a “PostScript2PDF” converter service. A third device in the network may provide this service to the student.
Emergency response. Consider a large rescue and medical team working in a natural disaster scenario, such as the one caused by the Indian Ocean tsunami in December 2004 or the earthquake in the Sichuan province of China in May 2008. In such scenarios, the seamless integration of services from on-site mobile devices may be crucial for rapidly achieving advanced forms of collaborative work, as for example to collect and automatically process information about groups of injured people (e.g. for triage) and thus better allocate rescue teams and medical resources.
Field research. Consider a team of hydrogeologists throughout a large semi-arid region, such as the Northeastern Brazil. Such a team can exchange data about underground water resources (e.g. hydraulic head) being collected by their mobile devices, and can use the computational resources of such devices for in-loco, preliminary numerical analysis on the collected data, so as to simulate and predict some aquifer condition of interest (e.g. the effect of irrigation developments). This application is an instance of a novel type of mobile P2P systems that has gathered momentum in the past few years—the mobile grids (Hwang & Aravamudham, 2004).
The aforementioned e-learning scenario illustrates a case in which traditional service discovery approaches would provide efficient solutions if there were an underlying network infrastructure. Nonetheless, the other two scenarios may happen at places or conditions where such an infrastructure may be—or may suddenly become—unavailable. In such scenarios, alternative service discovery approaches are clearly indispensable, since these scenarios demand the self-organization of nearby devices in such a way these devices can cooperatively forward packets from/to other devices.