Procesamiento de Eventos Complejos (CEP) y Monitorización en Tiempo Real
Evento de flujo de eventos
Evento de flujo de eventos: Se utiliza para detectar patrones atípicos mediante la notificación en tiempo real. Permite integrar los servicios y sus orquestaciones, y permitir aspectos operacionales más ricos dentro de una empresa. Permite monitorizar los signos vitales de cada organización.
Tecnología de software que permite a las aplicaciones monitorizar varios flujos de eventos de datos, analizarlos en términos de indicadores de rendimiento que se expresan mediante reglas de eventos y actuar de acuerdo con las oportunidades y los riesgos detectados en tiempo real, creando eventos derivados o reenviando el flujo a eventos más genéricos.
En entornos competitivos, la monitorización debe hacerse en tiempo real, porque se necesitan detectar nuevas oportunidades y actuar rápidamente. Esto requiere un análisis continuo de los datos internos de las empresas. ESP permite monitorizar en tiempo real cualquier desviación de la normalidad.
Escenarios
Patrones de compras: Identificar los cambios en el comportamiento de los usuarios, por ejemplo, para tomar decisiones en cuanto a productos a ofrecer, requisitos de almacén y precios de venta.
Regulación: Empresas que tienen que cumplir requisitos de regulación, por ejemplo, empresas públicas con Sarbanes-Oxley, o requisitos de liquidez de las empresas financieras. Se necesita demostrar controles frecuentes para evitar penalizaciones.
Detección de fraude: La actividad inusual que cae dentro de los patrones de negocio habituales puede identificar comportamientos fraudulentos.
Componentes principales
Business Activity Monitoring (BAM): Engloba todos los aspectos de monitorización, recolección de datos, transformación, análisis y presentación.
ESP: Relacionado con la recolección y el procesamiento de los flujos de eventos. Es un canal de entrega a BAM.
Recomendación: Aislar las capas que envuelven al proceso de monitorización de modo que el acoplamiento sea bajo. Capas: publicación de eventos, recolección, procesamiento de reglas, interpretación y presentación.
Arquitectura EDA
Arquitectura EDA: Patrón arquitectónico del software que promueve la producción, detección, consumo y reacción de los eventos. La comunicación entre servicios se produce de manera asíncrona, y están definidos como productores y/o consumidores de eventos. Consigue un acoplamiento bajo.
Objeto de evento: Actividad para ser procesada por un ESP.
Procesador de eventos (ESP): Aplicación que realiza operaciones sobre objetos de eventos: creación, lectura, transformación, composición y eliminación.
Flujo de eventos: Secuencia de objetos de eventos que llegan en el orden en que fueron generados. El ESP desecha los que no tienen importancia y notifica los que sí la tienen.
Componentes de Esper
Clase EPServiceProvider: Instancia del motor. Registra sentencias y salidas de los suscriptores. Se configura mediante un fichero XML o programación.
JDBC: Permite conectarse con una base de datos externa y obtener información a partir de allí.
EPL: Lenguaje similar a SQL para realizar consultas sobre flujos de eventos entrantes.
Integración con JBPM y SCA
Integración con JBPM y SCA: jBPM emite los eventos desde un registro personalizado. Se envían a Esper, que se ejecuta en un contenedor SCA. SCA publica Esper como un servicio accesible externamente, por ejemplo, mediante SOAP o JMS.
Hay varios componentes de Esper: suscripción para recibir eventos publicados, basados en consultas registradas. Estos objetos de notificación y suscripción pueden publicar a su vez en una solución de gestión BAM.