Experience on Building an Architecture Level Adaptable System
Distributed and concurrent systems have become common in enterprises, and the complexity of these systems has increased dramatically. The self-adaptive feature can be advantageous for complex systems, because it can acclimate to a dynamically changing environment. To achieve this goal, this paper presents a Self-Adaptive Framework for Concurrency Architecture (SAFCA). SAFCA includes multiple concurrency architectural alternatives and is able to adapt to an appropriate architecture based on changes in the environment and the control policy. With an autonomic control, SAFCA can handle bursty workloads by invoking another architectural alternative at runtime instead of statically configured to accommodate the peak demands, which requires higher system resources even when they are not needed. Experimental results demonstrate that SAFCA can improve performance. The experience can be useful for building complicated systems that have multiple configurations or diverse demands, such as cloud computing.
Keywordssoftware adaptation software architecture software performance engineering concurrency patterns
Unable to display preview. Download preview PDF.
- 1.Brun, Y., Di Marzo Serugendo, G., Gacek, C., Giese, H., Kienle, H., Litoiu, M., Müller, H., Pezzè, M., Shaw, M.: Engineering Self-Adaptive Systems through Feedback Loops. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 48–70. Springer, Heidelberg (2009)Google Scholar
- 2.International Symp. on Software Engineering for Adaptive and Self-Managing Systems (2006-2012)Google Scholar
- 3.Enterprise Management Associates, Practical Autonomic Computing: Roadmap to Self-Managing Technology. Tech. Rep., IBM, Boulder, CO (January 2006)Google Scholar
- 4.IBM Autonomic Computing Architecture Team, An Architectural Blueprint for Autonomic Computing, Tech. Rep., IBM, Hawthorne, NY (June 2006)Google Scholar
- 6.Kramer, J., Magee, J.: Self-Managed Systems: An Architectural Challenge. In: Proc. of the Future of Software Engineering, FOSE, pp. 259–268 (2007)Google Scholar
- 7.Muller, H.A., et al.: Autonomic Computing, Tech. Rep., Software Engineering Institute (April 2006)Google Scholar
- 8.Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects. Wiley (2000)Google Scholar
- 9.Welsh, M., et al.: A Design Framework for Highly Concurrent Systems, T.R., UC Berkeley (2000)Google Scholar
- 10.Welsh, M., Culler, D.: Adaptive Overload Control for Busy Internet Servers. In: Proc. of the 4th USENIX Conference on Internet Technologies and Systems, p. 4 (March 2003)Google Scholar
- 11.Zhang, X., Lung, C.-H., Franks, G.: Towards Architecture-based Autonomic Software Performance Engineering. In: Proc. of the 4th Conference on Software Architectures, CAL (2010)Google Scholar
- 12.Zhang, X., Lung, C.-H.: Improving Software Performance and Reliability with an Architecture-Based Self-Adaptive Framework. In: Proc. of IEEE COMPSAC (2011)Google Scholar