The Internet of Things (IoT) is emerging as the next big wave of digital presence for billions of devices on the Internet. Smart Cities are practical manifestation of IoT, with the goal of efficient, reliable and safe delivery of city utilities like water, power and transport to residents, through their intelligent management. A data-driven IoT Software Platform is essential for realizing manageable and sustainable Smart Utilities, and for novel applications to be developed upon them. Here, we propose such a service-oriented software architecture to address two key operational activities in a Smart Utility -- the IoT fabric for resource management, and the data and application platform for decision making. Our design uses open web standards and evolving network protocols, Cloud and edge resources, and streaming Big Data platforms. We motivate our design requirements using the smart water management domain; some of these requirements are unique to developing nations. We also validate the architecture within a campus-scale IoT testbed at the Indian Institute of Science (IISc), Bangalore, and present our experiences. Our architecture is scalable to a township or city, while also generalizable to other Smart Utility domains. Our experiences serves as a template for other similar efforts, particularly in emerging markets, and highlights the gaps and opportunities for a data-driven IoT Software architecture for smart cities.
@cite_43: In the near future, all our everyday things and objects will be both connected to the Internet and equipped with enough sensing, acting and processing capabilities to exploit the full potential benefits of the so called Internet of Things (IoT) paradigm. Even the simplest objects will become smart because they will be interconnected to other objects to share and collect data from the environments in which they are placed thus paving the way to novel application services, computing and communication scenarios.In this context, interoperability among different standards and communication technologies is still a significant challenge that we have started to address by proposing a smartphone-based mobile gateway acting as a flexible and transparent interface between different IoT devices and the Internet. The presented unified, high-level and extendible software architecture supports opportunistic IoT devices discovery, control and management coupled with data processing, collection and diffusion functionalities.A specific testbed on common smartphones with different hardware and software capabilities was deployed to evaluate the real feasibility of the designed solution measuring the system performance in terms of energy consumption, memory and CPU usage in high and low load scenarios. According to the obtained results, the implemented software architecture for multi-standard and multi-technology interoperation presents a reduced use of hardware resources in front of a relatively high energy consumption value, mostly due to the simultaneously active radio interfaces combined with a small battery capacity, that limits the smartphone lifetime. Nevertheless, the presented general approach is still remarkable because this latter aspect will most likely be exceeded, in a short time, thanks to daily technological advancements in both batteries and radio interfaces.
One of the key challenges of IoT networks and platforms is the plethora of co-existing and overlapping standards, and the need to interface across them. @cite_43 highlight the need to operate over diverse communications technologies and network protocols as requirements for opportunistic IoT scenarios. Specifically, they examine the use of smart phones as mobile gateways to act as a bridge between communication protocols like ZigBee, Bluetooth, WiFi and 3G 4G. This abstracts the data access by the applications and user interface from the underlying technologies. Such a model is well suited for generalizing our crowd-sourced data collection using mobile apps, and offers a parallel with the sensor data management in our Pi gateways.