En éste artículo vamos a comentar la importancia de XML en el procesamiento de eventos complejos y las principales diferencias entre los motores CEP.
Fundamentalmente hay dos tipos de motores CEP en el mercado:
Basadas en consultas o “query-based”: se aplica a consultas de tipo base de datos pero contra flujos de eventos.
Basado en estado o “state-based”: representan secuencias de eventos esperadas como modelos de máquinas de estado finitas.
Los motores CEP basados en consultas se utilizan ampliamente, son motores de propósito general que dan cobertura a todos los casos de uso indicados en la tabla 1 del artículo anterior: Parte III.
En cambio, los motores CEP basados en estados están diseñados para realizar comparaciones de secuencias y patrones con volúmenes transaccionales elevados durante periodos largos de tiempo, pero son menos flexibles que los motores basadas en consultas a la hora de hacer frente a toda la gama de casos de uso CEP.
La implementación de agregaciones, correlaciones, análisis de series en el tiempo y así sucesivamente en motores basados en estados generalmente requiere complejas programaciones mediante el uso de lenguajes de programación propietarios, en lugar de utilizar consultas declarativas sencillas.
La mayoría de los sistemas para el procesamiento de eventos basados en consultas utilizan un derivado de SQL como lenguaje de modelado de consultas. Esto es comprensible dada la familiaridad que existe de SQL en una gran mayoría de desarrolladores. El motor CEP del Servidor Analítico es un motor basado en consultas diseñado para procesar eventos en formato XML y en tiempo real y para ello utiliza XQuery como lenguaje de modelado de consultas.
¿Cuáles son las ventajas en el uso de un lenguaje de consultas basado en XML frente a lenguajes de consulta basados en SQL relacional?
Las tablas relacionales son planas: considerando que la mayoría de los datos de las empresas (incluyendo los "objetos de negocio") se representa de forma natural como objetos estructurados jerárquicamente y a menudo con varios niveles de profundidad, XML parece el camino natural adecuado para ésta representación de estructura jerárquica.
Las tablas relacionales son rígidamente uniformes: mientras que los datos XML tienden a ser menos rígidos y más variables, XML es mucho más apropiado en el manejo de variaciones estructurales (variación de tipos de datos, etc) que las estructuras relacionales, y estas situaciones son la norma con la rápida evolución de los sistemas.
Los datos relacionales están desordenados por naturaleza: mientras que el orden adquiere un significado muy importante en datos XML (especialmente para los datos del documento).
Las tablas tienen esquemas relativamente estáticos que pueden ser difíciles de evolucionar: mientras que los esquemas XML tienden a ser más extensible con una clara distinción entre datos y metadatos.