Pervasive embedded P2P systems running on (low capacity) devices that connect ad-hoc as participants of infrastructure-less mobile ad-hoc networks (MANET1), bring new service discovery challenges to service-based application developers.
(c1) A distributed implementation of the service discovery protocol should aim at saving the resource consumption of low capacity devices, which could otherwise consume all their resources by participating in the discovery protocol, and then become unavailable to provide (and to consume) services.
(c2) Fully matched services should be discovered as fast as possible, for increasing the probabilities of success of the service invocation.
(c3) To verify whether a service description satisfies (matches) a (non trivial) query or not can be a highly resource-consuming process thus better performed by powerful and nearby devices. Intuitively, contracts should be stored on higher capacity devices, and network traffic due to transmission of unmatched contracts should be kept as low as possible.
(c4) The discover-and-invoke steps should be fully automated and transparent to the human user.
(c5) Several middlewares, overlay networks and service-registries implementations (e.g., one for each type of description language) cannot be installed or (simultaneously) running on low capacity devices. Hence, a single solution supporting multi-language approaches should be provided.
The thesis presents a two-tiered approach to enabling enhanced service discovery (taking into account different types of information contained in service contracts) in embedded P2P systems for pervasive environments. In order to approach challenge (c1), we first present a super-peer based overlay network featuring a matching-capability aware routing of messages, capable of (o1) saving the resource consumption of low-capacity devices and (o2) keeping the overall network traffic low. For approaching challenges (c2), (c3) and (c4) we then present a service discovery protocol that exploits such underlying overlay network to (o3) suitably distribute service contracts on devices capable of analyzing them and then (o4) providing the client with the information needed for automating the invocation of services thus enabling enhanced service discovery even in nets mainly formed by low-capacity devices. We also present the adaptation techniques necessary to enable a service consumer to invoke (autonomously) the service(s) found by the process of service discovery. Finally, for approaching challenges (c5) our two-tiered architecture is capable of (o5) offering service discovery support for any type of service (and query) description-language available in the network without any additional cost with respect to the number of languages. Evaluations by experimental simulations demonstrate the viability of our proposal. The applicability in practice of such enhanced service discovery technique, will be presented in a proof-of-concept implementation of a killer application.