MATE: Motor de Automatización Basado en Modelos
Uno de los principales retos de los Sistemas de Inteligencia Ambiental es automatizar de forma coordinada los servicios que proporciona para satisfacer las necesidades de sus usuarios. Esta automatización debe tener en cuenta los patrones de comportamiento de los usuarios, así como el contexto en el que se llevan a cabo, con el fin de adaptarse a él. Actualmente esta coordinación se lleva a cabo mediante soluciones ad hoc a un bajo nivel de abstracción, obligando a los desarrolladores a realizar duras tareas de implementación y configuración de dispositivos. MATE es una infraestructura software que permite la automatización y evolución de patrones de comportamiento adaptativos al contexto. MATE monitoriza continuamente el contexto del sistema y del entorno con el fin de decidir qué patrones deben ser ejecutados. Además, proporciona una ejecución de estos patrones totalmente adaptada a los datos obtenidos de proceso de monitorización. Los patrones son descritos en modelos de tareas donde se definen la secuencia de acciones a realizar y los servicios y/o dispositivos que soportan dichas acciones. MATE interpreta estos modelos en tiempo de ejecución, sin necesidad de generar ningún tipo de código a partir de ellos. Gracias a esto, MATE permite que los modelos que se construyen en las fases de análisis y de diseño se conviertan en la única implementación de los patrones de comportamiento a automatizar, facilitando así su posterior mantenimiento y evolución. MATE se compone de 4 elementos principales: -Interfaz de Programación de Apliación (APIs): Se han desarrollado dos APIs para la gestión de modelos en tiempo de ejecución: (1) MUTate (Model-based User Task management mechanisms) que proporciona constructores para la gestión del modelo de tareas; y (2) Ocean (Ontology-based Context model management mechanisms), que proporciona constructores para la gestión del modelo de contexto.
- Monitor de Contexto: El monitor de contexto está a cargo de capturar y procesar cambios en el contexto para actualizar el modelo de contexto según estos cambios. El modelo de contexto se ha definido como una ontología para facilitar la comprensión por otros sistemas. -Motor de automatización. Está a cargo de ejecutar los patrones de comportamiento en el contexto apropiado, según de especifique en los modelos.
- Herramienta de Evolución: Esta herramienta proporciona a los usuarios finales una interfaz intuitiva para la modificación de los modelos en tiempo de ejecución. Internamente hace uso de MUTate y OCEan. Estos elementos han sido implementados en Java/OSGi, y utilizan tecnologías como EMF de Eclipse/MDT (Modelling Development Tools), Jena 2.45, la OWL API 2.1.16, o el razonador Pellet 1.5.2 para la manipulación de los modelos.
BENEFICIOS
- Los patrones a automatizar pueden ser definidos mediante modelos de alto nivel de abstracción sin necesidad de implementar ningún tipo de código.
- Los patrones son ejecutados de forma adaptativa al contexto en tiempo de ejecución de manera autónoma sin la intervención de ningún desarrollador.
- Los patrones y la adaptabilidad requerida pueden evolucionarse en tiempo de ejecución sin la necesidad de parar el sistema.
- La evolución se realiza de una forma controlada, siempre teniendo en cuenta las restricciones de los meta-modelos, asegurando así que ningún modelo (y de este modo ningún patrón de comportamiento) queda en un estado inconsistente.
- Se proporcionan interfaces que permiten a los usuarios finales evolucionar los patrones de comportamiento según sus necesidades.