textEmerging 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.Electrical and Computer Engineerin