A systematic survey on the design of self-adaptive software systems using control engineering approaches
---
paper_title: Research challenges in control engineering of computing systems

paper_content:

A wide variety of software systems employ closed loops (feedback) to achieve service level objectives and to optimize resource usage. Control theory provides a systematic approach to constructing closed loop systems, and is widely used in disciplines such as mechanical and electrical engineering. This paper describes recent advances in applying control theory to computing systems, and identifies research challenges to address so that control engineering can be widely used by software practitioners.
---
paper_title: Self-adaptive software: Landscape and research challenges

paper_content:

Software systems dealing with distributed applications in changing environments normally require human supervision to continue operation in all conditions. These (re-)configuring, troubleshooting, and in general maintenance tasks lead to costly and time-consuming procedures during the operating phase. These problems are primarily due to the open-loop structure often followed in software development. Therefore, there is a high demand for management complexity reduction, management automation, robustness, and achieving all of the desired quality requirements within a reasonable cost and time range during operation. Self-adaptive software is a response to these demands; it is a closed-loop system with a feedback loop aiming to adjust itself to changes during its operation. These changes may stem from the software system's self (internal causes, e.g., failure) or context (external events, e.g., increasing requests from users). Such a system is required to monitor itself and its context, detect significant changes, decide how to react, and act to execute such decisions. These processes depend on adaptation properties (called self-* properties), domain characteristics (context information or models), and preferences of stakeholders. Noting these requirements, it is widely believed that new models and frameworks are needed to design self-adaptive software. This survey article presents a taxonomy, based on concerns of adaptation, that is, how, what, when and where, towards providing a unified view of this emerging area. Moreover, as adaptive systems are encountered in many disciplines, it is imperative to learn from the theories and models developed in these other areas. This survey article presents a landscape of research in self-adaptive software by highlighting relevant disciplines and some prominent research projects. This landscape helps to identify the underlying research gaps and elaborates on the corresponding challenges.
---
paper_title: Beyond objects: a software design paradigm based on process control

paper_content:

A standard demonstration problem in object-oriented programming is the design of an automobile cruise control. This design exercise demonstrates object-oriented techniques well, but it does not ask whether the object-oriented paradigm is the best one for the task. Here we examine the alternative view that cruise control is essentially a control problem. We present a new software organization paradigm motivated by process control loops. The control view leads us to an architecture that is dominated by analysis of a classical feedback loop rather than by the identification of discrete stateful components to treat as objects. The change in architectural model calls attention to important questions about the cruise control task that aren't addressed in an object-oriented design.
---
paper_title: Challenges in control engineering of computing systems

paper_content:

Over the last few years, there has been considerable success with applying control theory to computing systems. Our experience has been that there are several commonly occurring control problems in computing systems - translating between service oriented units (e.g., response times) and effector (actuator) units (e.g., the maximum number of connected users); optimizing resource usage; regulating service levels to enforce service level agreements; and adapting to disturbances such as changes in workloads. Developing control systems that address these problems involves challenges related to modeling the managed element (plant); handing sensor data that are noisy, incomplete, and inconsistent; dealing with effectors that have complex effects that often do not correspond well to the control objectives; and designing control systems (especially filters, the choice of measured outputs, and time delays).
---
paper_title: Honoring SLAs on cloud computing services: A control perspective

paper_content:

This work contains a short survey of recent results in the literature with a view to opening up new research directions for the problem of honoring SLAs on cloud computing services. This is a new problem that has attracted significant interest recently, due to the urgent need for providers to provide reliable, customized and QoS guaranteed computing dynamic environments for end-users as agreed in contracts on the basis of certain Service Level Agreements (SLAs). Honoring SLAs is a multi-faceted problem that may involve optimal use of the available resources, optimization of the system's performance and availability or maximization of the provider's revenue and it poses a significant challenge for researchers and system administrators due to the volatile, huge and unpredictable Web environments where these computing systems reside. The use of algorithms possessing run-time adaptation features, such as dynamic resource allocation, admission control and optimization becomes an absolute must. As a continuation of the recent successful application of control theory concepts and methods to the computing systems area, our survey indicates that the problem of honoring SLAs on cloud computing services is a new interesting application for control theory and that researchers can benefit significantly from a number of well-known modern control methodologies, such as hybrid, supervisory, hierarchical and model predictive control.
---
paper_title: Feedback Control of Computing Systems

paper_content:

Preface. PART I: BACKGROUND. 1. Introduction and Overview. PART II: SYSTEM MODELING. 2. Model Construction. 3. Z-Transforms and Transfer Functions. 4. System Modeling with Block Diagrams. 5. First-Order Systems. 6. Higher-Order Systems. 7. State-Space Models. PART III: CONTROL ANALYSIS AND DESIGN. 8. Proportional Control. 9. PID Controllers. 10. State-Space Feedback Control. 11. Advanced Topics. Appendix A: Mathematical Notation. Appendix B: Acronyms. Appendix C: Key Results. Appendix D: Essentials of Linear Algebra. Appendix E: MATLAB Basics. References. Index.
---
paper_title: Software Engineering for Self-Adaptive Systems

paper_content:

One of the main goals of a self-adaptable software system is to meet the required Quality of Service (QoS) by autonomously modifying its structure/behavior in response to changes in the supporting infrastructure and surrounding physical environment. A key issue in the design and development of such system is the assessment of their effectiveness, both in terms of their ability to meet the required QoS under different operating conditions, and in terms of the costs involved by the reconfiguration process, which could outweigh the benefit of the reconfiguration. This paper introduces an approach to support this assessment, with a focus on performance and dependability attributes. Our approach is based on the idea of defining a model transformation chain that maps a “design oriented” model of the system to an “analysis oriented” model that lends itself to the application of a suitable analysis methodology. We identify some key concepts that should be present in the design model of a dynamically adaptable system, and show how to devise a transformation from such a model to a target analysis models, focusing in particular on models of component or service oriented systems
---
paper_title: A survey of autonomic computing—degrees, models, and applications

paper_content:

Autonomic Computing is a concept that brings together many fields of computing with the purpose of creating computing systems that self-manage. In its early days it was criticised as being a “hype topic” or a rebadging of some Multi Agent Systems work. In this survey, we hope to show that this was not indeed ‘hype’ and that, though it draws on much work already carried out by the Computer Science and Control communities, its innovation is strong and lies in its robust application to the specific self-management of computing systems. To this end, we first provide an introduction to the motivation and concepts of autonomic computing and describe some research that has been seen as seminal in influencing a large proportion of early work. Taking the components of an established reference model in turn, we discuss the works that have provided significant contributions to that area. We then look at larger scaled systems that compose autonomic systems illustrating the hierarchical nature of their architectures. Autonomicity is not a well defined subject and as such different systems adhere to different degrees of Autonomicity, therefore we cross-slice the body of work in terms of these degrees. From this we list the key applications of autonomic computing and discuss the research work that is missing and what we believe the community should be considering.
---
paper_title: A survey on performance management for internet applications

paper_content:

Internet applications have become indispensable for many business and personal processes, turning the performance of these applications into a key issue. For this reason, recent research has comprehensively explored mechanisms for managing the performance of these applications, with special focus on dealing with overload situations and providing QoS guarantees to clients. This paper makes a survey on the different proposals in the literature for managing Internet applications' performance. We present a complete taxonomy that characterizes and classifies these proposals into several categories including request scheduling, admission control, service differentiation, dynamic resource management, service degradation, control theoretic approaches, works using queuing models, observation-based approaches that use runtime measurements, and overall approaches combining several mechanisms. For each work, we provide a brief description in order to provide the reader with a global understanding of the research progress in this area. Copyright © 2009 John Wiley & Sons, Ltd.
---
paper_title: Research challenges in control engineering of computing systems

paper_content:

A wide variety of software systems employ closed loops (feedback) to achieve service level objectives and to optimize resource usage. Control theory provides a systematic approach to constructing closed loop systems, and is widely used in disciplines such as mechanical and electrical engineering. This paper describes recent advances in applying control theory to computing systems, and identifies research challenges to address so that control engineering can be widely used by software practitioners.
---
paper_title: A multi-model framework to implement self-managing control systems for QoS management

paper_content:

Many control theory based approaches have been proposed to provide QoS assurance in increasingly complex software systems. These approaches generally use single model based, fixed or adaptive control techniques for QoS management of such systems. With varying system dynamics and unpredictable environmental changes, however, it is difficult to design a single model or controller to achieve the desired QoS performance across all the operating regions of these systems. In this paper, we propose a multi-model framework to capture the multi-model nature of software systems and implement self-managing control systems for them. A reference-model and extendable class library are introduced to implement such self-managing control systems. The proposed approach is also validated and compared to fixed and adaptive control schemes through a range of experiments.
---
paper_title: Self-adaptive software: Landscape and research challenges

paper_content:

Software systems dealing with distributed applications in changing environments normally require human supervision to continue operation in all conditions. These (re-)configuring, troubleshooting, and in general maintenance tasks lead to costly and time-consuming procedures during the operating phase. These problems are primarily due to the open-loop structure often followed in software development. Therefore, there is a high demand for management complexity reduction, management automation, robustness, and achieving all of the desired quality requirements within a reasonable cost and time range during operation. Self-adaptive software is a response to these demands; it is a closed-loop system with a feedback loop aiming to adjust itself to changes during its operation. These changes may stem from the software system's self (internal causes, e.g., failure) or context (external events, e.g., increasing requests from users). Such a system is required to monitor itself and its context, detect significant changes, decide how to react, and act to execute such decisions. These processes depend on adaptation properties (called self-* properties), domain characteristics (context information or models), and preferences of stakeholders. Noting these requirements, it is widely believed that new models and frameworks are needed to design self-adaptive software. This survey article presents a taxonomy, based on concerns of adaptation, that is, how, what, when and where, towards providing a unified view of this emerging area. Moreover, as adaptive systems are encountered in many disciplines, it is imperative to learn from the theories and models developed in these other areas. This survey article presents a landscape of research in self-adaptive software by highlighting relevant disciplines and some prominent research projects. This landscape helps to identify the underlying research gaps and elaborates on the corresponding challenges.
---
paper_title: Control Systems application in Java based Enterprise and Cloud Environments - A Survey

paper_content:

The classical feedback control systems has been a successful theory in many engineering applications like electrical power, process, and manufacturing industries. For more than a decade there is active research in exploring feedback control systems applications in computing and some of the results are applied to the commercial software products. There are good number of research review papers on this subject exist, giving high level overview, explaining specific applications like load balancing or CPU utilization power management in data centers. We observe that majority of the control system applications are in Web and Application Server environments. We attempt to discuss on how control systems is applied to Web and Application(JEE) Servers that are deployed in Enterprise and cloud environments. Our paper presents this review with a specific emphasis on Java based Web, Application and Enterprise Server Bus environments. We conclude with the future reserach in applying control systems to Enterprise and Cloud environments.
---
paper_title: Challenges in control engineering of computing systems

paper_content:

Over the last few years, there has been considerable success with applying control theory to computing systems. Our experience has been that there are several commonly occurring control problems in computing systems - translating between service oriented units (e.g., response times) and effector (actuator) units (e.g., the maximum number of connected users); optimizing resource usage; regulating service levels to enforce service level agreements; and adapting to disturbances such as changes in workloads. Developing control systems that address these problems involves challenges related to modeling the managed element (plant); handing sensor data that are noisy, incomplete, and inconsistent; dealing with effectors that have complex effects that often do not correspond well to the control objectives; and designing control systems (especially filters, the choice of measured outputs, and time delays).
---
paper_title: Honoring SLAs on cloud computing services: A control perspective

paper_content:

This work contains a short survey of recent results in the literature with a view to opening up new research directions for the problem of honoring SLAs on cloud computing services. This is a new problem that has attracted significant interest recently, due to the urgent need for providers to provide reliable, customized and QoS guaranteed computing dynamic environments for end-users as agreed in contracts on the basis of certain Service Level Agreements (SLAs). Honoring SLAs is a multi-faceted problem that may involve optimal use of the available resources, optimization of the system's performance and availability or maximization of the provider's revenue and it poses a significant challenge for researchers and system administrators due to the volatile, huge and unpredictable Web environments where these computing systems reside. The use of algorithms possessing run-time adaptation features, such as dynamic resource allocation, admission control and optimization becomes an absolute must. As a continuation of the recent successful application of control theory concepts and methods to the computing systems area, our survey indicates that the problem of honoring SLAs on cloud computing services is a new interesting application for control theory and that researchers can benefit significantly from a number of well-known modern control methodologies, such as hybrid, supervisory, hierarchical and model predictive control.
---
paper_title: Introduction to control theory and its application to computing systems

paper_content:

Feedback control is central to managing computing systems and data networks. Unfortunately, computing practitioners typically approach the design of feedback control in an ad hoc manner. Control theory provides a systematic approach to designing feedback loops that are stable in that they avoid wild oscillations, accurate in that they achieve objectives such as target response times for service level management, and settle quickly to their steady state values. This paper provides an introduction to control theory for computing practitioners with an emphasis on applications in the areas of database systems, real-time systems, virtualized servers, and power management.
---
paper_title: What does control theory bring to systems research?

paper_content:

Feedback mechanisms can help today's increasingly complex computer systems adapt to changes in workloads or operating conditions. Control theory offers a principled way for designing feedback loops to deal with unpredictable changes, uncertainties, and disturbances in systems. We provide an overview of the joint research at HP Labs and University of Michigan in the past few years, where control theory was applied to automated resource and service level management in data centers. We highlight the key benefits of a control-theoretic approach for systems research, and present specific examples from our experience of designing adaptive resource control systems where this approach worked well. In addition, we outline the main limitations of this approach, and discuss the lessons learned from our experience.
---
paper_title: Feedback Control of Computing Systems

paper_content:

Preface. PART I: BACKGROUND. 1. Introduction and Overview. PART II: SYSTEM MODELING. 2. Model Construction. 3. Z-Transforms and Transfer Functions. 4. System Modeling with Block Diagrams. 5. First-Order Systems. 6. Higher-Order Systems. 7. State-Space Models. PART III: CONTROL ANALYSIS AND DESIGN. 8. Proportional Control. 9. PID Controllers. 10. State-Space Feedback Control. 11. Advanced Topics. Appendix A: Mathematical Notation. Appendix B: Acronyms. Appendix C: Key Results. Appendix D: Essentials of Linear Algebra. Appendix E: MATLAB Basics. References. Index.
---
paper_title: Software Engineering for Self-Adaptive Systems

paper_content:

One of the main goals of a self-adaptable software system is to meet the required Quality of Service (QoS) by autonomously modifying its structure/behavior in response to changes in the supporting infrastructure and surrounding physical environment. A key issue in the design and development of such system is the assessment of their effectiveness, both in terms of their ability to meet the required QoS under different operating conditions, and in terms of the costs involved by the reconfiguration process, which could outweigh the benefit of the reconfiguration. This paper introduces an approach to support this assessment, with a focus on performance and dependability attributes. Our approach is based on the idea of defining a model transformation chain that maps a “design oriented” model of the system to an “analysis oriented” model that lends itself to the application of a suitable analysis methodology. We identify some key concepts that should be present in the design model of a dynamically adaptable system, and show how to devise a transformation from such a model to a target analysis models, focusing in particular on models of component or service oriented systems
---
paper_title: A survey on performance management for internet applications

paper_content:

Internet applications have become indispensable for many business and personal processes, turning the performance of these applications into a key issue. For this reason, recent research has comprehensively explored mechanisms for managing the performance of these applications, with special focus on dealing with overload situations and providing QoS guarantees to clients. This paper makes a survey on the different proposals in the literature for managing Internet applications' performance. We present a complete taxonomy that characterizes and classifies these proposals into several categories including request scheduling, admission control, service differentiation, dynamic resource management, service degradation, control theoretic approaches, works using queuing models, observation-based approaches that use runtime measurements, and overall approaches combining several mechanisms. For each work, we provide a brief description in order to provide the reader with a global understanding of the research progress in this area. Copyright © 2009 John Wiley & Sons, Ltd.
---
paper_title: Does the technology acceptance model predict actual use? A systematic literature review

paper_content:

Context: The technology acceptance model (TAM) was proposed in 1989 as a means of predicting technology usage. However, it is usually validated by using a measure of behavioural intention to use (BI) rather than actual usage. Objective: This review examines the evidence that the TAM predicts actual usage using both subjective and objective measures of actual usage. Method: We performed a systematic literature review based on a search of six digital libraries, along with vote-counting meta-analysis to analyse the overall results. Results: The search identified 79 relevant empirical studies in 73 articles. The results show that BI is likely to be correlated with actual usage. However, the TAM variables perceived ease of use (PEU) and perceived usefulness (PU) are less likely to be correlated with actual usage. Conclusion: Care should be taken using the TAM outside the context in which it has been validated.
---
paper_title: Empirical studies of agile software development : A systematic review

paper_content:

Agile software development represents a major departure from traditional, plan-based approaches to software engineering. A systematic review of empirical studies of agile software development up to and including 2005 was conducted. The search strategy identified 1996 studies, of which 36 were identified as empirical studies. The studies were grouped into four themes: introduction and adoption, human and social factors, perceptions on agile methods, and comparative studies. The review investigates what is currently known about the benefits and limitations of, and the strength of evidence for, agile methods. Implications for research and practice are presented. The main implication for research is a need for more and better empirical studies of agile software development within a common research agenda. For the industrial readership, the review provides a map of findings, according to topic, that can be compared for relevance to their own settings and situations.
---
paper_title: Research challenges in control engineering of computing systems

paper_content:

A wide variety of software systems employ closed loops (feedback) to achieve service level objectives and to optimize resource usage. Control theory provides a systematic approach to constructing closed loop systems, and is widely used in disciplines such as mechanical and electrical engineering. This paper describes recent advances in applying control theory to computing systems, and identifies research challenges to address so that control engineering can be widely used by software practitioners.
---
paper_title: Self-adaptive software: Landscape and research challenges

paper_content:

Software systems dealing with distributed applications in changing environments normally require human supervision to continue operation in all conditions. These (re-)configuring, troubleshooting, and in general maintenance tasks lead to costly and time-consuming procedures during the operating phase. These problems are primarily due to the open-loop structure often followed in software development. Therefore, there is a high demand for management complexity reduction, management automation, robustness, and achieving all of the desired quality requirements within a reasonable cost and time range during operation. Self-adaptive software is a response to these demands; it is a closed-loop system with a feedback loop aiming to adjust itself to changes during its operation. These changes may stem from the software system's self (internal causes, e.g., failure) or context (external events, e.g., increasing requests from users). Such a system is required to monitor itself and its context, detect significant changes, decide how to react, and act to execute such decisions. These processes depend on adaptation properties (called self-* properties), domain characteristics (context information or models), and preferences of stakeholders. Noting these requirements, it is widely believed that new models and frameworks are needed to design self-adaptive software. This survey article presents a taxonomy, based on concerns of adaptation, that is, how, what, when and where, towards providing a unified view of this emerging area. Moreover, as adaptive systems are encountered in many disciplines, it is imperative to learn from the theories and models developed in these other areas. This survey article presents a landscape of research in self-adaptive software by highlighting relevant disciplines and some prominent research projects. This landscape helps to identify the underlying research gaps and elaborates on the corresponding challenges.
---
paper_title: A systematic survey on the design of self-adaptive software systems using control engineering approaches

paper_content:

Control engineering approaches have been identified as a promising tool to integrate self-adaptive capabilities into software systems. Introduction of the feedback loop and controller into the management system potentially enables the software systems to achieve the runtime performance objectives and maintain the integrity of the system when they are operating in unpredictable and dynamic environments. There is a large body of literature that has proposed control engineering solutions for different application domains, handling different performance variables and control objectives. However, the relevant literature is scattered over different conference proceedings, journals and research communities. Consequently, conducting a survey to analyze and classify the existing literature is a useful, yet a challenging task. This paper presents the results of a systematic survey that includes classification and analysis of 161 papers in the existing literature. In order to capture the characteristics of the control solutions proposed in these papers we introduce a taxonomy as a basis for classification of all articles. Finally, survey results are presented, including quantitative, cross and trend analysis.
---
paper_title: What does control theory bring to systems research?

paper_content:

Feedback mechanisms can help today's increasingly complex computer systems adapt to changes in workloads or operating conditions. Control theory offers a principled way for designing feedback loops to deal with unpredictable changes, uncertainties, and disturbances in systems. We provide an overview of the joint research at HP Labs and University of Michigan in the past few years, where control theory was applied to automated resource and service level management in data centers. We highlight the key benefits of a control-theoretic approach for systems research, and present specific examples from our experience of designing adaptive resource control systems where this approach worked well. In addition, we outline the main limitations of this approach, and discuss the lessons learned from our experience.
---
paper_title: Feedback Control of Computing Systems

paper_content:

Preface. PART I: BACKGROUND. 1. Introduction and Overview. PART II: SYSTEM MODELING. 2. Model Construction. 3. Z-Transforms and Transfer Functions. 4. System Modeling with Block Diagrams. 5. First-Order Systems. 6. Higher-Order Systems. 7. State-Space Models. PART III: CONTROL ANALYSIS AND DESIGN. 8. Proportional Control. 9. PID Controllers. 10. State-Space Feedback Control. 11. Advanced Topics. Appendix A: Mathematical Notation. Appendix B: Acronyms. Appendix C: Key Results. Appendix D: Essentials of Linear Algebra. Appendix E: MATLAB Basics. References. Index.
---
paper_title: Software Engineering for Self-Adaptive Systems

paper_content:

One of the main goals of a self-adaptable software system is to meet the required Quality of Service (QoS) by autonomously modifying its structure/behavior in response to changes in the supporting infrastructure and surrounding physical environment. A key issue in the design and development of such system is the assessment of their effectiveness, both in terms of their ability to meet the required QoS under different operating conditions, and in terms of the costs involved by the reconfiguration process, which could outweigh the benefit of the reconfiguration. This paper introduces an approach to support this assessment, with a focus on performance and dependability attributes. Our approach is based on the idea of defining a model transformation chain that maps a “design oriented” model of the system to an “analysis oriented” model that lends itself to the application of a suitable analysis methodology. We identify some key concepts that should be present in the design model of a dynamically adaptable system, and show how to devise a transformation from such a model to a target analysis models, focusing in particular on models of component or service oriented systems
---
paper_title: A survey on performance management for internet applications

paper_content:

Internet applications have become indispensable for many business and personal processes, turning the performance of these applications into a key issue. For this reason, recent research has comprehensively explored mechanisms for managing the performance of these applications, with special focus on dealing with overload situations and providing QoS guarantees to clients. This paper makes a survey on the different proposals in the literature for managing Internet applications' performance. We present a complete taxonomy that characterizes and classifies these proposals into several categories including request scheduling, admission control, service differentiation, dynamic resource management, service degradation, control theoretic approaches, works using queuing models, observation-based approaches that use runtime measurements, and overall approaches combining several mechanisms. For each work, we provide a brief description in order to provide the reader with a global understanding of the research progress in this area. Copyright © 2009 John Wiley & Sons, Ltd.
---
paper_title: Feedback Control of Computing Systems

paper_content:

Preface. PART I: BACKGROUND. 1. Introduction and Overview. PART II: SYSTEM MODELING. 2. Model Construction. 3. Z-Transforms and Transfer Functions. 4. System Modeling with Block Diagrams. 5. First-Order Systems. 6. Higher-Order Systems. 7. State-Space Models. PART III: CONTROL ANALYSIS AND DESIGN. 8. Proportional Control. 9. PID Controllers. 10. State-Space Feedback Control. 11. Advanced Topics. Appendix A: Mathematical Notation. Appendix B: Acronyms. Appendix C: Key Results. Appendix D: Essentials of Linear Algebra. Appendix E: MATLAB Basics. References. Index.
---
paper_title: Feedback Control of Computing Systems

paper_content:

Preface. PART I: BACKGROUND. 1. Introduction and Overview. PART II: SYSTEM MODELING. 2. Model Construction. 3. Z-Transforms and Transfer Functions. 4. System Modeling with Block Diagrams. 5. First-Order Systems. 6. Higher-Order Systems. 7. State-Space Models. PART III: CONTROL ANALYSIS AND DESIGN. 8. Proportional Control. 9. PID Controllers. 10. State-Space Feedback Control. 11. Advanced Topics. Appendix A: Mathematical Notation. Appendix B: Acronyms. Appendix C: Key Results. Appendix D: Essentials of Linear Algebra. Appendix E: MATLAB Basics. References. Index.
---
paper_title: A multi-model framework to implement self-managing control systems for QoS management

paper_content:

Many control theory based approaches have been proposed to provide QoS assurance in increasingly complex software systems. These approaches generally use single model based, fixed or adaptive control techniques for QoS management of such systems. With varying system dynamics and unpredictable environmental changes, however, it is difficult to design a single model or controller to achieve the desired QoS performance across all the operating regions of these systems. In this paper, we propose a multi-model framework to capture the multi-model nature of software systems and implement self-managing control systems for them. A reference-model and extendable class library are introduced to implement such self-managing control systems. The proposed approach is also validated and compared to fixed and adaptive control schemes through a range of experiments.
---
paper_title: A systematic survey on the design of self-adaptive software systems using control engineering approaches

paper_content:

Control engineering approaches have been identified as a promising tool to integrate self-adaptive capabilities into software systems. Introduction of the feedback loop and controller into the management system potentially enables the software systems to achieve the runtime performance objectives and maintain the integrity of the system when they are operating in unpredictable and dynamic environments. There is a large body of literature that has proposed control engineering solutions for different application domains, handling different performance variables and control objectives. However, the relevant literature is scattered over different conference proceedings, journals and research communities. Consequently, conducting a survey to analyze and classify the existing literature is a useful, yet a challenging task. This paper presents the results of a systematic survey that includes classification and analysis of 161 papers in the existing literature. In order to capture the characteristics of the control solutions proposed in these papers we introduce a taxonomy as a basis for classification of all articles. Finally, survey results are presented, including quantitative, cross and trend analysis.
---
paper_title: Introduction to control theory and its application to computing systems

paper_content:

Feedback control is central to managing computing systems and data networks. Unfortunately, computing practitioners typically approach the design of feedback control in an ad hoc manner. Control theory provides a systematic approach to designing feedback loops that are stable in that they avoid wild oscillations, accurate in that they achieve objectives such as target response times for service level management, and settle quickly to their steady state values. This paper provides an introduction to control theory for computing practitioners with an emphasis on applications in the areas of database systems, real-time systems, virtualized servers, and power management.
---

Title: A systematic survey on the design of self-adaptive software systems using control engineering approaches

Section 1: INTRODUCTION
Description 1: Describe the motivation, background, and objectives of the survey, including the importance of control engineering approaches in self-adaptive software systems.

Section 2: RELATED WORK
Description 2: Discuss previous surveys and related work in the field of applying control engineering to software system management, highlighting how this survey differs.

Section 3: REVIEW METHOD
Description 3: Explain the methodology used to conduct the systematic survey, including research questions, review protocol, and data extraction strategies.

Section 4: TAXONOMY
Description 4: Present the taxonomy developed to categorize the literature, detailing the characteristics of the target system, control system, and validation methods.

Section 5: SURVEY RESULTS
Description 5: Provide a detailed quantitative analysis and cross-analysis of the survey results based on the taxonomy, including observed trends and patterns.

Section 6: LIMITATIONS OF THE SURVEY
Description 6: Outline the limitations of the survey, including potential biases and areas where the survey might not exhaustively cover the literature.

Section 7: CONCLUSIONS
Description 7: Summarize the findings of the survey, discussing the implications and potential future research directions in the field of self-adaptive software systems using control engineering approaches.