Bootstrapping location-aware personal computing

Pervasive computing is centered around the idea of provisioning computing services to the user anywhere anytime. If realized, pervasive computing can have a significant impact on our daily lives, ranging from the way we dress to the way we work and travel. Two key hurdles prohibit the widescale adoption of pervasive computing. First, human cognitive bandwidth is a limited resource; the burden of interacting with pervasive computing applications may outweigh the functionality obtained. Second, pervasive computing applications often assume a smart environment which does not exist today; dependency on a ubiquitous computing infrastructure hampers deployment. In this dissertation, we propose location-aware personal computing as a way of getting close to the pervasive computing vision with minimal overhead. Central to locationaware personal computing is the use of smart phones and location information. Smart phones personify a ubiquitous personal device that can execute client frontends, and connect wirelessly to backend services. Location information serves as a proxy for the user. Smart phones and location information can minimize both user involvement and dependency on a ubiquitous computing infrastructure. We investigate the challenges in bootstrapping location-aware personal computing, namely ad-hoc service provisioning, infrastructureless location determination, power management and location privacy. We present solutions for each and comment on how they can bootstrap location-aware personal computing. Provisioning locally embedded services to the user without prior knowledge of the environment is an important aspect of location-aware personal computing. This dissertation proposes the use of dual connectivity (i.e Bluetooth and 3G) on smart phones for discovering and provisioning local services to the user without any pre-configuration. A novel service provisioning protocol, called SDIPP (Service Discovery, Interaction and Payment Protocol), is presented and evaluated. SDIPP is implemented on top of a middleware called Portable Smart Messages. The design of Portable Smart Messages is presented. Experimental results show that SDIPP can discover and provision locally embedded services to the user within acceptable time limits. In order to enable location-aware personal computing, continuous location updates are needed both indoors and outdoors. Determining user location without installing extra infrastructure is a hard problem. This dissertation proposes use of light sensors and cameras on phones for sensing user location in indoor environments without requiring any infrastructure support. Low-level sensory input is converted into location information using simple vision and classification algorithms. Experiments show that location can be determined with fairly high room-level accuracy. The use of resource-constrained personal devices, such as smart phone, is central to location-aware personal computing. It is important to manage the limited resources on these devices. The most crucial resource is battery lifetime. This dissertation shows how location information can aid in battery management with smart phones as the case study. By storing past location traces of the user on the smart phone, future whereabouts of the user can be predicted. This information can be useful in estimating when the next opportunity for charging the phone will be encountered. The knowledge of when the user will charge the phone next can be instrumental in managing the limited battery lifetime on smart phones across multiple applications. Location-aware personal computing requires user location to be shared with untrusted third parties, such as web services. Releasing location information without breaching user privacy is a hard problem. This dissertation proposes a new information-flow control model, called Non-inference, for protecting location privacy of the user against untrusted services without compromising thequality of service. It is shown that Non-inference is undecidable in general but decidable for programs that satisfy uni-directional information flow. Non-inference is decided using static program analysis techniques. The main conclusion of this research is that the cooperative use of smart phones and user location can be instrumental in devising low-cost, easy-to-use and non-intrusive solutions for pervasive computing without requiring significant infrastructure support.