Overall System Architecture The interaction between the mobile application and the backend server is depicted in the following diagram. The mobile application collects data from various hardware sensors (e.g GPS, accelerometer and radio), and upload them to the backend for further processing. Before uploading, portions of the data collected are processed by lightweight data-mining algorithms on the handset, like motion classification, drunkenness detection, etc. The backend server provides a means of long term persistent data storage for sensor data uploaded. Besides, equipped with much more powerful hardware, it performs more processor-intensive data-processing techniques (e.g. location clustering) on the data delivered from handsets. Both the uploaded and the processed data are stored in database. Upon client requests, the web-interface on the backend provides comprehensive graphs for tracking phone users' past activities, like step count, location travelled, people contacted, etc. Zooming into the mobile phone application, the figure below shows detailed building blocks. With a modular design, the mobile monitoring tool communicates with the Measurement Platform (MP) which in turn interfaces with hardware sensors (e.g. accelerometer, microphone) for data collection and network hardware (e.g. 3G, WIFI) for secure data upload to the backend. The mobile monitoring tool is responsible for many purposes:
The MP is a self-contained software module for many tasks like data collection, data upload, etc. containing components including system configuration, data logger, software sensor objects, measurement rule engine, and secure data uploader. System configuration sets various operational parameters for software sensors, the measurement rule engine, the secure data uploader, and the lightweight time-series data mining module. Data logger handles file operations to store sensor data time-series to phone storage as plain-text files. The maximum file size can be configured to facilitate eventual data upload transfer session. Software sensor objects are software encapsulations of hardware sensors including accelerometer (tri-axial gravity forces on the phone), radio (mobile base station statistics), GPS (user co-ordinates), system (battery usage, CPU utilization), WIFI (wifi access point usage) and microphone (ambient sound intensity). They provide a standardized software interface for application programming. It contributes the collected data to the caller procedure for further processing. Measurement rule engine provides the capability to trigger sensor sample by checking pre-defined rules (e.g. start scanning for the surrounding WIFI MAC addresses if the serving radio cell-id matches a predefined one). The secure data uploader manages the bulk data transfer of the sensor data log files from the mobile phone to the backend for archival and visualization, through HTTPS with a hash-based user authentication scheme. |