Automating the support of highly-configurable services
Jesús García Galán · 2015
Las crecientes capacidades de configuracion de los servicios, especialmente en el cloud, han dado lugar a los asi llamados Servicios Altamente Configurables (HCSs). Dichas capacidades de configuracion estan aumentando la demanda y complejidad de las aplicaciones basadas en HCS y de las necesidades de infraestructura para soportarlas, soluciones guiadas por HCS de aqui en adelante. Tras un estudio del estado del arte, concluimos que dichas soluciones guiadas por HCSs pueden ser mejoradas significativamente en 1) los lenguajes para describir las configuraciones, tambien conocidas como el espacio de decision del servicio, y 2) en las tecnicas para extraer informacion de utilidad del espacio de decision, tecnicas de analisis en adelante. Por un lado, no existen Lenguajes Especificos de Dominio (DSLs) para describir el espacio de decision, aunque hay algunas aproximaciones cercanas. En esta tesis creemos que es posible mejorar el actual panorama disenando un DSL: i) en conformidad con los principales proveedores de HCSs, ii) que soporte multiples items, iii) suficientemente expresivo para facilitar la descripcion de relaciones logicas y aritmeticas en los terminos del servicio y iv) independiente del dominio. Adicionalmente, este DSL debe definir criterios de validez para asegurar que el espacio de decision satisface propiedades basicas como la consistencia y la configurabilidad. Mas alla, se deben ofrecer explicaciones cuando el espacio de decision del servicio no satisfaga dichas propiedades. Por otro lado, la mayor parte de las actuales tecnicas de analisis, como aquellas encargadas de encontrar configuraciones optimas o de reconfigurar servicios multitenant, llevan consigo algunos inconvenientes propios de tecnicas emergentes. Para superar estos inconvenientes, se deben desarrollar: a) implementaciones de referencia totalmente funcionales, b) tecnicas reusables, c) mecanismos de extension efectivos e d) interfaces amigables. El principal objetivo de esta disertacion es mejorar el soporte existente para el desarrollo de soluciones guiadas por HCS, considerando las recomendaciones anteriores. Las principales contribuciones de esta tesis son un DSL (llamado SYNOPSIS) para especificar el espacio de decision de los HCS, y un nuevo catalogo de operaciones para comprobar y explicar los criterios de validez asi como para encontrar configuraciones optimas para uno o mas usuarios. Como contribuciones menores, tambien presentamos dos soluciones que han sido desarrolladas para mejorar el soporte existente para la migracion de infraestructuras a Amazon EC2 y para reconfigurar servicios multitenant. La piedra angular de nuestra propuesta para mejorar las tecnicas de especificacion ha sido definir un DSL, SYNOPSIS, y dotarlo con semantica formal basada en Modelos de Caracteristicas con Estados. Acerca de nuestra propuesta para mejorar las tecnicas de analisis, la clave ha sido la organizacion de dichas tecnicas en un catalogo de operaciones basicas que pueden ser combinadas para dar lugar a soluciones guiadas por HCS m mas avanzadas. La aplicabilidad de nuestros resultados esta limitada a aquellos espacios de decision que pueden ser transformados en Modelos de Caracteristicas con Estados, que por nuestra experiencia es suficiente para soportar HCSs reales.