The last decade has seen a significant evolution in software architecting practices as the process of managing and developing software is becoming more and more complex. This is especially true due to the heterogeneous composition of modern software systems coupled with the run-time uncertainties. These include application downtime due to high CPU utilization, server outages, resource constraints, dynamic resource demands, etc. These can have a big impact on the Quality of Service (QoS) oered by the system, thereby impacting the experience of the end-user. Self-adaptation is nowadays considered to be one of the best solutions to dynamically reconfigure a system in the occurrence of deviations from the expected QoS. However, one of the issues with the existing solutions is that most of them are reactive in nature, where adaptation is carried out in the event of uncertainties. Moreover, current adaptation methods: i) do not provide the systems the ability to proactively identify the need for adaptation with good accuracy; ii) may temporally overcome an impending failure, while not preventing the system from the state in the future. In essence, they do not exploit the knowledge gained from every adaptation performed. The use of machine learning techniques to aid self-adaptation has been proposed in the literature as a way to mitigate this problem based on the concept of self-adaptation through achieving, but not much work has been done in this area. Moreover, the challenges associated with learning bias and less accurate predictions also need to be handled while using machine learning techniques, which otherwise leads to sub-optimal adaptations. To this end, in this thesis, we develop a data-driven approach to architecting self-adaptive systems using machine learning techniques. The approach, in principle, shifts the focus from self-adaptive architectures to self-learning architectures. It achieves this by using a combination of deep neural networks and reinforcement learning (RL) techniques to ensure that the system continuously learns and improves the quality of adaptation performed over time. It further uses quantitative verification (QV) techniques to overcome learning bias and enable faster convergence towards optimal adaptations. More specifically the approach i) continuously monitors the system data; ii) uses deep neural networks to forecast any QoS uncertainties; iii) leverages the forecasts using RL techniques to identify the adaptation strategy; iv) it further uses QV techniques to verify the decision selected by RL; v) keeps improving the decisions based on the forecasts as well as the feedbacks obtained from QV; vi) continuously keeps performing the loop of learning, selection, verification, and adaptations to converge towards optimal adaptations, thereby enabling the architectures to learn and improve over time.
Data-Driven Self-Adaptive Architecting Using Machine Learning / Vaidhyanathan, Karthik. - (2021 Jan 27).
|Titolo:||Data-Driven Self-Adaptive Architecting Using Machine Learning|
|Data di pubblicazione:||27-gen-2021|
|Citazione:||Data-Driven Self-Adaptive Architecting Using Machine Learning / Vaidhyanathan, Karthik. - (2021 Jan 27).|
|Appare nelle tipologie:||8.1 Tesi di dottorato|