A Survey of Context

advertisement
A Survey of Context-Aware System
- The Past, Present, and Future
Sang-keun Lee
Intelligent Database Systems Lab
Seoul National University
Abstract
Realizing context-aware systems has become one of the most important issues, as it is considered as a key
driver for ubiquitous environment. Since nineties, there have been a wide range of existing context-aware
systems in history. In this paper, we present a survey of a number of existing researches on context-
awareness, focusing on context-aware systems and frameworks. Firstly, we outline a general process in
context-aware systems and explain design considerations of context-aware systems. Secondly, we describe
existing context-aware systems in history and provide comparison and trend analysis of the systems. In
conclusion, we summarize our work and suggest future work for better context-aware systems.
1. Introduction
Nowadays, the advanced network and the wide spread of mobile devices such as PDAs and smart
phones make computing paradigm more distributed and pervasive. In this environment, users expect to
get useful services and information via their mobile devices. However, because the number of services and
the amount of information have been also increasing rapidly, it is difficult and time-consuming for users to
search proper services or information.
A context-aware system is one that actively and autonomously adapts and provides the most
appropriate services or information to users, using the advantage of people’s contextual information
without much interaction. Realizing it is considered as a key driver for solving the problems presented
above, and there have been many researches on the topic since early 90s.
In this paper, we surveyed a number of existing researches on context-awareness especially focusing on
context-aware systems and frameworks. The rest of the paper is organized into following sections. In
section 2, we explain a general process in context-aware systems to understand the concepts and
functionalities of general context-aware systems, and we present the other design criteria of context aware
systems and related issues. In section 3, we present history of context-aware systems and summarize
several representative context-aware systems. In section 4, we compare several representative context-
aware systems and analyze the trend. In section 5, we conclude our work and suggest future work for
better context-aware systems.
2. General Process in Context-Aware Systems
Figure 1 A General Process in Context-Aware Systems
Context-aware systems are usually complicated systems, and they are responsible for many jobs such as
representation, management, reasoning, and analysis of context information. They provide their
functionalities through the collaboration of many different components in the systems. There are various
types of different context-aware systems, thus, it is hard to generalize context-aware system process;
however, generally, a context-aware system follows four steps.
First step is acquiring context information from sensors. Sensors convert real world context information
into computable context data. By using physical sand virtual sensors, the system can acquire various types
of context-aware information. After acquiring context information, the system stores acquired context data
into its repository. When storing context data, what kind of data model is used to represent context
information is very important. Context models are diverse, and each context model has its characteristics.
To easily use the stored context data, the system controls the abstraction level of stored context data by
interpreting or aggregating context data. Finally, the system utilizes the abstracted context data for
context-aware applications.
In the following sections, we explain how a general context-aware system processes each step and
discuss related issues. Figure 1 shows a general process in context-aware system.
2.1 Acquiring Context Information
Because of the diversity of context information types, context information can be acquired in many
ways. Physical sensors, which are hardware devices that convert physical analogue properties into
computable digital data, can be used for acquiring context information. According to the types of context
information, many different physical sensors can be used. For example, to attain location information, GPS,
Active Badge System, and IR sensors can be used. Microphones can be used to get audio context, and
cameras can be used to acquire visual context. In addition, motion sensors or pressure sensors can be
applied in context-aware systems for various purposes.
However, using physical sensors is not the only way of acquiring context information. Assuming a
context-aware application which recommends a music playlist based on user’s preference, weather
conditions of current location, and current location of users. In this situation, user’s preference can be
acquired by analyzing the user’s music play history, and the weather conditions of current location can be
attained by querying a web service provided by a forecasting site. Although these context can be acquired
without using physical sensors, there needs to software modules that perform as virtual sensors. Virtual
sensors acquire context information by analyzing various data or querying external sources. Explicitly
provided context information by users also can be used in a context-aware system.
2.2 Storing Context Information
Figure 2 Context Models
Most of context systems store acquired context data into their repository. Context models are closely
related to context storing. Many factors such as expressiveness, flexibility, generality, and computational
cost to process context-aware data depend on what kind of context model is used in the system.
Context information can be represented in many ways from very simple data model like key-value
model to complex ontological model. Schilit(1994) and Context Toolkit(1999) used key-value model to
express context information. Key-value model can be easily adopted in context-aware systems, but it has
limitation of representing complex structure of context information.
McCarthy(1997) introduced logic-
based context model that represents context information using facts and rules. Logic-based context model
has high mathematical formality and support for inferences. Many structured context data models are
introduced such as Mark-up scheme context model, object-oriented context mode, or context extension of
UML, ORM.
Ontological context model has been widely used recently. Many context-aware systems such as SOCAM,
CoBrA, CoCA adopted ontology as their context data model. Ontological context model has high
expression power and formality at the same time, and it is a suitable data model for representing the
relationships among context information and entities.
2.3 Controlling Context Abstraction Level
Context-aware system is responsible for controlling abstraction level of context information and
performs context abstraction in two ways – Context aggregation and context interpretation. Context
aggregation means that the system aggregates many low-level signals (raw data) into manageable number
of high level information. For example, a context-aware system converts thousands of temperature signals
into several keywords (e.g. ‘hot’, ‘cold’, ‘moderate’, ‘cool’, ’warm’) by context aggregation. Context
interpretation is another method that interprets context information and adds semantics. For example, a
context-aware system can interpret GPS signal into street name.
It is hard for context-aware systems to directly use the raw data provided by sensors. So, context-aware
systems translate sensed signals into meaningful data so that they can understand and use context data
more easily. Additionally, context-aware systems can reduce the number of context data and achieve
better performance by controlling the level of context abstraction.
If the context abstraction is separated from a context-aware application, then the context-aware
application does not have to know the details of sensors but still can use the sensed context data by the
sensors.
2.4 Using Context Information
Utilizing acquired and abstracted context information as useful information for services or applications
is the last step of the general context-aware system process. Context-aware systems use context
information for two purposes – context information as triggering condition and context information as
additional information.
Context information can be used as a triggering condition of an action. A context-aware system can use
context information as action triggering condition when it wants to trigger actions if current context
satisfies a specific situation.
To enhance the quality of service of application, context information can be used as additional
information for services or applications. For example, assume that a user sends queries to a information
server, user’s current context information can be used as a additional information for better results of the
queries. These two purposes of context information usage can be combined together.
We can use context information for many types of context-aware application. Below presents several
examples of context-aware application categories.

Context-Aware Personalization Providing personalized contents or information based on user’s
current context information (e.g. tour guide service)

Automatic Device Configuration Automatically setting up device’s configuration according to user’s
current situation (e.g. screen brightness of PDA)

Context-aware User Interface Optimizing user interface based on user’s current context (e.g.
emphasize icons that user may select)

Context-aware Suggestion Providing suggestions to users behavior based on user’s current situation
(e.g. warning dangerous situation)
2.5. Design Considerations of Context-Aware Systems
When designing context-aware system, we need to consider many aspects of context-aware systems.
Context-aware systems can be implemented many ways and can have different structure, depending on
what the development focus of the system is. In this section, we discuss several design considerations,
which are not mentioned in the previous sections, such as architecture style, handling dynamicity, privacy
protection, and performance & scalability.

Architecture Style
Figure 3 Context-Aware Systems Architecture Styles
Context-aware system’s representative architecture styles can be categorized into three - Stand-alone,
Distributed, Centralized Architecture. Figure 3 shows the simplified architecture diagram of each category.
Characteristics, advantages, and disadvantages of each are explained below.
–
Stand-alone Architecture A basic architecture that directly accesses sensors and does not
consider context sharing of devices. This architecture can be relatively easily implemented but has
limitations in that it can’t process device collaboration. This architecture is appropriate for small
and simple application or domain-specific application.
–
Distributed Architecture Context-aware systems, which have distributed architecture, can store
context information in many separated devices, and there is no additional central server. Each
device is independent with other devices, thus, context-aware system can ignore failure or
bottleneck problem and still can continue context-aware operations. Each device manages its own
context information and share context information with other devices by communicating with
other devices, thus an ad-hoc communication protocol is required. However, it is hard for a
device to know overall situation of every device when using ad-hoc communication protocols.
Usually mobile devices lack of resources and computation power, so, distributed architecture are
with limitations in dealing with computationally intensive applications.
–
Centralized Architecture (Context Server) Sensors and devices are connected to a centralized
context server that has enough resource and computational power, and context information is
stored in a centralized server. If a device needs to get other device’s context information, the
device queries the centralized server and gets the result. In this architecture, every communication
is performed by querying the context server, so the communication protocol can be relatively
simple than distributed architecture. By using a computationally powerful device as a centralized
server, many applications which require high resources and cost can be performed. However,
there is a disadvantage of this approach in that it is crucial if the centralized server fails or
bottleneck problem occurs.

Handling Dynamicity
Handling dynamicity is one of important considerations to make a context-aware system possible to
process sophisticated context-aware applications. Entities (people, devices, sensors, etc) varying from
simple sensors, resource-poor mobile devices to central server with high performance take parts to
process context-aware applications. At the same time, connections and disconnections of many devices
dynamically occur. A context-aware system should be able to deal with heterogeneous entities and
support for resource discovery.

Privacy Protection
Supporting privacy protection is another consideration for context-aware systems. Context-aware
systems autonomously gather information from the users, so some of the users may feel uncomfortable in
that the system can use or open their information without any notice. Thus, a context-aware system
should allow users to express their privacy needs. Context-aware systems should protect user’s context
information from illegal accesses and guarantee anonymity.

Performance and Scalability
In most cases, many operations for context-aware applications should be processed in real time, and a
sophisticated context-aware system has need of reasoning and inference functionalities which require high
computational cost and resource. Performance and scalability of a context-aware system is very important
so that the system instantly response to current context of users. Also communication protocol must
perform adequately with acceptable scalability.
3. History of Context-aware Systems
From domain specific context-aware systems or location-based systems to general and extensible
systems, there have been a wide variety of context-aware systems and applications. To understand how
context aware systems have been evolved since they were introduced, we present a review of several
existing context-aware systems and analyze the trend. We categorized existing context-aware systems into
three categories based on their characteristics and the time when they were introduced, and we named
each category 1st, 2nd, 3rd generation of context-aware systems.
From early 90s, several context-aware systems started to be introduced by many researchers. We
grouped the systems that introduced from around 1990 to 2000 and use limited numbers and types of
context information such as location and time into 1st generation context aware systems (e.g. Active Badge
System, Cyberguide, Sumi, etc). Most of them focus on specific domain applications or how to achieve
location information, and they have relatively simple architectures.
2nd generation context-aware systems tend to be more general than the 1 st generation context aware
systems in that they can process more various types of context information (e.g. Watson Project) and
support for rapid prototyping various context-aware applications. Context-aware frameworks like Context
Toolkit, Hydrogen, Aura, and Gaia can be used for implementing a wide range of context-aware
applications in many domains.
Since 2003, many of 3rd generation of context-aware systems have adopted semantic markup language
OWL as their ontology model so that they can insure better flexibility and share context information more
easily. Some systems started to focus on protecting privacy of users and achieving better performance and
scalability.
3. 1 1st Generation Context-Aware Systems
Since early 90s, many of earlier context-aware system researchers have developed location-based
service systems such as The Active Badge System[], Cyberguide[], Sumi[], Cheverst[].
They share common characteristics in that they provide information according to user’s current location.
In this period, many researchers focused on how to achieve user’s location. Many of the 1st generation
context-aware systems depend on specific domain such as call forwarding [], tour-guide[][], shopping
assistant[]. The components in these systems are often integrated into a single domain, and they can be
optimized by sacrificing the system’s flexibility and generality. Followings are the brief overviews of The
Active Badge Location System (location-aware system) and Cyberguide (domain specific context-aware
application)

The Active Badge Location System
Active Badge Location System is one of the representative location-aware systems. As explained above,
the system mainly focuses on how to achieve user’s location information. By using this system, the authors
present a call forwarding application which forwards phone calls to user’s nearest phone.
Active Badge Location system uses particularly designed tags, which emit unique identifications for
approximately a tenth of a second every 15 seconds. Sensor network installed in the building gathers the
signals from the tags that users hold, and a master station polls the sensors and makes context data
available to clients. The system supports for predefined operations (e.g. FIND, WITH, LOOK, NOTIFY,
HISTORY), and the command interpreter processes the operations requested by clients.

Cyberguide
Cyberguide is a tour-guide application which provides information, which may be useful for users,
based on user’s current location and time. To achieve user’s current location, Cyberguide combines two
mechanisms – GPS and IR sensors. The system has graphic user interface, which indicates user’s current
location on the map, and it keeps the history of places tourist have visited. Figure 5 shows the graphic
user interface of Cyberguide.
Figure 4 GUI of Cyberguide
3. 2 2nd Generation Context-Aware Systems
Although the 1st generation context-aware systems explained in the previous chapter consider only
limited types of context and focus on sensing context information, 2nd generation context-aware systems
focus on achieving more generality and supporting for various types of context information In addition,
context-aware frameworks that can be used for development of application in many domains started to be
introduced.
Budzik’s Watson Project[] shows an example that context information can be acquired without using
physical sensors. It uses user interactions between user and productivity application (e.g., word processors,
Web browsers, etc.) as context data.
One of early attempts of framework to support building context-aware applications is Context Toolkit[]
proposed by Dey and Abowd in 2001. Context Toolkit can support for various domains of context-aware
applications, and it provides context widgets that can be used as reusable software components for
accessing and interpreting context data while hiding details.
In 2002, Hofer proposed another early context-aware framework called Hydrogen [] that can deal with
various types context information. Context Toolkit and Hydrogen both are distributed architecture;
however, they have differences in that Context Toolkit uses a simple attribute-value tuple as context model
and Hydrogen uses Object-oriented context data model.
Roman’s Gaia Project[] in 2003 is different from other prior existing approaches in that it is similar to
traditional operating system. It consists of core services and a framework for building context-aware
applications and uses 4-ary predicates in DAML+OIL as its context data model.

Context Toolkit[]
Figure 5 Sample Configuration of Context Components
The Context Toolkit is one of the early attempts to developing a context-aware framework that aims to
develop reusable software components to make development of context aware applications easier,
inspired by the success of GUI development kits.
The Context Toolkit has a distributed architecture, but there needs to be a central discoverer that is
used for discovering available widgets, aggregators, interpreters. It uses attribute-value tuple as its context
data model, and stores context data and its history. The Context Toolkit provides a basic access control for
privacy protection of users by providing context ownership concept.
The Context Toolkit consists of context widgets, interpreters, and aggregators. Context Widgets are
distributed sensor units encapsulating the complexity of actual sensors from applications. They can be
used as reusable building blocks for context sensing. Context Interpreters interpret context information to
abstract low-level sensed information into high-level information to suit the expected needs. Context
Aggregators are responsible composing context information by subscribing to context information
provided by Context Widgets and Context Interpreter so that it can hide even more complexity about the
context.

Hydrogen[]
Figure 6 Overview of Hydrogen Framework
Hydrogen is an approach for another open and extensible framework to support context-awareness on
mobile devices. Hydrogen is similar to Context Toolkit in that the aim of Hydrogen is also providing
reusability of software components. It differentiates between a remote and a local context and allows
context sharing among devices so that sensed context information can be provided for more than the
device connected to the sensors. Hydrogen does not support for resource discovery and persistent storage
functionalities.
Hydrogen has a there layered architecture – Adaptor Layer, Management Layer, Application Layer. All
layers are located on one device, and there is no central server. Adaptor Layer is responsible for separating
context storing, sensing from other layers and provides the same context information to multiple
applications. Management layer is responsible for sharing context information with other devices using
peer to peer communication via WLAN, Bluetooth.
Hydrogen adapted object-oriented context model as its context model. Since the context model can
take advantage of inheritance, various context objects (e.g. Location Object, Device Object) can be
supported by inheriting the super class Context Object.

Gaia[]
Figure 7 Gaia Architecture
Gaia is an agent based ubiquitous software platform project which is aiming for providing user-centric,
resource-aware, multi-device, context-sensitive mobile services in active spaces, extending contextawareness to traditional operating system concept. Gaia coordinates heterogeneous software entities and
networked devices.
Gaia represents context data using 4-ary predicates in the format of Context (<Context Type>,
<Subject>, <Relater>, <Object>). Context Provider acquires context information from sensors or external
sources, and Synthesizer infers high-level context data from low-level context data. The inference is based
on predefined first order logic rules. (E.g. Context (Number of people, Room 2401, >, 4) AND Context
(Application, PowerPoint, is, Running) => Context (Social Activity, Room 2401, Is, Presentation))
In the Gaia system, Component Management Core manipulates creation, destruction, uploading of
components. As Gaia is an extension of traditional operating system to include context-awareness, Gaia
provides several kernel services in the system to support context-aware application in active spaces.
Especially, Presence Service identifies entities (E.g. application, service, device, and person) present in an
active space. Context File System incorporates context into the traditional file system so that Gaia can
store context information in repository. The file system attaches context to files and directories, so that
important data in current context can be easily retrieved. To adapt to their environment, applications can
query or register context information from Context Service.
Gaia does not focus on scalability in that Active Spaces are small sized and constrained environment,
and Gaia does not support for privacy protection.
3. 3 3rd Generation Context-Aware Systems
W3C announced the OWL (Web Ontology Language) in 2003. OWL is a semantic markup language
designed for the Semantic Web, but many context-aware systems adopted OWL as their context-model.
OWL is suitable to be used as context model, since it’s flexible, expressive, and suitable for knowledge
sharing. Since OWL is announced by W3C, Many of 3rd generation context-aware systems have adopted
ontology as their context-model (e.g. CoBrA, SOCAM, CoCA, etc). Some other systems in this generation
tend to focus on supporting for privacy protection (e.g. CoBrA, Context Fabric) and achieving acceptable
scalability and performance of the systems (e.g. Enhanced CoCA, SOCAM)
Chen’s CoBrA (Context-Broker Architecture, 2003)[] is an agent-based context-aware system and the
first context-aware system which uses OWL to model ontological context mode and privacy policy. In
CoBrA system, a centered resource-rich context broker maintains and manages the shared context data. It
is CoBrA’s strong point that it allows users to define privacy policy so that it can protect privacy of users.
SOCAM (Service-Oriented Context-Aware Middleware) by Gu (2004) is similar to CoBrA, because it also
aims to build a middleware for context-aware services and uses OWL to model its context model; however,
SOCAM adopted hierarchical approach for designing the context ontology. The ontology used in SOCAM
consists of upper ontology and domain-specific ontologies.
Although OWL seemed very suitable as context model and many systems adopted it, but it brought
new problems – scalability and performance of context-aware systems. In 2008, Ejigu proposed Enhanced
CoCA (Collaborative Context-Aware Service Platform) that combines ontology approach and relational
database approach to achieve achieves acceptable performance of system.
The Context Fabric proposed by Hong is context-aware system architecture primarily focusing on
privacy protection. The system provides supports for building privacy-sensitive context-aware applications
by letting users define privacy tags for each context tuple.

CoBrA[]
CoBrA(Context Broker Architecture)는 agent 기반의 아키텍쳐로써 intelligent space 내에서의 상황 인식
컴퓨팅을 가능하게
한다. Intelligent space 는
pervasive 서비스가 가능한 physical 한 공간이다.
CoBrA 시스템의 중앙에는 context broker 가 존재하여 기기들간의 공유된 상황 정보를 가지고 있으며
관리한다. 사용자가 들고있거나 입고있는 모바일 장치들이 agent 의 역할을 하게 되고 방안의 다양한
environment 들이 상황 정보에 반응하게 된다. CoBrA 는 크게 네가지 콤포넌트로 되어있다. – Context
Knowledge Base, Context Inference Engine, Context Acquisition Module, Privacy Management Module,
bottleneck 의 문제 해소를 위해 broker federation 을 제공한다. CoBrA 는 OWL 로 표현된 온톨로지에
기반한 상황 정보 모델을 사용한다. Inference Engine 은 Context Reasoning Module 을 가지고 있어서
상황정보를 Aggregate 하고 외부로부터 얻어낸 상황 정보로부터 추가 지식을 추론한다. Context
knowledge API 를 제공한다 – 상황 정보를 assert, delete, modify, query 할 수 있다. CoBrA 는 Rei 라는
이름의 flexible 한 privacy policy language 를 제공한다. 규칙 정의를 통한 상황 정보의 접근 권한의
유연한 제어가 가능하다.

SOCAM[]
SOCAM(Service-Oriented Context-Aware Middleware) 은 다양한 종류의 상황 인식 서비스 개발 및
프로토 타이핑을 가능하게 하는 framework 로써 centralized architecture 를 가진다. 중앙에 집중된 서버는
context interpreter 를 갖니고 있어서 다양한 상황 정보를 분산 환경으로부터 취득하여 추상화 하고
전처리하여 클라이언트에 넘긴다. 상황 인식 서비스는 SOCAM Architecture 의 최상위에서 동작하며
상황에 반응한 서비스를 제공한다. SOCAM 은 Service Locating Service 라고 불리우는 discovery
mechanism 을 가지고 있다. Context Provider 를 통해 상황 정보를 취득한다. SOCAM 은 OWL 로 표현된
온톨로지에 기반한 상황 정보 모델을 사용한다. 특히 SOCAM 은 상황 인식 도메인을 여러 개의
도메인으로 나누어 각 도메인에 low-level ontology 들을 정의함으로써 상황 정보 프로세싱 cost 를 줄인다.
Context Reasoning Engine 은 knowledge base 에 존재하는 정보에 대해 Reasoning 을 수행한다. 새로운
context 를 추론해 내고 consistency 를 보존한다. Jena 를 이용하여 구현되었으며. Rule 들을 명시할 수
있다.

Context Fabric[]
There are not so many existing context-aware systems which cares about the privacy of users, although
protecting user’s privacy is a very important issue.
Context Fabric 은 다른 시스템들과 다르게 사용자의 privay 보장에 초점을 맞추어 개발된 상황 인식
시스템이다. Confab 은 privacy-sensitive architecture 는 각 entity 의 상황 정보를 XML 형식의 튜플 형태로
infospace 에 저장 관리한다. Confab 은 프라이버시에 관한 추가적인 Operator 가 존재하여 inforspace 에
나오고 들어가는 튜플들의 Access control 을 수행한다. Confab 은 프라이버시에 많은 초점을 맞추고
있어서 나머지 requirement 들은 부족하다.

CoCA(2008)[][]
The objective in this work is to propose and investigate architecture for context-aware services focusing
on context reasoning in pervasive computing environment using semantic ontology and collaborative
approaches.
GCoM modeling deals with how context data is collected, organized, represented, stored and presented
CoCA service interprets and aggregates the low level context values to a more meaningful high level
context performs reasoning about the context and passes decisions about the actions to be triggered
stores knowledge and decisions corresponding to the context instance into knowledge repository for
future reference. Interface Manager Manages a UI and interface between the CoCA platform and other
modules Data Source Responsible to provide necessary data to the core service (GCoM)
Core Service Responsible to provide the core context aware service after reasoning on the components
Supplementary Service Knowledge discovery & Collaboration service Enhanced CoCA : a Collaborative
Context-Aware service platform HCoM : CoCA is based on Hybrid Context Management model
. Because current ontology engines cannot process computationally intensive high-level inferences,
researchers tried to handle this problem in many ways. SOCAM reduces the scale of context knowledge
and releases the burden of context data processing by separating upper ontology and domain-specific
ontologies.
. CoCA based on HCoM(Hybrid Context Management model). To achieve better performance, CoCA
uses ontology approach to manage context semantics and uses relational database approach to manage
context data. By combining these two approaches and loading only relevant data according to heuristics, it
4. Trend Analysis & Comparison
In summary, we find out that there is a tendency for previous researches to focus more on achieving
generality as time passes.
Most of earlier context definitions are defined as a set of example context types, but later definitions
are more general and wider. We can find the same tendency in the context-aware applications and context
models. Early systems use specific kinds of context such as location and are usually domain-specific
application systems, although later systems are usually general purpose context-aware systems that can
support various types of context. Context-aware systems tend to use simple context-data models (e.g.
attribute-value tuple) in earlier days, but later they use more complex context models (e.g. object-oriented
model, graph model). After W3C announces OWL, many systems adopt ontology as their context model.
Figure 1. Briefly summarizes the history of context-aware systems.
5. Conclusions
 Although there have been several attempts, we still need to work on “Privacy Protection”
“Performance & Scalability”
 Balancing Performance, Scalability & Intelligence is important
&
 Need to utilize historical data
 Add context-aware service layer to context-aware framework

Existing context-aware framework support context-aware application development

Service
–
A set of interaction between applications & entities(devices, context data, places,
people, and so on)

6. References
Service description storage, Historical service log
Download