by Marco Conti, Franca Delmastro and Andrea Passarella
Pervasive networking devices, including mobile devices, generate an environment saturated by heterogeneous hardware and software resources. Novel mobile computing paradigms allow this environment to be organized and orchestrated. “Opportunistic computing” is a new approach that allows applications to take advantage of self-organizing services built, in a dynamic way, out of the mobile resources that are available in pervasive environments.
Modern mobile devices (smartphones, tablets, etc.) bundle a number of sensing, computing and networking resources, such as cameras, microphones, wireless interfaces and memory. The environment is becoming increasingly saturated with pervasive devices (fixed cameras and sensor networks, for instance) that also feature computation, sensing and networking capabilities. As a consequence, the environment features a multitude of heterogeneous resources with dynamic availability due to factors such as the users’ mobility. If orchestrated and managed through novel, appropriate computing paradigms, the availability of such resources has the potential to support innovative applications. The new mobile computing paradigm, “opportunistic computing”  aims to address this vision.
Opportunistic computing assumes the existence of a heterogeneous set of hardware and software resources contributed by users’ devices and by the devices available in the environment. It composes and makes them available to the users’ applications in a dynamic way, based on the current, situated needs of the applications and the mobility patterns of the users. Opportunistic computing is an evolution of opportunistic networking, a self-organizing networking paradigm that enables communication in dynamic pervasive networks. Each contact between mobile nodes is seen as an opportunity to forward content towards final destinations, such that end-to-end communication is supported even when simultaneous multi-hop paths between sources and destinations are not available. Opportunistic computing generalizes this approach, and views contacts between nodes as opportunities to exploit each other’s resources, represented as service components. Ultimately, thanks to the dynamic composition of these components, applications can enjoy far richer functionalities with respect to what is available in each individual node.
Developing the opportunistic computing concept and designing service platforms for future self-organizing pervasive networks is the goal of the EU SCAMPI project (Service Platform for Social Aware Mobile and Pervasive Computing ), which started in 2010 under the FP7 FIRE (Future Internet Research and Experimentation) initiative. The conceptual view on opportunistic computing of SCAMPI is described by the logical architecture of Figure 1.
The social layer at the bottom captures properties of users’ movements and their social networks. The structure of social relationships between users can be used to derive very good predictors of mobility patterns and of communication opportunities . Contact opportunities between users naturally translate into opportunities for utilization of their resources. In the intermediate layer a resource can be a CPU, a shared portion of memory, a sensor, a network connection, a piece of content, a function implemented as a piece of code, etc. A link between two resources in this layer represents the fact that these resources have a probability of “encountering” each other through opportunistic contacts, typically as a side effect of users’ mobility. The opportunistic service layer (OSL) is responsible for abstracting resources into service components. It provides a functional description of resources, their limits and capabilities, and is responsible for orchestrating the composition of multiple components into a single service, as required by the applications. Note that this may require passing input/output parameters between different nodes providing different components, which is achieved through opportunistic networking techniques.
One issue that we are investigating in SCAMPI is how information collected dynamically on users’ devices can be used to describe their context, and ultimately to optimize service provisioning in opportunistic networks. To this end, we designed and implemented CAMEO, a middleware platform focused on the management and elaboration of context information for opportunistic computing environments . The architecture of CAMEO is described in Figure 2, and is composed of two main building blocks. The Local Resource Management Framework (LRM-Fw), aims at implementing features related strictly to the interaction with the local resources of the device, both hardware (eg, embedded sensors, capacity, battery, wireless interfaces) and software (eg, communication primitives and programming libraries). The Context-Aware Framework (CA-Fw), aims at storing, elaborating and disseminating all the context information, and gathering a view on the resources available on other devices, which can then be composed according to the applications’ needs.
In order to test the functionality of CAMEO with real applications, we have developed a Tourist-MSN (Mobile Social Networking) application , designed to improve the tourist experience, for example, during a visit to a city, by collecting and sharing useful information and content possibly dynamically elaborated and enriched by other users themselves. Figure 3 provides some snapshots of the application interface. Let us consider, for instance, a couple visiting Rome; before leaving, they plan to visit several attractions in few days trying to optimize their time. While they are moving around the city they encounter other people that have just visited some of those attractions they are interested in. Such users may provide useful information and/or multimedia content related to the attractions they are visiting. Tourist-MSN can exploit the opportunistic computing functionalities to dynamically re-schedule the tourists’ visit based on the current conditions (eg, expected waiting times at queues). Moreover, it can allow its users to share each other’s resources in order to cooperatively generate multimedia content starting from elements (pictures, clips, video, etc.) they generate during their visit. More generally, through CAMEO, applications like Tourist-MSN can provide the users with functionalities such as (i) identifying users in the social context interested in a specific content, post or discussion; (ii) disseminating selected contents to interested users; (iii) generating ratings of available contents depending on the local user’s interests; (iv) establishing discussion forums with other users; (v) cooperatively annotating content and enriching it thanks to multimedia editing functionalities contributed by devices available in the environment.
 M. Conti et al: “From Opportunistic Networks to Opportunistic Computing”, IEEE Communications Magazine, Vol. 48, Issue 9, 2010
 M. Pitkänen et al: “SCAMPI: service platform for social aware mobile and pervasive computing”, Computer Communication Review 42(4): 503-508 (2012)
 V. Arnaboldi, M. Conti, F. Delmastro: “Implementation of CAMEO: a Context-Aware Middleware for Opportunistic Mobile Social Networks”, IEEE WoWMoM 2011, 20-23 June 2011.
Tel: +39 050 315 3062
Tel: +39 050 315 2405
Tel: +39 050 315 3269