CitiSense is a new kind of "citizen infrastructure" to monitor pollution and environmental conditions that users are exposed to in their daily lives in San Diego County. The system includes mobile phones and affordable, small sensors placed in the environment and carried by users, to collect data about pollutants such as ozone and carbon monoxide. The data is then used to provide real-time feedback to users and allow them to change their behavior for increased health and life quality. The data can also be shared with the back-end cyber infrastructure for further processing, modeling and learning, helping other stakeholders of the system better understand how diseases develop and to help coordinate efforts within a user's community to improve conditions.
CitiSense differentiates from previous projects of this sort in that it includes the design of a complete system that addresses issues of mobile power management, data security, privacy, inference with commodity sensors, and integration into a highly extensible and adaptive infrastructure comprising of Open Rich Services.
The design of CitiSense infrastructure is based on Open Rich Services architecture, which is based on the generic Rich Service architecture. The architecture is organized around a message-based communication infrastructure and is hierarchically decomposed into Rich Services. Three main entities in an Open Rich Service are:
- Rich Services. We distinguish Rich Application Services (RASs) and Rich Infrastructure Services (RISs). RASs provide core application functionality, for instance, sensing the environment. RISs reroute or filter messages defined by RASs. Examples of RISs include Power Management Service. A Rich Service can be composed of other Rich Services. For example, a mobile phone that acts as a Rich Service connected to the CitiSense backend infrastructure contains other lower level services, such as Security/Privacy service.
- Messenger and Router/Interceptor. The Messenger layer is responsible for transmitting messages between services. The Router/Interceptor leverages interceptor patterns to intercept message carried by the Messenger and reroute them appropriately.
- Behavioral/Control Connectors. An Open Rich Service allows two service/data connectors per component, a traditional abstract behavioral connector and optionally an orthogonal control connector used specifically for adaption and handling of views.
The architecture is optimal for services integration by supporting both "horizontal" and "vertical" services integration. The Messenger and Router/Interceptor provide horizontal integration by routing messages between Rich Services on the same level. The hierarchical structure gives a natural way of supporting vertical integration.
The architecture leverages a set of design patterns and architectural styles, including Composite, Façade, Observer, Mediator/Router, Pipes and Filters, and Recursive Control. The development model of Rich Service architecture provides the means to identify roles based on application requirements, and services that involve the interactions of those roles, thus leading to both logical and deployment level SOAs. It also provides an effective process to identify cross-cutting concerns early in the development, and incorporate necessary components for those concerns early in the development.
A central challenge posed by projects like CitiSense is to understand and optimize energy and performance tradeoffs in a multi-tier wireless sensing system that monitors the environment and selected physical parameters, while at the same time remaining capable of adaptive response. Unlike traditional sensing systems, CitiSense is to provide real-time monitoring and feedback by addressing the tradeoff between local processing and communication by deciding how much processing to do on which component of the system.
The data streams generated by individual users have serious privacy implications. CitiSense collects location data and more; sensors that capture heart rate, for example, could reveal not just where a user was but what he was doing there.
One way to balance the privacy needs of individuals and the data analysis needs of public health officials is to collect readings into a database and then aggregate and perturb the readings; the hope is that enough information can be obscured that individual privacy is not compromised, but not so much that data analysis is inaccurate.
Making inferences from noisy, sparse data coming from heterogeneous resources - not just body-worn sensors, but also stationary ground-based sensors, databases of personalized information, and archived data of air temperature trends - presents serious challenge. Another challenge is specializing inferences to the health condition and current behavior of each person in the environment. We propose that advances in machine learning are critical to building the Cyber-physical Systems, such as CitiSense.