Continuity of user tasks execution in pervasive environments
The proliferation of small devices and the advancements in various technologies have introduced the concept of pervasive environments. In these environments, user tasks can be executed by using the deployed components provided by devices with different capabilities. One appropriate paradigm for building user tasks for pervasive environments is Service-Oriented Architecture (SOA). Using SOA, user tasks are represented as an assembly of abstract components (i.e., services) without specifying their implementations, thus they should be resolved into concrete components. The task resolution involves automatic matching and selection of components across various devices. For this purpose, we present an approach that allows for each service of a user task, the selection of the best device and component by considering the user preferences, devices capabilities, services requirements and components preferences. Due to the dynamicity of pervasive environments, we are interested in the continuity of execution of user tasks. Therefore, we present an approach that allows components to monitor locally or remotely the changes of properties, which depend on. We also considered the adaptation of user tasks to cope with the dynamicity of pervasive environments. To overcome captured failures, the adaptation is carried out by a partial reselection of devices and components. However, in case of mismatching between an abstract user task and a concrete level, we propose a structural adaptation approach by injecting some defined adaptation patterns, which exhibit an extra-functional behavior. We also propose an architectural design of a middleware allowing the task's resolution, monitoring of the environment and the task adaptation. We provide implementation details of the middleware's components along with evaluation results