Self-adaptation solutions need to periodically monitor, reason about, and adapt a running system. The adaptation step involves generating an adaptation strategy and applying it to the running system whenever an anomaly arises. In this article, we argue that, rather than generating individual adaptation strategies, the goal should be to adapt the control logic of the running system in such a way that the system itself would learn how to steer clear of future anomalies, without triggering self-adaptation too frequently. While the need for adaptation is never eliminated, especially noting the uncertain and evolving environment of complex systems, reducing the frequency of adaptation interventions is advantageous for various reasons, e.g., to increase performance and to make a running system more robust. We instantiate and empirically examine the above idea for software-defined networking -- a key enabling technology for modern data centres and Internet of Things applications. Using genetic programming,(GP), we propose a self-adaptation solution that continuously learns and updates the control constructs in the data-forwarding logic of a software-defined network. Our evaluation, performed using open-source synthetic and industrial data, indicates that, compared to a baseline adaptation technique that attempts to generate individual adaptations, our GP-based approach is more effective in resolving network congestion, and further, reduces the frequency of adaptation interventions over time. In addition, we show that, for networks with the same topology, reusing over larger networks the knowledge that is learned on smaller networks leads to significant improvements in the performance of our GP-based adaptation approach. Finally, we compare our approach against a standard data-forwarding algorithm from the network literature, demonstrating that our approach significantly reduces packet loss.
翻译:自适应性解决方案需要定期监控、推理并调整运行中的系统。调整步骤涉及生成调整策略并在异常出现时将其应用于运行中的系统。本文提出,目标不应是生成单独的调整策略,而应调整运行中系统的控制逻辑,使系统本身学会如何规避未来异常,同时避免频繁触发自适应调整。尽管调整需求从未消除(尤其考虑到复杂系统的不确定性和不断演化的环境),但降低调整干预频率因多种原因(例如提升性能、增强运行中系统的鲁棒性)而具有优势。我们以软件定义网络(现代数据中心和物联网应用的关键支撑技术)为例,实例化并实证检验了上述思想。利用遗传编程,我们提出了一种自适应性解决方案,该方案持续学习并更新软件定义网络中数据转发逻辑的控制结构。我们使用开源合成数据与工业数据进行的评估表明,与试图生成单独调整的基线调整技术相比,基于遗传编程的方法在解决网络拥塞方面更有效,并且随时间推移降低了调整干预的频率。此外,我们证明,对于具有相同拓扑结构的网络,将在较小网络上学到的知识复用于较大网络,可显著提升基于遗传编程的调整方法的性能。最后,我们将该方法与网络文献中的标准数据转发算法进行对比,结果显示我们的方法显著降低了数据包丢失率。