Building Mobile Sensor Networks Using Smartphones and Web Services: Ramifications and Development Challenges

Creating a large-scale sensor network has traditionally required physically deploying and managing many customized sensor nodes. Harvesting sensor data efficiently has required developing complex networking techniques [4]. Moreover, once sensor data was collected, substantial effort was needed to process and visualize the data, or to take responsive actions. Physical upkeep of the sensor nodes required teams to visit and maintain sensors deployed in the field. Modern smartphones are sophisticated computing platforms with complex sensor capabilities, such as detecting user location, recording high-quality audio, recording ambient light, sensing geomagnetic strength, and sensing orientation. Due to widespread use of smartphones, it is now possible to create largescale sensor networks by deploying applications on end-user devices to collect and report sensor readings back to servers, using built in cellular network technology. End-users also have an inherent interest in maintaining their phones, alleviating researchers, operators, and users from much of this burden. Apple has sold over 13 million iPhones [1] and roughly 1 million HTC Google Android-based phones have been sold. With this many smartphones on the market, the size of sensor networks could easily be in the hundreds of thousands. Much previous work on sensor networks, such as environmental monitoring and first-responder systems, can be adapted to mobile smartphones, and likely achieve more dispersion and adoption per unit of effort than conventional methods of deploying mobile sensor networks. After sensor data has been collected, it must be processed, visualized, and shared with users. Web service application programming interfaces (APIs) are another emerging trend that can help in this task. For example, Google offers public services for geocoding addresses, sharing pictures and video, displaying maps, and overlaying data across satellite imagery. Moreover, some services, such as Google’s App Engine and Amazon’s EC2 compute cloud, offer free or low cost computational grids for analyzing data. Utilization and composition of web service APIs has allowed rapid application development. Using web services, and the advanced computational power of smartphones, applications can contain real-time information filtered using the metadata of individual users (such as location, relation to wrecked user, and application settings). Data from multiple users can be combined in an arbitrarily complex manner, and used in conjunction with available web services to create powerful applications involving real-time, location-aware content. The combined data can also be shared through content distribution networks, such as YouTube. This chapter presents the challenges and benefits of developing large-scale sensor-based applications using smartphones and web services. First, we discuss how smartphones, along with web services, can be used to aggregate complex sensor data provided by users. Second, we address openly available web services for displaying the data, performing complex calculations, and sharing it with other smartphone users and first responders. Next, we present the challenges of using publicly available services and untrusted end-user smartphones for mission critical applications, particularly the challenges resulting from services not guaranteeing reliability. Finally, we look at the software engineering ramifications of building sensor-based applications on smartphone platforms and public web services.