monitoring in adaptive systems using reflection
Continuous evolution is a key trait of software-intensive systems. Many research projects investigate mechanisms to adapt software systems effectively in order to ease evolution. By observing its internal state and surrounding context continuously using feedback loops, an adaptive system is able to analyze its effectiveness by evaluating quality criteria and then self-tune to improve its operations. The goals of these feedback loops range from keeping single variables in a prescribed range to satisfying non-functional requirements by regulating decentralized, interdependent subsystems. To be able to observe and possibly orchestrate continuous evolution of software systems in a complex and changing environment, we need to push monitoring of evolving systems to unprecedented levels. It has been established that security has to be built into a system from the ground up and cannot be added as an afterthought - the same is probably true for intensive monitoring. We propose to monitor adaptive systems with autonomic elements to enhance their assessment capabilities. In this paper, we discuss how to build monitoring into Java programs from the ground up with reflection technology to detect normal and exceptional system behavior.
monitoring reflection continuous evolution feedback autonomic elements java exceptions self-adaptive systems control loops introspection metaobjects