Adapta: um arcabouço para o desenvolvimento de aplicações distribuídas adaptativas - Sallem, Márcio Augusto Sekeff (2007)
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. A computational grid is an example of a modern environment where 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. Another example is mobile computing, where the great diversity of computational devices, wireless network dynamism, limitations regarding available resources (such as, battery power) and mobility require the software to able to adapt to environmental changes. This paper presents the Adapta framework, a reflective middleware that provides the means to develop self-adaptive distributed applications, separating the business code from the one responsible for adaptation. Adapta also provides a runtime execution environment that monitors computational resources and noticies 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.