Building adaptive self-healing systems within a resource contested environment. Issue 4 (April 2016) - Phillips, Brian; Blackburn, Mark
Abstract: Critical Software systems must recover when they experience degradation, either through external actors or internal system failures. There is currently no accepted generic methodology used by the software engineering community to design self-healing systems. Such systems identify when they require healing resources, and then change their own behavior to acquire and utilize these same resources. This study investigates using a design pattern to build such a system. It uses simulated robot tank combat to represent a challenge faced by an adaptive self-healing system. It also investigates how an adaptive system chooses different behaviors balancing its actions between healing activities, movement activities, and combat activities. The results of this study demonstrate how an adaptive self-healing system utilizes behavior selection within a contested environment where other external actors attempt to deny resources to it. It demonstrates how a multi-system architecture inspired by cognitive science its behavior to maximize its ability to both win matches, and survive. This study investigates system characteristics such as how behaviors are organized and how computer memory is utilized. The performance of the adaptive system is compared with the performance of 840 non-adapting systems that compete within this same environment.