RA 3 : enabling adaptivity via a reflective architecture

The key assumption of the paper is that adaptive applications should be capable of observing and controlling the Quality of Service of the underlying system objects. The RA3 architecture (Reflective Architecture for Adaptive Applications) fulfils this requirement by exploiting the concept of architectural reflection, i.e., the computation performed by a system about its own software architecture. Reflective objects model reflective information that can be directly manipulated by the application layers. If there is a causal connection between system objects and reflective objects, they model true reflective knowledge. Otherwise, as in the case of remote system objects, reflective objects model reflective guesses. In any case, the alignment of the reflective information is driven at the application level. The basic reflective mechanisms can be exploited to realise either adaptive end-user applications or higher-level middleware layers exploiting domain-specific strategies.