|Title||Enabling Self-Adaptation by Applying a Technology Agnostic Middleware With Support for Integration|
|Afilliation||Communication Systems, Communication Systems|
|Publication Type||PhD Thesis|
|Year of Publication||2011|
|Publisher||Department of Informatics, University of Oslo|
|ISBN Number||ISSN 1501-7710 No. 1140|
To manage the administration and run-time configuration and reconfiguration of large and complex state-of-the-art applications, the research community propose making systems self-adaptive. By relieving the human administrator from the difficult and error-prone tasks of administration and configuration, software will become more dependable and usable. A self-adaptive system conceptually consists of two parts; i) The part of the system subject to adaptations, and ii) the adaptation control loop, which controls and executes adaptations. The middleware community argues that by externalizing the adaptation control loop into middleware, and thereby separating the adaptation concerns from the application concerns, the software development process will become more efficient. However, as different middleware solutions become available, it has become clear that middleware faces the same challenges as other types of software, namely the challenges of run-time configurability, integration of new and existing functionality, and software reuse. In particular, current adaptation middleware solutions limit their applicability to specific technologies, such as a particular programming language, component model, or communication infrastructure. We argue that rather than assuming a certain technology, adaptation middleware should serve as a unifying framework enabling integration of different technologies, including configuration of the system with technology specific mechanisms and algorithms, in order to dynamically build distributed and heterogeneous self-adaptive systems. In this thesis, we explore a middleware solution, QuA, which is technology agnostic in the sense that it provides a generic adaptation control loop and a corresponding meta-model which can be applied to different types of programming languages, component models, and communication infrastructure. We apply the control loop and meta-model to three different adaptation technologies, which together provide a wide range of adaptation mechanisms, and support many different application scenarios. Our experiments demonstrate that the combination of technology agnostic middleware and technology integration facilitates reuse of existing adaptation software on the middleware level.