Context Server
An infrastructure for context aware applications
NB: The Context Server was an early prototype for what is now the Context Toolkit. You may want to check out the most recent work.
Overview
The Context Server infrastructure aims at facilitating the development and deployment of context aware applications.
It provides:
- encapsulation of sensors
- storage of context data (including history)
- access to context data through a network API
- abstraction of context data through abstractors
- sharing of context data through aggregators
- basic access control for privacy protection
Architecture
Our infrastructure is comprised of context servers that maintain a dynamic model of context data. Each context server manages a number of sensors, collects context data from these sensors and makes it available to interested clients. In our model, a context server runs on each user's workstation as well as workstations assigned to groups or rooms for example. The architecture of each context server is shown in the figure below.
The Context Management component receives or grabs data from the sensors and stores it in a database. It manages the history of each piece of context data. It also handles requests coming throught the Context Access API and provides basic access control.
The Context Access API is a network API: applications and clients of a context server may be local or remote and access the context server through remote procedure calls (RPC) expressed in XML and sent over HTTP. HTTP is the transport mechanism. XML is the marshalling mechanism. Using two open standards provides us with a very portable and interoperable RPC mechanism.
Finally, Context Synthesizers perform operations on context data to try to extract meaning and information at a higher-level of abstration. Context synthesizers are plug-in modules. Two basic types are supported:
- Context abstractors perform operations on local context data (e.g., deduce if a room is occupied by analyzing lighting and sound level data)
- Context aggregators perform operations on local and remote context data (e.g., gather the activity of every user's workstation to produce a live automatic In/Out board)
Sources of Context
The following sources of context are supported as of today:
- User Identity data (name, aliases, email address, home page)
- User Location data (city, state, country) read from the workstation configuration
- User Keyboard and Mouse activity (averaged over 15 minutes)
- Mailer information (number of messages unread, details of messages in Inbox)
- Webbrowser information (current URL)
- Room sound level (both instant and averaged over 5 minutes)
Last modified by Daniel Salber on Thu, Oct 29, 1998
This page was built with Frontier on a Macintosh