Skip to Main Content
Modern computing environments are characterized by a high degree of dynamism that, along with the heterogeneity of computational devices and communication infrastructure, demand the development of a new range of applications that must be able to self-adapt dynamically and transparently according to changes in its execution environment. On a computational Grid, for instance, it is common to notice a high variation on resource availability, node instability, variations on load distribution, and heterogeneity of computational devices and network technology. The Adapta framework is a reflective middleware that provides the means to develop self-adaptive component-based distributed applications, separating the business code from the one responsible for adaptation. Adapta also provides a runtime execution environment that monitors computational resources and notifies application components about the occurrence of important events that should trigger reconfiguration actions. Adapta provides a XML based reconfiguration language that defines how the application must adapt in response to environmental changes. Statements of the reconfiguration language can also be applied at runtime, which allows to dynamically change the reconfiguration mechanism itself. This paper describes Adapta architecture, implementation, and evaluation through a concrete case study, where a grid infrastructure is augmented for incorporating autonomic mechanisms towards a self-healing and self-optimization infrastructure.