Sistemas auto-adaptativos
Sistemas auto-adaptativos
Los sistemas auto-adaptativos son aquellos capaces de modificar su comportamiento en tiempo de ejecución con el objetivo de conseguir mantener una cierta calidad de servicio (ej: minimizar la latencia, el consumo de energía o maximizar la usabilidad del sistema). Algunas de las circunstancias externas que pueden desencadenar la reconfiguración de un sistema auto-adaptativo pueden ser, cambios en el entorno de ejecución, fallos del sistema, nuevos requisitos o nueva priorización de los objetivos del sistema. Los sistemas auto-adaptables están preparados para reaccionar ante cambios de contexto mediante la monitorización continua de su estado y la recolección de datos del entorno. La información recogida es analizada y el sistema decide si se debe adaptar o no. Diseñar este tipo de sistemas es una tarea muy compleja, que requiere por un lado mecanismos que decidan en tiempo de ejecución cuál es la configuración óptima que cumple con los requisitos actuales del sistema, como también, la preparación de la propia aplicación para ser modificada en tiempo de ejecución. Algunos enfoques utilizados en ITIS para abordar el desarrollo de los sistemas auto-adaptables son las Líneas de Producto Software Dinámicas (DSPL, Dynamic Software Product Lines), los modelos en tiempo de ejecución (models@runtime) o los modelos de control predictivos (Predictive models). En el proyecto MEDEA se define un marco de trabajo para la reconfiguración dinámica de despliegues de aplicaciones en entornos IoT/Edge/Cloud, teniendo en cuenta la latencia, el consumo de energía y la seguridad entre otros requisitos. Las aplicaciones desarrolladas con este enfoque serán capaces de decidir en tiempo de ejecución descargar parte de su código a aquellos dispositivos más cercanos a la localización actual y así minimizar la latencia y el consumo de energía, sin descuidar la seguridad.