Modern computer systems for distributed service computing become highly complex and difficult to manage. A self-adaptive approach that integrates monitoring, analyzing, and actuation functionalities has the potential to accommodate to a dynamically changing environment. The main objective of this paper is to develop an architecture-based self-adaptive framework to improve performance and resource efficiency of a server while maintaining reliable services. The target problem is distributed and concurrent systems. This paper proposes a Self-Adaptive Framework for Concurrency Architecture (SAFCA) that includes multiple concurrency architectural patterns or alternatives. The framework has monitoring and managing capabilities that can invoke another architectural alternative at run-time to cope with increasing demands or for reliability purpose. Two control mechanisms have been developed: SAFCA-Q and SAFCA-R. With SAFCA-Q, the system does not need to be statically configured for the highest workloads; hence, resource usage becomes more efficient in normal conditions and the system still is able to handle busty demands. SAFCA-R is used to improve reliability in the case of a failure by conducting a switchover to another software architecture. Experiment results demonstrate that the performance of SAFCA-Q is better than systems using only standalone concurrency architecture and resources are also better utilized. SAFCA-R also shows fast recovery in the face of a failure.

Additional Metadata
Keywords Autonomic computing, Distributed and concurrent architecture, Performance, Reliability, Software architecture
Persistent URL dx.doi.org/10.1109/COMPSAC.2010.68
Conference 34th Annual IEEE International Computer Software and Applications Conference, COMPSAC 2010
Citation
Zhang, X. (Xu), & Lung, C.H. (2010). Improving software performance and reliability with an architecture-based self-adaptive framework. In Proceedings - International Computer Software and Applications Conference (pp. 72–81). doi:10.1109/COMPSAC.2010.68