Concepts and experiments in computational reflection
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
The case for reflective middleware
Communications of the ACM - Adaptive middleware
An Architectural Approach to Auto-Adaptive Systems
ICDCSW '02 Proceedings of the 22nd International Conference on Distributed Computing Systems
Architectural Reflection: Realising Software Architectures via Reflective Activities
EDO '00 Revised Papers from the Second International Workshop on Engineering Distributed Objects
Advanced lectures on networking
Implementing the essence of reflection: a reflective run-time environment
Proceedings of the 2004 ACM symposium on Applied computing
A reflective middleware architecture to support adaptive mobile applications
Proceedings of the 2005 ACM symposium on Applied computing
CARISMA: Context-Aware Reflective mIddleware System for Mobile Applications
IEEE Transactions on Software Engineering
A uniform approach to communication and computation
Proceedings of the 6th International Wireless Communications and Mobile Computing Conference
Hi-index | 0.00 |
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.