The advances in service-oriented computing and mobile computing have paved way for pervasive computing. The vision of pervasive computing is to enable all devices to seamlessly interact with each other without the user being aware of them. Towards this end, devices provide their resources as services to other devices giving rise to complex service compositions.
However, a pervasive environment consisting of services running on heterogeneous devices is very dynamic by its nature. In other words, the devices can enter and leave a service composition at any time posing challenges to the availability and management of services.
In order to overcome these challenges, a paradigm called autonomic computing emerged. The vision of autonomic computing is to develop computing systems that can manage themselves according to high-level goals. Autonomic computing defines a set of selfmanagement properties of which self-healing is one. Translated into the context of service-oriented and pervasive computing, self-healing can be defined as the property to discover and diagnose faults in service compositions and to restore a service composition to normalcy with as little human intervention as possible.
The purpose of this thesis was to nd out how machine intelligence can be used to support the validity of existing service compositions in a pervasive environment. The main contribution is a software architecture that can be used to design and create a system that supports self-healing service compositions. Firstly, the architecture employs model-based diagnosis for the diagnosis of faulty service compositions. Secondly, the architecture uses concepts from con gurable software product families together with recommendation techniques in order to derive new valid service composition con gurations based on the diagnoses.
The software architecture was validated using a walk-through and scenarios, which are based on a simple example of a service composition.