Abstract
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.
抽象
创新点
软件的适应能力是指软件根据环境对自身进行调整、保证自身持续可靠运行的能力. 通常而言, 软件适应能力的实现需要在软件开发阶段植入相应的代码(例如感知环境的代码). 但 是, 这些代码只能应对开发阶段所能考虑到的情况, 而无法有效应对非预期的环境变化. 本 文给出了一个名为 Auxo 的自适应软件框架. 与同类框架类似, , Auxo 可以有效支持自适应软件的开发和运行. 除此之外, Auxo 还可以基于运行时软件体系结构技术, 对软件的适应能力进行在线调整, 例如动态插入新的环境感知代码、修改自适应决策的逻辑等. 运维人员可以借此为软件植入新的环境适应能力, 应对非预期的环境变化.
Article PDF
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
References
Weiser M. The computer for the 21st century. Sci Amer, 1991, 265: 94–104.
Armbrust M, Fox A, Griffith R, et al. A view of cloud computing. Commun ACM, 2010, 53: 50–58
Wang H M, Wu W J, Mao X J, et al. Growing construction and adaptive evolution of complex software system (in Chinese). Sci Sin Inform, 2014, 44: 743–761.
Cheng B H C, de Lemos R, Giese H, et al. Software engineering for self-adaptive systems: a research roadmap. In: Cheng B H C, de Lemos R, Inverardi P, et al., eds. Software Engineering for Self-adaptive Systems. Berlin/Heidelberg: Springer, 2009. 1–26
Oreizy P, Gorlick M M, Taylor R N, et al. An architecture-based approach to self-adaptive software. IEEE Intell syst, 1999, 14: 54–62.
Salehie M, Tahvildari L. Self-adaptive software: Landscape and research challenges. ACM Trans Auton Adapt Syst, 2009, 4: 1–42.
Chan A T S, Chuang S N. MobiPADS: a reflective middleware for context-aware mobile computing. IEEE Trans Softw Eng, 2003, 29: 1072–1085
Andersson J, de Lemos R, Malek S, et al. Modeling dimensions of self-adaptive software systems. In: Cheng B H C, de Lemos R, Inverardi P, et al., eds. Software Engineering for Self-adaptive Systems. Berlin/Heidelberg: Springer, 2009. 27–47
Baresi L, Di Nitto E, Ghezzi C. Toward open-world software: issue and challenges. Computer, 2006, 39: 36–43.
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–10
Dowling J, Cahill V. The k-component architecture meta-model for self-adaptive software. In: Proceedings of International Conference on Metalevel Architectures and Separation of Crosscutting Concerns, Kyoto, 2001. 81–88
Garlan D, Cheng S W, Huang A C, et al. Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer, 2004, 37: 46–54.
Taylor R N, Medvidovic N, Dashofy E M. Software Architecture: Foundations, Theory, and Practice. New York: John Wiley & Sons, 2009
Dinda P A, O’Hallaron D R. Host load prediction using linear models. Cluster Comput, 2000, 3: 265–280.
Perry D E, Wolf A L. Foundations for the study of software architecture. ACM SIGSOFT Softw Eng Notes, 1992, 17: 40–52.
Medvidovic N, Taylor R N. A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng, 2000, 26: 70–93
Shaw M, Garlan D. Software architecture: perspectives on an emerging discipline. Englewood Cliffs: Prentice Hall, 1996
Baldauf M, Dustdar S, Rosenberg F. A survey on context-aware systems. Int J Ad Hoc Ubiquit Comput, 2007, 2: 263–277.
Yang Z, Duddy K. CORBA: a platform for distributed object computing. SIGOPS Oper Syst Rev, 1996, 30: 4–31
McCarthy D, Dayal U. The architecture of an active database management system. ACM SIGMOD Record, 1989, 18: 215–224.
Wang H M, Wang Y F, Tang Y B. StarBus+: distributed object middleware practice for Internet computing. J Comput Sci Technol, 2005, 20: 542–551.
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–144
Wermelinger M A. Specification of software architecture reconfiguration. Dissertation for the Doctoral Degree. Lisboa: Universidade Nova de Lisboa, 1999
Davis J. GME: the generic modeling environment. In: Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Anaheim, 2003. 82–83
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–83
Floch J, Hallsteinsen S, Stav E, et al. Using architecture models for runtime adaptability. IEEE Softw, 2006, 23: 62–70.
Rouvoy R, Barone P, Ding Y, et al. Music: middleware support for self-adaptation in ubiquitous and service-oriented environments. In: Cheng B H C, de Lemos R, Inverardi P, et al., eds. Software Engineering for Self-adaptive Systems. Berlin/Heidelberg: Springer, 2009. 164–182
Morin B, Barais O, Jezequel J, et al. Models@run.time to support dynamic adaptation. IEEE Comput, 2009, 42: 44–51.
Coulson G, Blair G, Grace P, et al. A generic component model for building systems software. ACM Trans Comput Syst, 2008, 26: 1–42.
Mei H, Huang G, Xie T. Internetware: a software paradigm for Internet computing. Computer, 2012, 45: 26–31.
Cheng S W. Rainbow: cost-effective software architecture-based self-adaptation. Dissertation for the Doctoral Degree. Pittsburgh: Carnegie Mellon University, 2008
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–88
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–108
Wei E J Y, Chan A T S. CAMPUS: a middleware for automated context-aware adaptation decision making at run time. Pervasive Mob Comput, 2013, 9: 35–56.
Sousa J P, Poladian V, Garlan D, et al. Task-based adaptation for ubiquitous computing. IEEE Trans Syst Man Cybern Part C-Appl Rev, 2006, 36: 328–340
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–16
Esfahani N, Kouroshfar E, Malek S. Taming uncertainty in self-adaptive software. In: Proceedings of ACM SIGSOFT symposium and European conference on Foundations of software engineering, New York, 2011. 234–244
McKinley P K, Cheng B H C, Ramirez A J, et al. Applying evolutionary computation to mitigate uncertainty in dynamically-adaptive, high-assurance middleware. J Internet Serv Appl, 2012, 3: 51–58.
Keeney J. Completely unanticipated dynamic adaptation of software. Dissertation for the Doctoral Degree. Dublin: Trinity College, 2004
Liu H, Parashar M. Accord: a programming framework for autonomic applications. IEEE Trans Syst Man Cybern Part C-Appl Rev, 2006, 36: 341–352
Wang Q. Towards a rule model for self-adaptive software. ACM SIGSOFT Softw Eng Notes, 2005, 30: 8
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Wang, H., Ding, B., Shi, D. et al. Auxo: an architecture-centric framework supporting the online tuning of software adaptivity. Sci. China Inf. Sci. 58, 1–15 (2015). https://doi.org/10.1007/s11432-015-5307-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11432-015-5307-9
Keywords
- software architecture
- self-adaptive software
- architecture style
- application framework
- software adaptation