El procesamiento de eventos complejos (CEP, por sus siglas en inglés: Complex Event
Processing), está ganando aceptación en los entornos distribuidos de tiempo real, al proporcionar
una forma rápida y eficiente de correlacionar e inferir conclusiones sobre eventos
que ocurren en tiempo real. Esta tecnología tiene un amplio campo de aplicación como
pueden ser el Internet de las Cosas (IoT), monitorización de sistemas o alerta de situaciones
de riesgo en infraestructuras sanitarias, entre otras. La característica más importante
de estos tipos de programas, es la capacidad de expresar patrones de sucesos sobre los
eventos, mediante la definición de reglas. La especificación de estos tipos de patrones se
realiza utilizando lenguajes de procesamiento de eventos como Esper, el cual ha sido utilizado
en este proyecto. Es muy importante la correcta especificación de estos patrones ya
que de ellos depende el correcto funcionamiento del sistema.
Con tal fin, se ha desarrollado una herramienta capaz de analizar dos propiedades que
pueden comprobarse estáticamente en las especificación de los programas CEP basados
en reglas: la aciclicidad de las dependencias entre reglas y las condiciones de carrera entre
reglas. Ambas características tienen que lidiar con el carácter no determinista de los
sistemas basados en reglas.
Para el desarrollo de esta herramienta se ha utilizado un enfoque MDSE (Model-Driven
Software Engineering). Más concretamente, se ha desarrollado un plug-in capaz de reconocer
el lenguaje Esper y obtener como salida una representación en forma de grafo dirigido
para la visualización de los resultados del análisis.