People-centric computing and communications in smart cities

The extremely pervasive nature of mobile technologies, together with the user's need to continuously interact with her personal devices and to be always connected, strengthen the user-centric approach to design and develop new communication and computing solutions. Nowadays users not only represent the final utilizers of the technology, but they actively contribute to its evolution by assuming different roles: they act as humans, by sharing contents and experiences through social networks, and as virtual sensors, by moving freely in the environment with their sensing devices. Smart cities represent an important reference scenario for the active participation of users through mobile technologies. It involves multiple application domains and defines different levels of user engagement. Participatory sensing, opportunistic sensing, and mobile social networks (MSNs) currently represent some of the most promising people-centric paradigms. In addition, their integration can further improve the user involvement through new services and applications. In this article we present SmartCitizen app, an MSN application designed in the framework of a smart city project to stimulate the active participation of citizens in generating and sharing useful contents related to the quality of life in their city. The app has been developed on top of a context- and social-aware middleware platform (CAMEO) able to integrate the main features of people-centric computing paradigms, lightening the app developer's effort. Existing middleware platforms generally focus on a single people-centric paradigm, exporting a limited set of features to mobile applications. CAMEO overcomes these limitations and, through Smart- Citizen, we highlight the advantages of implementing this type of mobile application in a smart city scenario. Experimental results shown in this article can also represent the technical guidelines for the development of heterogeneous people-centric mobile applications embracing different application domains.