M. Endler and D. Schmidt (Eds.): Middleware 2003, LNCS 2672, pp. 143–161, 2003.
© IFIP International Federation for Information Processing 2003
A Middleware for Context-Aware Agents
in Ubiquitous Computing Environments
*
Anand Ranganathan and Roy H. Campbell
Department of Computer Science
University of Illinois at Urbana-Champaign, USA
{ranganat,rhc}@uiuc.edu
Abstract. Ubiquitous Computing advocates the construction of massively dis-
tributed systems that help transform physical spaces into computationally active
and intelligent environments. The design of systems and applications in these
environments needs to take account of heterogeneous devices, mobile users and
rapidly changing contexts. Most importantly, agents in ubiquitous and mobile
environments need to be context-aware so that they can adapt themselves to dif-
ferent situations. In this paper, we argue that ubiquitous computing environ-
ments must provide middleware support for context-awareness. We also pro-
pose a middleware that facilitates the development of context-aware agents. The
middleware allows agents to acquire contextual information easily, reason
about it using different logics and then adapt themselves to changing contexts.
Another key issue in these environments is allowing autonomous, heterogene-
ous agents to have a common semantic understanding of contextual informa-
tion. Our middleware tackles this problem by using ontologies to define differ-
ent types of contextual information. This middleware is part of Gaia, our
infrastructure for enabling Smart Spaces.
1 Introduction
Ubiquitous Computing Environments consist of a large number of autonomous agents
that work together to transform physical spaces into smart and interactive environ-
ments. In order for an agent to function effectively in these environments, they need
to perform two kinds of tasks – they need to sense and reason about the current con-
text of the environment; and they need to interact smoothly with other agents. In this
paper, we propose a middleware for Ubiquitous Computing Environments that meets
these two needs of agents in the environment.
The role of context has recently gained great importance in the field of ubiquitous
computing. “Context” is any information about the circumstances, objects, or condi-
tions by which a user is surrounded that is considered relevant to the interaction be-
tween the user and the ubiquitous computing environment [1]. A lot of work has been
done in trying to make applications in ubiquitous computing environments context
aware so that they can adapt to different situations and be more receptive to users’
needs[1][2][3][8][13].
Humans behave differently in different contexts. They are able to sense what their
context is and they adapt their behavior to their current context. The way humans
*
This research is supported by a grant from the National Science Foundation, NSF CCR
0086094 ITR and NSF 99-72884 EQ