Although many approaches have been proposed to deal with dynamic adaptation, it is unclear how to compare these approaches and in which situations one approach is better than another. Such comparison requires a better understanding of dynamic adaptation and its underpinnings, what demands more experience with dynamic adaptable systems and the mechanisms necessary to support them.
The Middleware Laboratory at PUC-Rio has been involved for some years in investigating abstractions and programming tools to develop dynamically adaptable component-based applications. As a means of evaluation, we have been developing some experiments in different application domains, such as control systems, ubiquitous computing, distributed visualization, and collaborative computer aided design.
A lesson learned from these experiments is that the current middleware technology already provides several mechanisms to support dynamic adaptation at the application level, but more suitable abstractions and programming tools are fundamental to help using and understanding these mechanisms, and therefore enabling the development of dynamic adaptable applications.