Enabling programmable ubiquitous computing environments: the DAIS middleware
MetadataShow full item record
Emerging ubiquitous computing scenarios involve client applications that dynamically collect information directly from the local environment by leveraging sensor network nodes opportunistically and unpredictably. Such scenarios deviate from existing deployments of sensor networks which are often highly application-specific and generally funnel information to a central collection service for a single purpose. A significant barrier to the widespread development of such flexible sensor network applications lies in the increased complexity of the programming task when compared to existing distributed or even mobile situations. Ubiquitous computing nodes are severely resource-constrained, in terms of both computational capabilities and battery power, and therefore the application development task must inherently consider low-level design concerns, such as reducing power consumption, minimizing communication in the network to extend the network’s lifetime, and handling the variability of devices’ capabilities and constraints. This complexity, coupled with the increasing demand for applications, highlights the need for programming platforms (i.e., middleware) that simplify application development. This dissertation reports on the DAIS (Declarative Applications in Immersive Sensor networks) middleware platform that enables the development of adaptive ubiquitous computing applications. Our approach focuses on minimizing communication and coordination to best ensure the network’s lifetime. DAIS attempts to localize data collection and sensor interaction to only the regions of the network required for the applications’ immediate data needs. At the programming interface level, this requires exposing some aspects of the physical world to the developer, and we accomplish this through novel programming abstractions that enable on demand access to dynamic data sources. We develop a pair of intuitive grouping abstractions, the scene (which enables local interactions) and the virtual sensor (which enables automatic abstraction of heterogeneous data), to define a coordination model that supports interactions in ubiquitous computing. We combine these abstractions with an expressive programming interface to create the complete DAIS middleware.