Complex applications have been built on top of OSGi, resulting from the composition of a large number of bundles with many inter-dependencies. Although OSGi facilitates the manage- ment of a complex application (because of the modularity introduced), this is still a complex and time-consuming task.
This dissertation presents A-OSGi, a framework that leverages on the native features of the OSGi platform to support the construction of autonomic OSGi-based applications. Autonomic applications present self-management capabilities, that ease the execution of the management tasks. A-OSGi offers a number of complementary mechanisms for this purpose, such as: the ability to extract indicators for the performance of deployed bundles, mechanisms that allow to have a fine grain control of how bundles bind to services and to gather this information in runtime, and a policy language that allows to define the autonomic behavior of the OSGi application.
A prototype of A-OSGi has been implemented to illustrate the capabilities of our architecture. To this goal, we have implemented a number of mechanisms that integrate several existing technologies and tools. The prototype was evaluated with a proof-of-concept case study, where the application is adapted in face of a changing workload. Results show that the application exhibits a better performance when compared with the execution of the application without adaptation.