Implementing Self-Adaptive Software Architecture by Reflective Component Model and Dynamic AOP: A Case Study
Yuankai Wu, Yijian Wu, Xin Peng, Wenyun Zhao · 2010
Architecture-based method, which implements self-managing characteristics by dynamically configuring or reconfiguring the runtime architecture, has been widely accepted as a promising approach for self-adaptive systems. Some reflective architecture and component models like Fractal are proposed to support dynamic architecture adaptations through introspection and reconfiguration APIs. We believe dynamic AOP (Aspect-Oriented Programming) should also be employed as a complementary means for crosscutting adaptations. In this paper, we conduct a case study on implementing self-adaptive software architecture by reflective component model (Fractal) and dynamic AOP in an industrial Web-based system. With the case study, we hope to evaluate pros and cons of reflective component and dynamic AOP in implementing self-adaptive software architecture. In our case study, we identify four typical self-adaptation scenarios with the solutions. We also evaluate both approaches in terms of effectiveness, runtime efficiency and development/maintenance efforts. Our case study shows that reflective component model and dynamic AOP are effective for structural architecture adaptations, but have shortages in flexibility and do not support behavioral adaptation.