Auxo: an architecture-centric framework supporting the online tuning of software adaptivity
- 220 Downloads
Adaptivity is the capacity of software to adjust itself to changes in its environment. A common approach to achieving adaptivity is to introduce dedicated code during software development stage. However, since those code fragments are designed a priori, self-adaptive software cannot handle situations adequately when the contextual changes go beyond those that are originally anticipated. In this case, the original builtin adaptivity should be tuned. For example, new code should be added to provide the capacity to sense the unexpected environment or to replace outdated adaptation decision logic. The technical challenges in this process, especially that of tuning software adaptivity at runtime, cannot be understated. In this paper, we propose an architecture-centric application framework for self-adaptive software named Auxo. Similar to existing work, our framework supports the development and running of self-adaptive software. Furthermore, our framework supports the tuning of software adaptivity without requiring the running self-adaptive software to be terminated. In short, the architecture style that we are introducing can encapsulate not only general functional logic but also the concerns in the self-adaptation loop (such as sensing, decision, and execution) as architecture elements. As a result, a third party, potentially the operator or an augmented software entity equipped with explicit domain knowledge, is able to dynamically and flexibly adjust the self-adaptation concerns through modifying the runtime software architecture. To truly exercise, validate, and evaluate our approach, we describe a self-adaptive application that was deployed on the framework, and conducted several experiments involving self-adaptation and the online tuning of software adaptivity.
Keywordssoftware architecture self-adaptive software architecture style application framework software adaptation
软件的适应能力是指软件根据环境对自身进行调整、保证自身持续可靠运行的能力. 通常而言, 软件适应能力的实现需要在软件开发阶段植入相应的代码(例如感知环境的代码). 但 是, 这些代码只能应对开发阶段所能考虑到的情况, 而无法有效应对非预期的环境变化. 本 文给出了一个名为 Auxo 的自适应软件框架. 与同类框架类似, , Auxo 可以有效支持自适应软件的开发和运行. 除此之外, Auxo 还可以基于运行时软件体系结构技术, 对软件的适应能力进行在线调整, 例如动态插入新的环境感知代码、修改自适应决策的逻辑等. 运维人员可以借此为软件植入新的环境适应能力, 应对非预期的环境变化.
关键词软件体系结构 自适应软件 体系结构风格 应用程序框架 软件适应
Unable to display preview. Download preview PDF.
- 10.Lee E A. Cyber-physical systems-are computing foundations adequate? In: Proceedings of NSF Workshop on Cyber-Physical Systems: Research Motivation, Techniques and Roadmap, Austin, 2006. 1–10Google Scholar
- 13.Taylor R N, Medvidovic N, Dashofy E M. Software Architecture: Foundations, Theory, and Practice. New York: John Wiley & Sons, 2009Google Scholar
- 17.Shaw M, Garlan D. Software architecture: perspectives on an emerging discipline. Englewood Cliffs: Prentice Hall, 1996Google Scholar
- 22.Ding B, Shi D X, Wang H M. Towards pervasive middleware: a CORBA3-compliant infrastructure. In: Proceedings of International Symposium on Pervasive Computing and Applications, Urumuqi, 2006. 139–144Google Scholar
- 23.Wermelinger M A. Specification of software architecture reconfiguration. Dissertation for the Doctoral Degree. Lisboa: Universidade Nova de Lisboa, 1999Google Scholar
- 24.Davis J. GME: the generic modeling environment. In: Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Anaheim, 2003. 82–83Google Scholar
- 25.Sadjadi S M, McKinley P K. ACT: an adaptive CORBA template to support unanticipated adaptation. In: Proceedings of International Conference on Distributed Computing Systems, Tokyo, 2004. 74–83Google Scholar
- 31.Cheng S W. Rainbow: cost-effective software architecture-based self-adaptation. Dissertation for the Doctoral Degree. Pittsburgh: Carnegie Mellon University, 2008Google Scholar
- 32.Whittle J, Sawyer P, Bencomo N, et al. Relax: incorporating uncertainty into the specification of self-adaptive systems. In: Proceedings of International Requirements Engineering Conference, Atlanta, 2009. 79–88Google Scholar
- 33.Ramirez A J, Jensen A C, Cheng B H C. A taxonomy of uncertainty for dynamically adaptive systems. In: Proceedings of International Symposium on Software Engineering for Adaptive and Self-managing Systems, Zurich, 2012. 99–108Google Scholar
- 36.Elkhodary A, Esfahani N, Malek S. FUSION: a framework for engineering self-tuning self-adaptive software systems. In: Proceedings of ACM SIGSOFT International Symposium on Foundations of Software Engineering, Santa Fe, 2010. 7–16Google Scholar
- 39.Keeney J. Completely unanticipated dynamic adaptation of software. Dissertation for the Doctoral Degree. Dublin: Trinity College, 2004Google Scholar