AlchemistJ: A Framework for Self-adaptive Software
The major goal of self-adaptive software is to provide a mechanism that allows a software system to dynamically change its architectural configuration during run-time to cope with requirement changes and unexpected conditions. Software which needs to handle dynamically changing internal and external environment is one of the areas in which self-adaptive software may do an important role in improving the reliability and performance of software systems. There are three main capabilities that are necessary to support self-adaptive software: the ability to monitor and recognize internal/external situations that affect behavior of the software system; the ability to determine when and what to reconfigure in the software system to handle the situations; and the ability to dynamically change the software architecture during run-time to make the reconfiguration effective. In this paper, we describe a software framework to support such capabilities to realize self-adaptive software and its experiment results.
Unable to display preview. Download preview PDF.
- 1.Allen, R.J., Douence, R., Garlan, D.: Specifying dynamism in software architectures. In: Proceedings of the Workshop on Foundations of Component-Based Software Engineering (1997)Google Scholar
- 2.Dashofy, E.M., van der Hoek, A., Taylor, R.N.: Towards architecture-based self-healing systems. In: Proceedings of the First Workshop on Self-Healing Systems (2002)Google Scholar
- 4.Garlan, D., Cheng, S.-W., Huang, A.C., Schmerl, B., Steenkiste, P.: Rainbow: Architecture-based self-adaptation with reusable infrastructure. IEEE Computer 37(10), 46–54 (2004)Google Scholar
- 5.Garlan, D., Schmerl, B., Chang, J.: Using gauges for architecture-based monitoring and adaptation. In: The Working Conference on Complex and Dynamic Systems Architecture (2001)Google Scholar
- 6.Gorlick, M.M., Razouk, R.R.: Using weaves for software construction and analysis. In: Proceedings of the 13th International Conference on Software Engineering (1991)Google Scholar
- 7.Hillman, J., Warren, I.: Meta-adaptation in autonomic systems. In: 10th IEEE International Workshop on Future Trends of Distributed Computing Systems (2004)Google Scholar
- 8.Hillman, J., Warren, I.: An open framework for dynamic reconfiguration. In: 26th International Conference on Software Engineering (2004)Google Scholar
- 9.Kim, T.-H., Shin, Y.-G.: Role-based decomposition for improving concurrency in distributed object-oriented software development environments. In: 23rd International Computer Software and Applications Conference (1999)Google Scholar
- 11.Oreizy, P.: Issues in the runtime modification of software architectures. Technical report, Department of Information and Computer Science, University of California, Irvine (1996)Google Scholar
- 13.Sutton, R.S., Barto, A.G.: Reinforcement Learning: An Introduction. MIT Press, Cambridge (1998)Google Scholar
- 14.Watkins, C.J.C.H.: Learning from Delayed Rewards. PhD thesis, Cambridge University (1989)Google Scholar