=Paper=
{{Paper
|id=Vol-114/paper-4
|storemode=property
|title=A Classification Framework for Storage and Retrieval of Context
|pdfUrl=https://ceur-ws.org/Vol-114/paper4.pdf
|volume=Vol-114
}}
==A Classification Framework for Storage and Retrieval of Context==
A Classification Framework for Storage and Retrieval
of Context
B.I.J. Siljee, I.E. Bosloper, J.A.G. Nijhuis
University of Groningen, Department of Computing Science
PO Box 800, 9700 AV Groningen, The Netherlands
{b.i.j.siljee, i.e.bosloper, j.a.g.nijhuis}@cs.rug.nl
Abstract. An increasingly important requirement for mobile and pervasive sys-
tems is the capability to adapt at runtime to a changing context; they must be
context-aware. Much current work in this field focuses on application-specific
solutions and ad-hoc approaches, and the lack of conceptual models for the de-
sign of context-aware systems hinders the development of more general and
complex systems. In this paper we present a classification framework for the
storage and retrieval of context, which supports the development of context-
aware systems. We demonstrate the usefulness of the framework by modeling a
number of context-aware systems.
1. Introduction
Small networked devices like Personal Digital Assistants (PDAs) and mobile phones
are rapidly becoming more common in every day living. They are cheaper, smaller,
more powerful and more ubiquitous than before. The fast changing environment of
these devices – combined with the increasing need for more intelligent and autono-
mous behavior – requires software that can adapt to changes in its environment. This
is what we call context-aware systems: systems that can keep track of their context
and change according to context changes.
The specific context of a system depends on its application domain. Schilit [1] di-
vides context into three categories:
• Computing context: available CPU time and memory, network connectivity,
communication costs and bandwidth, nearby resources such as printers, dis-
plays and workstations.
• User context: user’s profile, user’s location, and people nearby.
• Physical context: lighting, noise levels, traffic conditions, and temperature.
Chen [2] adds a fourth category:
• Time context: the time of day, and the day, week, month, and season of the
year.
A controlled and simple way to implement system changes is to stop, update and
restart the entire system. However, this is not always desirable or even possible. Mul-
tiple reasons for modifying a system while it remains running are:
B.I.J. Siljee, I.E. Bosloper, J.A.G. Nijhuis
• Mobile: Access to a system may be restricted, for instance when systems are ‘in
the field’. In this case systems cannot be updated through offline methods.
• Critical: Mission-critical systems need to remain running; they cannot be
stopped and restarted.
• Extensible: Some systems are capable of integrating third-party software at run-
time. This allows for functionality not available at release or startup time. An
example is internet browsers that must integrate a plug-in to display a movie in-
page.
• Comfort: Changing a system without restarting does not block users, and there-
fore increases usability.
We define systems that change at runtime, i.e. without stopping, as dynamic systems.
To further increase usability, effort is focused on the ability of a system to self-
detect when and what to change, and to make this change autonomously. These self-
adaptive systems measure the degree in which they satisfy their requirements runtime;
the variation in these measurements is usually due to a changing context.
Based on the above, we conclude that automatic dynamic systems, i.e. systems that
automatically change at runtime, need to be context-aware. Furthermore, the envi-
ronment of mobile devices changes rapidly. Not only the environment of such a de-
vice itself changes, but mobile devices may also move out of the environment they
were originally designed for, thus facing new environments. Dynamic, context-aware
systems should be able to adapt runtime to these unforeseen context changes as well.
A software architecture provides a global perspective on the software system in
question. Architecture-based design of software systems provides major benefits [3],
as it shifts the focus away from implementation details towards a more abstract level.
However, most research on context-aware systems focuses on ad-hoc solutions at the
implementation level, as designers lack abstractions to reason about context-aware
systems [4] [5]. This hinders the reuse of design paradigms and ideas.
The contribution of this paper is an architectural classification framework of the
abstractions that designers can use for the development of context storage and re-
trieval in an application-independent fashion. The framework gives an overview and
description of the different possibilities of context storage and retrieval, thereby pro-
viding designers with the possible choices and consequently simplifying design deci-
sions. We show the usefulness of this framework with two cases in which we design
context-aware systems.
The remainder of the paper is organized as follows. In the next section we present
the classification framework for context storage and retrieval. Subsequently, we pre-
sent the two cases, followed by related work. Finally, the paper is concluded.
2. Context Storage and Retrieval Classification Framework
The concept of context-awareness in systems can be divided into three separate
phases (see also Figure 1):
1. Monitoring of the environment
2. Interpretation of the monitoring data through the context model
3. Adaptation of the system to a changed context
A Classification Framework for Storage and Retrieval of Context
Probes monitor the environment and output raw data. This monitoring data needs to
be interpreted before it has a meaning useful to the system; without this meaning the
monitoring data rarely holds the context information the system needs. The interpreta-
tion is usually done through a context model, which translates the monitoring data into
context information. The context information is then used to reconfigure the system.
This division is common for most application-specific context-aware systems, for ex-
ample in GPS car navigation systems (e.g. Hertz [6] and Navman [7]), in mobile
handheld devices enhanced with sensors (e.g. the stick-e notes [5]), or in power sav-
ing applications (e.g. [8]).
Monitoring Context
Interpretation
data information
Environment through System
monitoring context adaptation
model
Fig.1: Three phases in context-aware systems. The monitoring of the environ-
ment by probes results in raw monitoring data, which is interpreted through a
context model. The resulting context information is used by the system to base
system changes on.
We present a classification framework for the storage of the context model and the
retrieval of the context information from the context model. For the monitoring of the
environment an excellent framework is given by Dey [4]. For the adaptation of the
system to changed context we refer to [9], as this falls outside the scope if this paper.
Context model storage
The context model is used to add context meaning to the raw monitoring data, and is
thus a necessary element for most context-aware systems. Several options exist for the
storage of the context model.
Degree of distribution:
• Central: the context model is stored at one central location, e.g. as one database
as in [10], or as one Hidden Markov Model as in [11]. In order to retrieve the
current context information, the monitoring data from one or more probes is
combined with the centrally stored context model.
• Distributed: the context model is stored at multiple sites, which can be net-
worked locations. We distinguish two cases:
1. Each location has an identical context model. This is useful for fault-
tolerance and speed of context information retrieval: as the context model can
be located near or inside the different systems that need it, the systems can
retrieve their context information faster.
2. Each location has a different part of the context model, and the context mod-
els from several locations must be combined for the complete context model.
B.I.J. Siljee, I.E. Bosloper, J.A.G. Nijhuis
An example is CoolAgent of HP [12], where the context model is distributed
among different agents.
Location relative to the system:
• Extrinsic: the context model is stored at a different location than the system it-
self; it is a service for context information. This way, systems are dependent on
the service to retrieve their context information. Many location-based context-
aware systems use an extrinsic service, as, for instance, a traffic jam information
service.
Such extrinsic context information services are useful when the context model is
space-consuming and it is not possible to locate the context model within the
system, for example in small, handheld devices. Extrinsic context model stor-
age is also useful when the context model needs to be updated transactional and
all the different devices must have access to the new context information at the
same time. However, systems are dependent on the service for their context in-
formation, which introduces an extra reliability risk.
• Intrinsic: the context model is stored inside the system itself. This is useful for
small context models, if the context model is different for each system, or they
may even be necessary if the systems cannot always reach a context service. An
example of the latter may occur in a battle situation, in which it is likely that
such a context service will at some point become unavailable due to attacks.
Context information retrieval
After the context model adds meaning to the raw monitoring data, the resulting con-
text information is used by the system. Different aspects in the process of retrieving
the context information from the context model are as follows:
Initiative:
• Context-push: the system receives its context information without needing to
send a request first every time it is needed. This is typical for, for instance, GPS
car navigation systems.
• Context-pull: the system explicitly requests the current context information, for
example, through service requests when the context model is extrinsic, or via a
function call when the context model is intrinsic.
Timing:
• Event-driven: systems only get their context information when some event oc-
curs. This is usually the case when context information is discrete. An example
of this is a context change caused by a person walking into a different room, or a
mobile phone moving into a different cell. A non-discrete example is of a run-
ning program that has the available system memory as its context. When a sec-
ond program is started that uses a lot of system memory, less memory is avail-
able for the running program. This is the event on which it responds by using
less memory-intensive, but slower, versions of its components.
• Periodic: at certain scheduled points in time the context information is retrieved
or received. This is suitable for continuous context information.
A Classification Framework for Storage and Retrieval of Context
History:
• Absolute: context information is taken at absolute points; previous context in-
formation is not used. GPS navigation systems, for instance, only consider the
current location.
• Relative: the difference of the context information over time is important.
Therefore the context information history must be stored and must be possible
to retrieve. This may be more space and time consuming.
Information presentation:
• Explicit: The raw monitoring data is the context information; no context model
is needed for interpretation. The raw data presented to the system explicitly
states the context information and the system directly uses this data as-it-is.
• Implicit: The system infers the context information from its input data by using
a context model.
Dynamism of Context Models
Not always every possible environment of a system can be foreseen at system devel-
opment time. The environment of a route planner for example includes highways.
When new highways are built after deployment of the route planner, the route planner
does not show the shorter route that is now possible. These unforeseen changes can
result in a context model that no longer interprets the monitoring data accurately. Dif-
ferent degrees of dynamic adaptation capabilities of a context model are:
• Static: the context model never changes. This means that the same monitoring
data always results in the same context information.
• Updatable: it is possible to update the context model.
• Dynamic: the environment changes over time, and the context model continu-
ously adapts to these changes at runtime, i.e. it is dynamic. For instance, context
models consisting of adaptive neural networks keep on learning during opera-
tion.
Figure 2 shows a schematic overview of the framework.
B.I.J. Siljee, I.E. Bosloper, J.A.G. Nijhuis
Central
Degree of distribution
Context model Distributed
storage
Extrinsic
Location relative to system
Intrinsic
Context-push
Initiative
Context-pull
Event-driven
Timing
Periodic
Context Context retrieval
Absolute
History
Relative
Explicit
Information presentation
Implicit
Static
Dynamism of context Updatable
models
Dynamic
Fig. 2: A classification framework for the modeling and retrieval of context.
3. Context-aware systems
In this section we demonstrate how to use the classification framework presented
above. We describe two cases of context-aware systems, and for each case we give
the corresponding architecture in terms of the framework.
3.1 Tourist Navigation System
Situation
A local government wants to rent handheld devices with city maps to tourists, ena-
bling tourists to find their way to the city’s tourist attractions. The handheld device
contains a map of the city, an accurate location sensor, and a digital compass. The
tourist simply selects the desired destination, and the handheld device displays direc-
tions to get there from wherever the tourist is located, keeping the directions accurate
while the tourist is moving.
Furthermore, the city is expanding rapidly, attractions can be closed, walking
routes blocked; this would all result in continuously inaccurate directions from the
handheld devices. Therefore it would be desirable to update the handheld devices
regularly.
Architecture
The architecture of such a system is given in Figure 3. The system consists of a
probe that continuously feeds sensor data to a route component. The route component
A Classification Framework for Storage and Retrieval of Context
contains a map component that holds the context model: the city map. The context in-
formation is a combination of the current location and the navigation instructions, and
is continuously sent to the viewer component. Retrieval of the system’s context can
therefore be classified as a periodic context-push. The viewer component displays the
route on the display of the handheld device. The context model is stored only in the
map component, which lies inside the system, making it a central and intrinsic context
model. The context information results implicitly from the monitoring data, as the
tourist’s current location and the route to the destination are based on the city map.
To update the context model, only the map component needs to be updated. The
probe, the route calculating program and the viewer do not need to be changed. Ex-
plicitly locating the context model as the city map simplifies the updating process.
System
Probe
Monitoring
data
Route
Viewer
Context Map
information
Fig. 3: Architecture of a context-aware, updatable, navigation system.
3.2 Museum Tour Guide
Situation
A museum offers its visitors small handheld devices that automatically display in-
formation about the exhibits exposed in the room the visitor walks around in ([4] [13]
[14]). These devices are very small and do not contain much capacity for data storage,
so they cannot store all the information about all the exhibits present in the museum.
Furthermore, the museum frequently changes the location of the exhibits among the
different rooms, adding new exhibits and removing others. Therefore each exhibit
provides information about itself upon request.
Architecture
The system architecture is shown in Figure 4. Each exhibit presents its information
explicitly to the handheld device when the latter enters the room. The handheld de-
vices emit a signal, and upon reception of this signal by the exhibit the context infor-
mation is sent back. The information about the exhibits is directly displayed on the
device by the viewer component.
The context information is stored externally: not in the handheld device, but with
the exhibits. The context information is also distributed over the different exhibits, as
B.I.J. Siljee, I.E. Bosloper, J.A.G. Nijhuis
each exhibit only contains information about itself. After a request for information
(the signal from the device) the exhibits explicitly present their information; no con-
text model is needed to interpret the exhibit information. Furthermore, this system
performs a context-pull based on the event of entering a room. As the context infor-
mation is explicitly presented by the exhibits, no context model is needed. Therefore
nothing needs to be adapted when an exhibit is moved from one room to the other.
When a visitor with a handheld enters the new room, the context information from the
exhibit is automatically sent again.
System
Viewer
context information
Exhibit Exhibit Exhibit
Fig. 4: Architecture of a context-aware museum tour guide.
4. Related Work
In 1994 Schilit [1] describes four classes of context-aware applications along two di-
mensions: whether the task at hand is getting information or doing a command, and
whether it is effected manually or automatically.
Pascoe [15] proposes a taxonomy of features for context-aware systems, which in-
cludes contextual sensing, contextual adaptation, contextual resource discovery and
contextual augmentation (the ability to associate digital data with a user’s context).
This taxonomy divides the process of retrieving context in several steps, but does not
give an overview of the options for each step.
Similarly, Dey [4] also presents a taxonomy of features that a context-aware sys-
tem might support: presentation of information and services to a user, automatic exe-
cution of a service, and tagging of context to information for later retrieval.
Chen [2] divides context-aware systems into two categories: an active context-
aware system automatically adapts to discovered context by changing the system’s
behavior; a passive context-aware system presents the new or updated context to an
interested user or makes the context persistent for the user to retrieve later. Chen fur-
thermore distinguishes between a symbolic location model (representing location as
abstract models) and a geometric location model (representing location as coordi-
nates). Different data structures for the expression and exchanging of context infor-
A Classification Framework for Storage and Retrieval of Context
mation include key-value pairs, tagged encoding, object-oriented models, and logic-
based models. Finally, Chen divides possible context-aware architectures in central-
ized and distributed.
Sun [16] gives three main methods to obtain context information: explicit query,
polling, and event-driven.
However, most research on context-awareness has focused on creating reference
architectures for specific application domains. Examples of these architectures are the
Context Toolkit [4], the Stick-e Notes [5], and HP’s CoolAgent [12]. Most of these
architectures contain elements for the storage and the retrieval of context information,
and often the implementation of the elements differ between different architectures.
These differences served as a basis for the classification framework presented in this
paper.
5. Conclusions
Context-awareness is a necessary feature of automatic dynamic systems that need to
adapt to context changes. Many current context-aware systems are application-
specific, and are often developed in an ad-hoc fashion. However, architectural ab-
stractions are needed to build large and complex context-aware systems, because not
explicitly modeling context-awareness can result in unnecessary complex implemen-
tations. We divided the concept of context-awareness into three phases: 1) environ-
ment monitoring, 2) interpretation of the monitoring data through the context model,
and 3) adaptation of the system to a changed context. Architectural abstractions exist
for the first and for the third phase, see for example Dey [4] for the first phase and
Oreizy [9] for the third phase. However, to our knowledge no architectural abstrac-
tions exist for phase two: the interpretation of monitoring data through a context
model. In this paper we presented these abstractions in a classification framework for
the storage of the context model and the retrieval of the context information. This
framework supports the development of context-aware systems by offering an over-
view of the possible choices a designer has. We demonstrated the use of the classifi-
cation framework by modeling two context-aware systems.
6. Acknowledgements
This research has been sponsored by ConIPF (Configuration in Industrial Product
Families), under contract no. IST-2001-34438. The ConIPF project aims to define and
validate methodologies for product derivation that are practicable in industrial appli-
cations.
B.I.J. Siljee, I.E. Bosloper, J.A.G. Nijhuis
References
[1] B. Schilit, N. Adams, R. Want, “Context-aware computing applications”, Proceedings of
IEEE Workshop on Mobile Computing Systems and Applications, pp. 85-90, Santa Cruz,
California, December, 1994, IEEE Computer Society Press.
[2] G. Chen, D. Kotz, “A Survey of Context-Aware Mobile Computing Research”, Technical
Report TR2000-381, Dept. of Computer Science, Dartmouth College, November, 2000.
[3] M. Shaw, D. Garlan, Software Architecture: Perspectives on an emerging discipline, Pren-
tice Hall, 1996.
[4] A.K. Dey, D. Salber, G.D. Abowd, “A Conceptual Framework and a Toolkit for Supporting
the Rapid Prototyping of Context-Aware Applications”, Anchor article of a special issue on
context-aware computing in the Human-Computer Interaction (HCI) Journal, Volume 16
(2-4), pp. 97-166, 2001.
[5] P.J. Brown, J.D. Bovey, X. Chen, “Context-Aware Applications: from the Laboratory to the
Marketplace”, IEEE Personal Communications, Volume 4 (5), pp. 58-64, 1997.
[6] Hertz, NeverLost, Web page available at: http://hertzneverlost.com.
[7] Navman Europe, Web page available at: http://www.navman-europe.com.
[8] O. Cakmakci, J. Coutaz, K. Van Laerhoven, H. Gellersen, “Context Awareness in Systems
with Limited Resources”, Artificial Intelligence in Mobile Systems (AIMS), ECAI 2002, pp.
21-29, 2002.
[9] P. Oreizy, M. Gorlick, R. Taylor, D. Heimbigner, G. Johnson, N. Medvidovic, A. Quilici,
D. Rosenblum, A. Wolf, "An Architecture-Based Approach to Self-Adaptive Software,"
IEEE Intelligent Systems, Volume 14 (3), pp. 54-62, May/June, 1999.
[10] A. Harter, A. Hopper, P. Steggles, A. Ward, P. Webster, “The Anatomy of a Context-
Aware Application”, Wireless Networks, Vol. 8 (2-3), pp. 187-197, February, 2002.
[11] T. Yonezawa, B. Clarkson, M. Yasumura, K. Mase, "Context-aware Sensor-doll as a Mu-
sic Expression Device", CHI2001 Proceedings Extended Abstracts, pp. 307-308, ACM
SIGCHI, 2001.
[12] H. Chen, S. Tolia, “Steps towards creating a context-aware agent system”, TR-HPL-2001-
231, HP Labs, 2001.
[13] B.B. Bederson, “Audio augmented reality: A prototype automated tour guide”, Proceed-
ings of the CHI’95 Conference on Human Factors in Computing Systems, pp. 210-211, New
York, NY, ACM Press, 1995.
[14] S. Fels et al., "Progress of C-MAP: A context-aware mobile assistant", Proceedings of
AAAI 1998 Spring Symposium on Intelligent Environments, Technical Report SS-98-02, pp.
60-67, March, 1998.
A Classification Framework for Storage and Retrieval of Context
[15] J. Pascoe, “Adding Generic Contextual Capabilities to Wearable Computers”, Proceedings
of the 2nd International Symposium on Wearable Computers, pp.92-99, Pittsburgh, Pennsyl-
vania, October, 1998, IEEE Computer Science Press.
[16] J. Sun, J. Sauvola, “Towards a Conceptual Model for Context-Aware Adaptive Services”,
4th International Conference on Parallel and Distributed Computing, Applications and
Technologies, pp. 90-94, Chengdu, China, August, 2003.