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.
翻译:自适应解决方案需周期性地监控、推理并调整运行中的系统。调整步骤包括生成调整策略,并在异常出现时将其应用于运行系统。本文认为,目标不应是生成单个调整策略,而应调整运行系统的控制逻辑,使系统自身学会规避未来异常,同时避免过于频繁地触发自适应。尽管调整需求始终存在(尤其考虑到复杂系统不确定且不断变化的环境),降低调整干预频率仍具有多种优势,例如可提升性能、增强运行系统的稳健性。我们以软件定义网络(现代数据中心与物联网应用的关键使能技术)为例,对该理念进行实例化与实证检验。通过遗传编程(GP),我们提出一种自适应解决方案,持续学习并更新软件定义网络数据转发逻辑中的控制结构。基于开源合成数据与工业数据的评估表明,与尝试生成单个调整的基线技术相比,我们的GP方法在缓解网络拥塞方面更有效,且能随时间推移降低调整干预频率。此外,对于拓扑相同的网络,复用从小型网络学到的知识可显著提升GP自适应方法的性能。最后,我们将该方法与网络文献中的标准数据转发算法进行对比,证明其能显著降低数据包丢失率。