El procesamiento de eventos es un método para rastrear y analizar (procesar) flujos de información (datos) sobre cosas que suceden (eventos), [1] y derivar una conclusión a partir de ellos. El procesamiento de eventos complejos ( CEP ) consiste en un conjunto de conceptos y técnicas desarrollados a principios de la década de 1990 para procesar eventos en tiempo real y extraer información de flujos de eventos a medida que llegan. El objetivo del procesamiento de eventos complejos es identificar eventos significativos (como oportunidades o amenazas) [2] en situaciones en tiempo real y responder a ellos lo más rápido posible.
Estos eventos pueden estar sucediendo en las distintas capas de una organización, como oportunidades de venta, pedidos o llamadas de servicio al cliente . O pueden ser noticias, [3] mensajes de texto , publicaciones en redes sociales , procesos comerciales (como la cadena de suministro), informes de tráfico , informes meteorológicos u otros tipos de datos. [1] Un evento también puede definirse como un "cambio de estado", cuando una medición excede un umbral predefinido de tiempo, temperatura u otro valor.
Los analistas han sugerido que el CEP brindará a las organizaciones una nueva forma de analizar patrones en tiempo real y ayudará al lado comercial a comunicarse mejor con los departamentos de TI y de servicio. [4] Desde entonces, el CEP se ha convertido en una tecnología habilitadora en muchos sistemas que se utilizan para tomar medidas inmediatas en respuesta a flujos entrantes de eventos. Ahora se pueden encontrar aplicaciones (2018) en muchos sectores comerciales, incluidos los sistemas de negociación del mercado de valores, los dispositivos móviles , las operaciones de Internet, la detección de fraudes , la industria del transporte y la recopilación de inteligencia gubernamental .
La gran cantidad de información disponible sobre eventos a veces se denomina “nube de eventos”. [1]
Entre miles de eventos entrantes, un sistema de monitoreo puede, por ejemplo, recibir los tres siguientes de la misma fuente:
A partir de estos eventos, el sistema de monitoreo puede inferir un evento complejo : una boda. El CEP como técnica ayuda a descubrir eventos complejos analizando y correlacionando otros eventos: [5] las campanas, el hombre y la mujer en traje de boda y el arroz volando por el aire.
El CEP se basa en una serie de técnicas, [6] entre las que se incluyen:
Existen aplicaciones comerciales de CEP en una variedad de industrias e incluyen la detección de fraudes con tarjetas de crédito , el monitoreo de la actividad comercial y el monitoreo de seguridad. [7]
El área CEP tiene raíces en la simulación de eventos discretos , el área de bases de datos activas y algunos lenguajes de programación. La actividad en la industria fue precedida por una ola de proyectos de investigación en la década de 1990. Según [8] el primer proyecto que allanó el camino hacia un lenguaje CEP genérico y un modelo de ejecución fue el proyecto Rapide en la Universidad de Stanford , dirigido por David Luckham . En paralelo ha habido otros dos proyectos de investigación: Infospheres en el Instituto de Tecnología de California , dirigido por K. Mani Chandy , y Apama en la Universidad de Cambridge dirigido por John Bates. Los productos comerciales dependían de los conceptos desarrollados en estos y algunos proyectos de investigación posteriores. Los esfuerzos de la comunidad comenzaron en una serie de simposios de procesamiento de eventos organizados por la Sociedad Técnica de Procesamiento de Eventos , y más tarde por la serie de conferencias ACM DEBS. Uno de los esfuerzos de la comunidad fue producir el manifiesto de procesamiento de eventos. [9]
CEP se utiliza en productos de inteligencia operativa (OI) para proporcionar información sobre las operaciones comerciales mediante la ejecución de análisis de consultas en relación con transmisiones en vivo y datos de eventos. OI recopila datos en tiempo real y los correlaciona con datos históricos para proporcionar información y análisis. Se pueden combinar múltiples fuentes de datos para proporcionar una imagen operativa común que utilice información actual.
En la gestión de redes , sistemas , aplicaciones y servicios , la gente suele referirse a la correlación de eventos . Como motores CEP, los motores de correlación de eventos ( correladores de eventos ) analizan una masa de eventos, identifican los más significativos y desencadenan acciones. Sin embargo, la mayoría de ellos no producen nuevos eventos inferidos. En cambio, relacionan eventos de alto nivel con eventos de bajo nivel. [10]
Los motores de inferencia , por ejemplo, los motores de razonamiento basados en reglas , suelen producir información inferida en inteligencia artificial . Sin embargo, no suelen producir información nueva en forma de eventos complejos (es decir, inferidos).
Un ejemplo más sistemático de CEP implica un automóvil, algunos sensores y varios eventos y reacciones. Imaginemos que un automóvil tiene varios sensores: uno que mide la presión de los neumáticos, otro que mide la velocidad y otro que detecta si alguien se sienta en un asiento o se levanta de él.
En la primera situación, el coche está en movimiento y la presión de uno de los neumáticos pasa de 45 psi a 41 psi en 15 minutos. A medida que la presión del neumático disminuye, se genera una serie de eventos que contienen la presión del neumático. Además, se genera una serie de eventos que contienen la velocidad del coche. El procesador de eventos del coche puede detectar una situación en la que una pérdida de presión de los neumáticos durante un período de tiempo relativamente largo da como resultado la creación del evento "lossOfTirePressure". Este nuevo evento puede desencadenar un proceso de reacción para anotar la pérdida de presión en el registro de mantenimiento del coche y alertar al conductor a través del portal del coche de que la presión de los neumáticos se ha reducido.
En la segunda situación, el coche está en movimiento y la presión de uno de los neumáticos baja de 45 psi a 20 psi en 5 segundos. Se detecta una situación diferente, tal vez porque la pérdida de presión se produjo en un período de tiempo más corto, o tal vez porque la diferencia de valores entre cada evento fue mayor que un límite predefinido. La situación diferente da como resultado la generación de un nuevo evento "blowOutTire". Este nuevo evento desencadena un proceso de reacción diferente para alertar inmediatamente al conductor e iniciar rutinas de computadora de a bordo para ayudarlo a detener el automóvil sin perder el control por derrapar.
Además, los eventos que representan situaciones detectadas también se pueden combinar con otros eventos para detectar situaciones más complejas. Por ejemplo, en la situación final, el automóvil se mueve con normalidad y sufre un pinchazo de un neumático, lo que hace que el automóvil se salga de la carretera y choque contra un árbol, y el conductor salga despedido del automóvil. Se detectan rápidamente una serie de situaciones diferentes. La combinación de "blowOutTire", "zeroSpeed" y "driverLeftSeat" en un período de tiempo muy corto da como resultado la detección de una nueva situación: "occupantThrownAccident". Aunque no existe una medición directa que pueda determinar de manera concluyente que el conductor salió despedido o que hubo un accidente, la combinación de eventos permite detectar la situación y crear un nuevo evento para indicar la situación detectada. Esta es la esencia de un evento complejo (o compuesto). Es complejo porque no se puede detectar directamente la situación; se debe inferir o deducir que la situación se ha producido a partir de una combinación de otros eventos.
Una adaptación natural para CEP ha sido la gestión de procesos de negocio (BPM). [11] BPM se centra en los procesos de negocio de extremo a extremo, con el fin de optimizar y alinear continuamente su entorno operativo.
Sin embargo, la optimización de una empresa no depende únicamente de sus procesos individuales de principio a fin. Procesos aparentemente dispares pueden afectarse entre sí de manera significativa. Considere este escenario: en la industria aeroespacial, es una buena práctica monitorear las averías de los vehículos para buscar tendencias (determinar posibles debilidades en los procesos de fabricación, materiales, etc.). Otro proceso independiente monitorea los ciclos de vida de los vehículos operativos actuales y los desmantela cuando corresponde. Un uso del CEP es vincular estos procesos separados, de modo que en el caso de que el proceso inicial (monitoreo de averías) descubra un mal funcionamiento basado en la fatiga del metal (un evento significativo), se pueda crear una acción para explotar el segundo proceso (ciclo de vida) para emitir un retiro del mercado de los vehículos que utilizan el mismo lote de metal descubierto como defectuoso en el proceso inicial.
La integración de CEP y BPM debe darse en dos niveles, tanto en el nivel de concienciación empresarial (los usuarios deben comprender los posibles beneficios holísticos de sus procesos individuales) como en el nivel tecnológico (debe existir un método mediante el cual CEP pueda interactuar con la implementación de BPM). Para consultar una revisión reciente del estado del arte sobre la integración de CEP con BPM, que con frecuencia se denomina Gestión de procesos empresariales basada en eventos, consulte [12] .
Podría decirse que el rol del CEP orientado a la computación se superpone con el de la tecnología de reglas de negocio.
Por ejemplo, los centros de atención al cliente están utilizando el CEP para el análisis del flujo de clics y la gestión de la experiencia del cliente. El software CEP puede incorporar información en tiempo real sobre millones de eventos (clics u otras interacciones) por segundo en aplicaciones de inteligencia empresarial y otras aplicaciones de apoyo a la toma de decisiones . Estas " aplicaciones de recomendación " ayudan a los agentes a proporcionar un servicio personalizado en función de la experiencia de cada cliente. La aplicación CEP puede recopilar datos sobre lo que están haciendo actualmente los clientes por teléfono o sobre cómo han interactuado recientemente con la empresa en otros canales, como la sucursal o la Web a través de funciones de autoservicio, mensajería instantánea y correo electrónico. A continuación, la aplicación analiza la experiencia total del cliente y recomienda guiones o pasos siguientes que guían al agente por teléfono y, con suerte, mantienen satisfecho al cliente. [13]
Una base de datos de series temporales es un sistema de software optimizado para el manejo de datos organizados por tiempo. Las series temporales son secuencias finitas o infinitas de elementos de datos, donde cada elemento tiene una marca de tiempo asociada y la secuencia de marcas de tiempo no es decreciente. Los elementos de una serie temporal a menudo se denominan ticks. No es necesario que las marcas de tiempo sean ascendentes (simplemente no decrecientes) porque en la práctica la resolución temporal de algunos sistemas, como las fuentes de datos financieros, puede ser bastante baja (milisegundos, microsegundos o incluso nanosegundos), por lo que los eventos consecutivos pueden tener marcas de tiempo iguales.
Los datos de series temporales proporcionan un contexto histórico al análisis que normalmente se asocia con el procesamiento de eventos complejos. Esto puede aplicarse a cualquier industria vertical, como las finanzas [14] y en cooperación con otras tecnologías, como BPM.
El caso ideal para el análisis de CEP es considerar las series temporales históricas y los datos de transmisión en tiempo real como un único continuo temporal. Lo que sucedió ayer, la semana pasada o el mes pasado es simplemente una extensión de lo que está ocurriendo hoy y lo que puede ocurrir en el futuro. Un ejemplo puede implicar comparar los volúmenes actuales del mercado con los volúmenes, precios y volatilidad históricos para la lógica de ejecución de operaciones. O la necesidad de actuar sobre los precios del mercado en vivo puede implicar comparaciones con puntos de referencia que incluyan movimientos sectoriales e índices, cuyas tendencias intradiarias e históricas miden la volatilidad y suavizan los valores atípicos.
El procesamiento de eventos complejos es un elemento clave en los entornos de Internet de las cosas (IoT) y también en los sistemas ciberfísicos inteligentes (CPS). Procesar flujos densos y heterogéneos de varios sensores y hacer coincidir patrones con esos flujos es una tarea típica en esos casos. [15] La mayoría de estas técnicas se basan en el hecho de que representar el estado del sistema de IoT y sus cambios es más eficiente en forma de flujo de datos, en lugar de tener un modelo estático y materializado. El razonamiento sobre estos modelos basados en flujos difiere fundamentalmente de las técnicas de razonamiento tradicionales y, por lo general, requiere la combinación de transformaciones de modelos y CEP. [16]