A Survey of Context-Aware
Authors : Guanling Chen and David Kotz
Presented By: Sriram Sridharan
Why Context Aware ??
A mobile computing paradigm that lets the application
discover the contextual information such as user
location, time of day , user activity etc.
Categories of context [ proposed by Schilit]
Computing Context - such as network connectivity ,
communication bandwidth , nearby resources such as
printers, workstations etc.
User Context - such as user’s profile, location etc.
Physical Context – such as traffic conditions, temp etc.
Context is the set of environmental states and settings
that either determines an application’s behavior or in
which an application event occurs and is interesting to
Different context values can be combined together to
obtain a more better understanding of the current
Context History - can be very useful source of
information that can be utilized.
Context Aware Computing
Types of Context Aware Computing :
Active Context Awareness : an application automatically
adapts to discovered context, by changing the
Passive Context Awareness : an application presents the
new or updated context to an interested user or makes
the context persistent for the user to retrieve later.
Sensing the Location
Outdoors : the most common and widely used
mechanism is Global Positioning System [GPS].
GPS cannot be used due to multipath reflection of
signals, that makes it unreliable.
Technologies and system are built using Infrared [IR].
RF transmitter, ultrasonic and radio signals.
These technologies work fairly better in indoor
In certain cases, a combination of two signals is utilized
to achieve better accuracy.
Hybrid : mostly based on wireless LAN technology that
are deployed in most of the metropolitan area. These
can be used both indoors as well as outdoors.
Another new interesting approach is to take advantage
of the mobile IP protocol.
When mobile hosts enter a new zone, it is assigned a
new temporary IP address from the FA server.
By installing a context manager on the same host as FA
server, context of the current zone where the user is can
Sensing Low-level Contexts
Time : can be easily obtained from the built in clock of the
Nearby Objects : if the system records the locations of
people and other objects, it is easy to figure out who and
what are near us by just querying the location database.
Network Bandwidth : the system is notified when the
network bandwidth changes by the context aware
Orientation : can be determined by either two mercury
switches or placing three transmitters at non-collinear points
on the body.
Key Aspects to watch out for !
Adding all these sensors is going to add weight and
bring down the battery !
So, sensors must be small and unobtrusive.
User should have control to leave behind unnecessary
Also, these sensors can be deployed as public
infrastructure and provide contextual information as
Sensing High-Level Contexts
Applications are interested in obtaining high-level context
information such as user’s current activity.
However it’s a big challenge.!
One way to obtain this is to use camera technology and
Another way is to access the user’s calendar.
Third method is to use Artificial Intelligence techniques to
recognize complex context by combining several simple low-
Sensing Context Changes
Many applications would be interested in being
notified about changes of a context.
Context source monitor polls the current context and
sends the changes to some context service that has a
publish- subscribe- notify interface.
Polling rates of all these systems can be optimized in
such a way that they almost sync with the changes,
which would help to improve battery lifetime.
There are typically two location models :
Symbolic Models : representing location as abstracted
Geometric Model: representing location as coordinates.
For scalability and abstraction, locations are organized
hierarchically in both models . For example by using R-
tress index etc.
They are used to express and exchange context information in the
Key-value pairs : environmental variable acting as the key and the
value of the variable holding the actual context data.
Tagged Encoding : contexts are modeled as tags and
Object-oriented Model : contextual information is embedded as
states of the objects and the object provides methods to access and
modify the states.
Logic based Model : contextual information is expressed in a
domain centralized database using an entity- relationship data
It is mandatory to decouple the application and the
actual context sensing part in order to avoid complex
computation and overhead at the application side.
So a middle ware is introduced between the low-level
sensor data and the application.
Typically there are two approaches :
The simplest way to decouple is to use a centralized
context server, which would provide contextual
information to the applications.
Instead of maintaining all context information in one
centralized place, a distributed architecture allows a
context to be held at several places to avoid potential
Security and Privacy
One of the main concerns in this area is establishing
Apart from providing contextual information, the
information must be protected to prevent leaking.
Many people would not like to be monitored regarding
their location etc. Thus it is important to address these
privacy issues in context aware computing.