Reconfigurable Middleware for Sensor Based Applications Peizhao Hu and Jadwiga Indulska * School of ITEE The University of Queensland Brisbane, QLD 4072, Australia {peizhao, jaga}@itee.uq.edu.au Ricky Robinson Queensland Research Laboratory National ICT Australia Limited 300 Adelaide Street, Brisbane, QLD 4000, Australia Ricky.Robinson@nicta.com.au ABSTRACT The pervasive computing paradigm introduced context-aware applications that adapt themselves to their surrounding en- vironment based on context information. Context informa- tion may be of different types including sensed context in- formation gathered from a variety of sensors. In pervasive computing user intervention/interactions with their appli- cation should be minimised. On the other hand, pervasive computing environments are very dynamic environments - context information that supports adaptation decisions may not always be available due to user mobility and potential network and/or sensor failures. As context information sup- ports autonomous adaptation of applications, the provision of context information itself has to be managed by an auto- nomic system able to both recognise and recover from con- text delivery failures. This paper presents the architecture of a context management system that is reconfigurable with regard to sensor and/or network failure and can support dynamic discovery and replacement of sensors. One of the components of this middleware architecture, the model and management of sensor descriptions, is described in more de- tail as it plays an important role in sensor discovery and replacement. Categories and Subject Descriptors H.3.4 [ Systems and Software]: Distributed systems Keywords context-awareness, pervasive computing, autonomic com- puting 1. INTRODUCTION In the past, the fields of logic and artificial intelligence created a fundamental framework for computer intelligence * The authors are also affiliated with the Queensland Re- search Laboratory, National ICT Australia Limited, Bris- bane, QLD 4000, Australia. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. MDS ’06, November 27-December 1, 2006 Melbourne, Australia Copyright 2006 ACM 1-59593-418-9/06/11 ...$5.00. introducing applications which can reason based on both ex- isting knowledge and understanding of situations. In some cases, particularly when dealing with logical tasks, comput- ers perform better than humans, such as in mathematical calculation and reasoning over knowledge base. However, humans are better at adapting to the changing context of their tasks or surrounding environment. Such an adapta- tion forms the fundamental principle of context-aware com- puting, in which computing applications/services adapt to the changing computing environment and/or changing user tasks. The adaptation is triggered by evaluation of con- text information gathered from a variety of sources, includ- ing sensing devices. Context-awareness is identified as a milestone towards “invisible computing” or “computer dis- appearance”[10]. Context information is defined as any in- formation that can be used to characterise the situation of an entity that is relevant to an interaction between user and application, such as person, place, or object[4]. Some approximation of the current application’s context can be captured from user provided information, hardware sensors or monitoring software. Context information is managed by the context management system which gathers and evalu- ates context information and either responds to applications’ queries about context information or sends applications no- tifications about context changes. A context management system is a component of a middleware that supports dis- tributed, context-aware applications. Current applications/services are often distributed over heterogeneous computing devices connected by heterogeneous networks. Such computing environments are prone to node failures or disconnections and this can be exacerbated by user mobility. Computing devices (servers, sensors, etc) or services that participate in the application, can fail due to a number of reasons[2], including low battery power, physical damage, network disconnections or Quality of Service (QoS) problems, and Byzantine failures brought by premeditated attacks on the application. Existing approaches to context-aware applications mainly focus on how context information is gathered and processed to support application adaptation - problems of dynamic changes in the environment like user mobility and node and communication failures that affect context information gath- ering, have not been fully addressed. Frequent interactions between human and computer for configuring, tuning and maintenance are infeasible in such systems. As the environ- ment/situation changes in such computing systems are quite frequent, it is essential that context management systems are also context-aware and self-adapting. Therefore, there