¿Qué es un CEP?

(Gracias Edu, parte es tuya ;))

El CEP (Complex Event processing) es una tecnología software que permite ejecutar operaciones sobre eventos, leyéndolos, creándolos, transformándolos e incluso abstrayendo un conjunto de eventos en un evento complejo que facilite su procesamiento:

  • Monitorizar múltiples flujos de eventos de un sistema.
  • Procesar los flujos de eventos para reconocer eventos significantes mediante la detección de patrones de comportamiento de eventos.
  • El motor CEP permite detectar patrones complejos de eventos en los que el tiempo puede ser una variable fundamental
  • El tiempo es una variable importante. Todos los eventos recibidos en un CEP son registrados con el tiempo.
  • Toma de decisiones en tiempo real sobre el sistema creando otros eventos derivados y enviándolos de vuelta al sistema u otros a sistemas externos.

Un ejemplo típico de utilización de esta tecnología para monitorizar eventos de negocio es la detección de Fraude, detectar una actividad inusual que cae fuera de un patrón de negocio normal puede ayudar a identificar un posible comportamiento fraudulento (ej. el caso una entidad bancaria que recibe operaciones bancaria de cobro sobre una cuenta de origen desconocido hasta el momento y de dudosa garantía).

Un aspecto fundamental en la tecnología CEP es que permite observar y actuar en tiempo real no solo sobre un único evento, sino sobre una composición compleja de eventos de distinto tipo que suceden en momentos y contextos distintos.

En el mundo Java el CEP más conocido es el producto Esper que ofrece estas características:

  • Solución open source
  • Solución Java 100%, con porting a .Net (NESPER)
  • Solución de alto rendimiento, capaz de procesar
  • La definición de patrones se realiza mediante el lenguaje EPL (Event Processing Language) es un lenguaje estilo SQL con sintaxis SELECT, FROM, WHERE, GROUP, ORDER, enfocado a realizar consultas sobre los eventos de un CEP.

  • Integración con Spring
  • Es el core de Oracle CEP (Oracle CEP es un branch de Esper)
  • Ofrece versión Enterprise que ofrece características empresariales como:
    • GUI Flex para diseñar y gestionar el CEP
    • Editor de EPL
    • Displays interactivos (charts, tiempos,…) actualizados continuamente
    • Despliegue en caliente de modelos EPL
    • Integración con Cachés distribuidas (Coherence, GemFire, Infinispan, Terracotta,…)
    • Simulación

Respuestas

  1. […] habéis entendido algo de lo que digo habréis encontrado bastante similitudes con un CEP (Complex Event Processing), de hecho ambas tecnologías resuelven los mismos casos de […]

  2. […] Siguiendo con este ya clásico post: ¿Qué es un CEP? […]

Replica a ¿Cuándo usar un CEP? | Un poco de Java Cancelar la respuesta