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