Towards Context Caches in the Clouds
Saad Liaquat Kiani
∗
, Ashiq Anjum
†
, Kamran Munir
∗
, Ricahrd McClatchey
∗
and Nick Antonopoulos
†
∗
Faculty of Engineering and Technology, University of the West of England, Bristol, UK
†
School of Computing and Mathematics, University of Derby, Derby, UK
Abstract—Context information is traditionally collected from
distributed digital artifacts and services and made available
to similarly distributed, and often mobile, context consuming
applications via context brokers or servers. Contextual data
has a strong temporal element i.e. it remains valid for a period
of time, and hence is an ideal candidate for caching strategies
that aim to exploit such locality of reference. However, different
types of contextual information have varying temporal validity
durations and a varied spectrum of access frequencies as well.
An ideal of the caching mechanism should utilize dynamic
strategies based on the type of context data, quality of service
heuristics and access patterns and frequencies of context
consuming applications. This paper presents an investigation
of the utility of various context-caching strategies and proposes
a bipartite caching mechanism in a cloud-based context broker
that facilitates context provisioning between context providing
services and consuming applications. The results demonstrate
the relative benefits of different caching strategies under
varying context usage scenarios and the utility of the bipartite
context caching mechanism in a context provisioning system.
Keywords-cloud computing; context-aware clouds; context
provisioning; intelligent caching; context-awareness
I. I NTRODUCTION
Context-aware systems facilitate the acquisition, represen-
tation, aggregation and distribution of this contextual in-
formation in ubiquitous environments. Established context-
aware systems predominantly utilize a broker or a context
server to facilitate context provisioning from providers of
context information to context consumers. Due to the dis-
tributed nature of sensors and services that provide raw data
for context creation, and that of applications/services that
utilize such data, the provisioning of contextual information
is a non-trivial task. Existing context-aware systems are
mostly focused on small geographic and conceptual domains
and the context provisioning function of these systems has
not attracted in-depth attention. For instance, the temporal
properties of contextual data are not utilized by existing
context-aware systems to improve context provisioning per-
formance through caching, grid and cloud based platforms.
One of the key challenges in context-aware systems is
the provisioning of contextual information about anything,
anytime and anywhere [1]. Meeting this challenge requires
an infrastructure that can reliably collect, aggregate and
disseminate contextual information related to a very large
user base over a large scale. Cloud computing is ideally
placed to provide infrastructural support for meeting this
challenge through its key characteristics of reliability, scala-
bility, performance and cost effectiveness. However, context-
aware systems have not yet taken advantage of this recent
progress in the computing arena.
In addition to the intrinsic benefits of Cloud computing,
contextual information itself has certain features that can aid
in improving the performance of systems that deliver context
information from context producing components to context
consuming components. Context information remains tem-
porally valid for a certain duration, which depends on the
type of context data. This property of the context data can
be exploited by employing context caches in context provi-
sioning systems to improve the overall system performance
as done routinely in distributed systems. Our motivation
towards investigating this area builds on the observation
that contextual data is central to the functional relevance of
any context-aware system. With a significantly large number
of users, devices, data sources and services involved in
the end-to-end cycle of acquisition, reasoning, delivery and
consumption of context, inadequate infrastructure support in
terms of storage, processing, and provisioning of contextual
information can be the biggest hurdle in adoption of context-
aware systems over a large scale. Caching is a well estab-
lished performance improvement mechanism in distributed
systems, and if employed in Cloud-based context provision-
ing systems, can augment its infrastructure strengths and
further improve the context provisioning function.
Context information is usually modeled using name-value
pairs, software objects and structured or semi-structured
records. Irrespective of the representation format, the context
information has an ever-present temporal property i.e. the
information remains valid for a certain period of time. For
example, an instantiation of the location context of a user
remains valid as long as the user remains in that location,
the weather context of a user remains valid as long as the
user remains within the geographic span whose weather
information is quantified in a context instance, the Wi-Fi
context of a device remains valid as long as the device is
connected to a certain Wi-Fi hotspot. This temporal validity
can be exploited in intermediate components of context-
aware systems for improving the context-provisioning per-
formance e.g. caching contextual data at a context broker
can allow for the exploitation of the locality of reference
in order to reduce contextual query satisfaction time and
reduction in the overall context related traffic in the system.
2011 Fourth IEEE International Conference on Utility and Cloud Computing
978-0-7695-4592-9/11 $26.00 © 2011 IEEE
DOI 10.1109/UCC.2011.67
403