130 likes | 156 Views
What is Context-Aware Computing?. Some definitions: Context: The physical and social situation in which the person/ device is a part of. Example Contexts: time of day, location, other people/devices, temperature, sound, light/vision, motion, network/internet, etc.
E N D
What is Context-Aware Computing? • Some definitions: • Context: The physical and social situation in which the person/ device is a part of. • Example Contexts: time of day, location, other people/devices, temperature, sound, light/vision, motion, network/internet, etc. • Goal of Context-Aware Computing: Acquire and utilize context from a computer device in order to provide services that are appropriate given the acquired context.
Navigator Application • We want to build a navigation aid that will give a person’s location and give directions to some destination. • Contexts that we need: • Location • So, we need to build an app that will be able to read in context from a location sensor, such as a GPS device.
Navigator Application (cont.) • We now want to add more context to our existing application, and share that context with other people. • Modifications: • Add motion sensor • Discover other devices • Share context • Problems: • Is the application extensible? • If so, is it easy to add context? • Should we re-architect the app? • Should we start from scratch?
Party Finder • Now we want to build an entirely new context-aware application. We want to find out if our friends are at a party. • Contexts: • Sound • Vision/light • Motion • Location • Share context • Problems: • How do we obtain such context? • How do we go about sharing?
Solution: Create a Middleware • Notice that there are needs that context-aware applications have in common: • Access to sensors that provide context. • Discovery of other people/devices around us. • Ability to share context with other people/devices. • Solution: Create a middleware that will provide all of the above features. Advantages of a middleware: • Maximum code reuse. • Lightweight applications. • A common language/description for context. • Rapid development of context-aware applications.
CAT: Context-Aware Toolkit • CAT is a middleware for context-aware applications. It provides: • Easy access to all context from local sensors. • Special Interest Groups (SIG) for sharing context. • Applications can create virtual context. (soft sensors) • History of all context can be saved. • Prediction future context. • Discovery other agents. • Communication with other agents.
CAT: Context-Aware Toolkit - Sensor Component • CAT creates a hierarchy of all sensors that exist on the device that it is running on.
CAT: Context-Aware Toolkit • The Sensors in CAT then generate Context events, which applications can listen to. Available Context includes: • Location, sound, light, and any other sensor data. • Discovery of other agents. • Incoming communication from other agents. • Shared context from other agents. (remote sensing) • CAT applications also have access to several tools for: • Creating SIGs. • Joining SIGs. • Sending messages/data to other agents. • Accessing history/prediction of local and remote context.
Conclusion • Retrieving context and sharing context is now simple and uniform for all context-aware applications. • Applications like Navigator and Party Finder can be rapidly developed with CAT, and developers need very little context-aware experience. • CAT itself is extensible, giving developers the ability to add new sensors and context types.
References: • “Introduction to Context-Aware Computing” Thomas P. Moran, Paul Dourish. IBM Almaden Research Center, University of Califormia, Irvine. Special Issue of Human-Computer Interaction, Volume 16, 2001. • “CAT: Context-Aware Toolkit” Jason Prideaux, Stephen Fickas. Tentative Release: Spring 2004. • http://www.cs.uoregon.edu/research/wearables/CAT