Introducing Autonomic Capabilities in Legacy Software Systems
Autonomic Computing, Legacy Systems, Incident Management
The design and development of autonomous software systems has been extensively investigated mainly based on the manifest disseminated by IBM concomitant with the advent of Autonomic Computing. Autonomous (or autonomous) software systems are those capable of adapting existing behaviors to the demand for new requirements and of resolving incidents with minimal human intervention. However, investigations on how to incorporate the capabilities of adaptation and autonomous incident resolution in existing (legacy) systems, although desired, little has been investigated in recent years. Allowing legacy software systems to adapt requires the identification and incorporation of actuators responsible for adapting the behavior and sensors that measure the variation in the state of the monitored behaviors. Ideally, the incorporation of actuators and sensors should be carried out in a flexible way, that is, without the software system having to be designed and implemented again. To this end, in this article, we propose a new approach for autonomous incident management in legacy software systems. Our approach is based on two fundamental concepts: (i) transversal composition of the sensors with the code exists through invasive composition techniques; and (ii) adapting behavior through virtualization technologies. With this, it is possible to incorporate new autonomous behaviors in legacy systems quickly and flexibly. We also present an assessment of the applicability of our approach in Moodle, a legacy system widely used in practice for conducting distance courses.