Skip to Main Content
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.