A Framework to Support Opportunistic Groups in Context-Aware Applications
Creators: name: DeFreitas, Adrian A.
Publisher: name: Carnegie Mellon University
Year: 2016
Subjects: Applied Computer Science

description: Context-aware computing utilizes information about users and/or their environments in order to provide relevant information and services. To date, however, most context-aware applications only take advantage of contexts that can either be produced on the device they are running on, or on external devices that are known beforehand. While there are many application domains where sharing context is useful and/or necessary, creating these applications is currently difficult because there is no easy way for devices to share information without 1) explicitly directing them to do so, or 2) through some form of advanced user coordination (e.g., sharing credentials and/or IP addresses, installing and running the same software). This makes these techniques useful when the need to share context is known a priori, but impractical for the one time, opportunistic encounters which make up the majority of users’ lives. To address this problem, this thesis presents the Group Context Framework (GCF), a software framework that allows devices to form groups and share context with minimal prior coordination. GCF lets devices openly discover and request context from each other. The framework then lets devices intelligently and autonomously forms opportunistic groups and work together without requiring either the application developer or the user to know of these devices beforehand. GCF supports use cases where devices only need to share information once or spontaneously. Additionally, the framework provides standardized mechanisms for applications to collect, store, and share context. This lets devices form groups and work together, even when they are performing logically separate tasks (i.e., running different applications). Through the development of GCF, this thesis identifies the conceptual and software abstractions needed to support opportunistic groups in context-aware applications. As part of our design process, we looked at current contextsharing applications, systems, and frameworks, and developed a conceptual model that identifies the most common conditions that cause users/devices to form a group. We then created a framework that supports grouping across this entire model. Through the creation of four prototype systems, we show how the ability to form opportunistic groups of devices can increase users and devices’ access to timely information and services. Finally, we had 20 developers evaluate GCF, and verified that the framework supports a wide range of existing and novel use cases. Collectively, this thesis demonstrates the utility of opportunistic groups in context-aware computing, and highlights the critical challenges that need to be addressed to make opportunistic context sharing both practical and usable in real-world settings. The contributions of this thesis are: 1. A conceptual model, based on an analysis of prior literature, which describes the conditions under which users and/or devices form and work in groups. 2. An implementation of the Group Context Framework, which highlights the software abstractions and architecture needed to support all of the group types identified in our conceptual model. 3. A demonstration of the value of opportunistic groups in context aware computing, through the creation of four major systems and numerous smaller applications. 4. A validation of GCF’s robustness, through an examination of 65 ideas submitted by 20 developers. 5. An examination of the challenges associated with utilizing opportunistic groups in context-aware applications, based on our own experiences using GCF, as well as from issues raised by developers from academia and industry.