Article Preview
Top1. Introduction
Future computing platforms will surround human activities during their everyday life. Adaptive hardware/software architectures, characterized by context-aware services and immediate responsiveness to human needs and habits, will replace today’s static platforms, towards the goal of Ambient Intelligence (AmI) environments and systems (Cook et al., 2009). Such systems will be based on a large number of heterogeneous devices, from handheld and wearable devices operated by users to smart sensing and actuating devices embedded in the surrounding environment, able to interact with each other spontaneously by exploiting different communication links. In this context, applications will have to make effective use of the resources available on-the-fly, and adapt to different hardware and software, and even firmware configurations.
Recently, we are witnessing the application of the AmI concept even to critical application scenarios, such as smart hospitals (Coronato et al., 2008), ambient assistance to elder people (Nehmer et al., 2006), and disaster recovery (Chang et al., 2009). It becomes thus crucial to devise AmI systems capable to fulfill stringent dependability requirements, in order to avoid catastrophic consequences, such as the loss of human life in the case of healthcare applications. Building AmI systems with verifiable dependability properties is paramount also for increasing their level of acceptance. Non-technical and not experienced users will need to trust AmI systems in order to delegate to them critical decisions about their lives (i.e., whether or not to administer a given drug during a therapy, when alarms are raised by the AmI system which monitors the patient).
At the same time, the dependability level of AmI systems is challenged by severe impairments, due to their open and evolving nature. An AmI system operates proactively, does its job automatically with minimal human intervention, it interacts with humans by speech, gestures, and other forms of natural communication and it should provide its service in astable, robust and reliable way, even in the presence of component malfunctions, power/battery break down, or other exceptional conditions. Generally, faults in a system are unavoidable and they make a system less available, reliable, safe, and secure. This combination of heterogeneity, mobility, dynamism, sheer number of devices, accidental failures, and the presence of unavoidable software and hardware defects makes increasingly difficult to build AmI systems with verifiable dependability properties.
Despite these compelling issues, there is still little understanding in the literature on the dependability delivered by current research proposal for AmI environments and on the methods and techniques needed to build more dependable AmI systems in the next future. The attention to dependability issues in AmI systems is also witnesses by recent European Union initiatives, such as the SERENITY (System Engineering for Security and Dependability) Project (Mana, 2007) that aims to provide security and dependability in Ambient Intelligence systems (AmI).
This paper aims to provide a contribution towards a better understanding of the dependability concept when applied to such novel computing systems. In particular, in Section 2 we review the recent related research focused on dependability issues in AmI systems, with the goal of putting in the foreground the issues that still remain unresolved. We group such issues in fundamental, technological, and architectural issues, depending on their peculiarity. Then, in Section 3 we discuss about a potential solution to the pinpointed issues, based on the application of runtime verification techniques (Leucker et al., 2007) to AmI systems, in order to have a continuous feedback on their operation and to design adaptable restoration actions to unpredictable failures. Finally, Section 4 ends the paper with conclusions and ongoing challenges.