Context-awareness has been a topic of research for many years. With the advent of smartphones, as well as the increasing popularity of consumer-oriented wearable sensors such as smartwatches and heart rate monitors, context data are becoming more readily available. Developing context-aware smartphone applications remains a challenge because of the heterogeneity of context data sources, as well as the complexity of inferring high-level context data. Context data provisioning middleware enables the development of context-aware smartphone applications without having to consider the complexity of context reasoning or different context data sources.
This dissertation provides the following contributions: 1) a taxonomy of sensors that remedies problems with the previous definitions, 2) definition of Quality of Context Service which helps define quality attributes of context data providers, 3) three generic architectural models for context data provisioning middleware, 4) a context data provisioning stack that describes how the middleware is logically structured, 5) descriptions and comparisons of existing context data provisioning middleware for smartphones, including our own ManySense middleware, 6) description of the design and implementation of ManySense, 7) an algorithm for computing a distance measure between an application’s QoCS requirements and the QoCS attributes of a context data provider, 8) an extensible query language architecture which allows adding support for new query languages easily, and 9) evaluation of the performance, extensibility and accessibility of ManySense.
Through our evaluation we see that ManySense performs well under load and causes a minimal impact on the smartphone’s CPU, power, and memory usage. ManySense is also deemed extensible and accessible through user testing. The algorithm for computing a distance measure between an application’s quality requirements and the quality attributes of a context data provider is also evaluated through performance testing.
Based on the evaluation we claim that ManySense achieves its design goals of extensibility and accessibility, and can be used by context-aware smartphone application developers to gain easier access to context data.