Articulo de referencia

Procesamiento de eventos complejos

El procesamiento de eventos es un método para rastrear y analizar (procesar) flujos de información (datos) sobre sucesos (eventos) [ 1 ] y extraer conclusiones a partir de ellos...

El procesamiento de eventos es un método para rastrear y analizar (procesar) flujos de información (datos) sobre sucesos (eventos) [ 1 ] y extraer conclusiones 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 los 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 ocurrir en las distintas capas de una organización como clientes potenciales, pedidos o llamadas de servicio al cliente . O bien, 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 supera un umbral predefinido de tiempo, temperatura u otro valor.

Los analistas han sugerido que CEP brindará a las organizaciones una nueva forma de analizar patrones en tiempo real y ayudará al área de negocios a comunicarse mejor con los departamentos de TI y servicios. [ 4 ] Desde entonces, CEP se ha convertido en una tecnología habilitadora en muchos sistemas que se utilizan para tomar medidas inmediatas en respuesta a flujos de eventos entrantes. Actualmente se encuentran aplicaciones (2018) en muchos sectores de negocios, incluidos los sistemas de negociación de mercado de valores, dispositivos móviles , operaciones de internet, detección de fraude , la industria del transporte y la recopilación de inteligencia gubernamental .

La gran cantidad de información disponible sobre eventos se denomina a veces nube de eventos. [ 1 ]

Descripción conceptual

Entre miles de eventos entrantes, un sistema de monitoreo puede recibir, por ejemplo, los siguientes tres de la misma fuente:

  1. Las campanas de la iglesia están sonando.
  2. La aparición de un hombre con esmoquin y una mujer con un vestido blanco vaporoso.
  3. Arroz volando por el aire.

A partir de estos eventos, el sistema de monitoreo puede inferir un evento complejo : una boda. CEP como técnica ayuda a descubrir eventos complejos al analizar y correlacionar otros eventos: [ 5 ] las campanas, el hombre y la mujer con atuendo de boda y el arroz volando por el aire.

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 fraude con tarjetas de crédito , monitoreo de la actividad comercial y monitoreo de seguridad. [ 7 ]

Historia

El área de CEP tiene sus 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 y modelo de ejecución genéricos de CEP fue el proyecto Rapide en la Universidad de Stanford , dirigido por David Luckham . Paralelamente, se llevaron a cabo otros dos proyectos de investigación: Infospheres en el Instituto Tecnológico 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 con una serie de simposios sobre procesamiento de eventos organizados por la Event Processing Technical Society , 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 (IO) para proporcionar información sobre las operaciones comerciales mediante el análisis de consultas sobre datos de eventos y flujos de datos en tiempo real. La IO recopila datos en tiempo real y los correlaciona con datos históricos para ofrecer información y análisis. Se pueden combinar múltiples fuentes de datos para proporcionar una visión operativa común que utilice información actualizada.

En la gestión de redes , la gestión de sistemas , la gestión de aplicaciones y la gestión de servicios , se suele hablar de correlación de eventos . Como motores CEP, los motores de correlación de eventos ( correladores de eventos ) analizan una gran cantidad de eventos, identifican los más significativos y activan acciones. Sin embargo, la mayoría de ellos no generan 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).

Ejemplo

Un ejemplo más sistémico de CEP involucra un automóvil, algunos sensores y diversos 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 o se levanta de un asiento.

En la primera situación, el vehículo está en movimiento y la presión de uno de los neumáticos disminuye de 45 psi a 41 psi en 15 minutos. A medida que la presión del neumático baja, se genera una serie de eventos que contienen información sobre dicha presión. Además, se genera una serie de eventos que contienen información sobre la velocidad del vehículo. El procesador de eventos del vehículo 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 genera el evento "lossOfTirePressure". Este nuevo evento puede activar un proceso de reacción para registrar la pérdida de presión en el registro de mantenimiento del vehículo y alertar al conductor a través del portal del vehículo de que la presión de los neumáticos ha disminuido.

En la segunda situación, el coche está en movimiento y la presión de uno de los neumáticos cae de 45 psi a 20 psi en 5 segundos. Se detecta una situación diferente, quizás porque la pérdida de presión se produjo en un periodo de tiempo más corto, o quizás porque la diferencia de valores entre ambos eventos superó un límite predefinido. Esta situación diferente genera un nuevo evento: "reventón de neumático". Este nuevo evento activa un proceso de reacción distinto para alertar inmediatamente al conductor e iniciar las rutinas del ordenador de a bordo para ayudarle a detener el coche sin perder el control por derrape.

Además, los eventos que representan situaciones detectadas también pueden combinarse con otros eventos para detectar situaciones más complejas. Por ejemplo, en la situación final, el coche se mueve con normalidad y sufre un reventón de neumático, lo que provoca que se salga de la carretera y choque contra un árbol, y el conductor salga despedido del vehículo. Se detecta rápidamente una serie de situaciones diferentes. La combinación de "reventón de neumático", "velocidad cero" y "conductor en el asiento izquierdo" en un lapso de tiempo muy corto da como resultado la detección de una nueva situación: "accidente con salida del ocupante". Aunque no existe una medición directa que pueda determinar de forma 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 indicarla. Esta es la esencia de un evento complejo (o compuesto). Es complejo porque no se puede detectar la situación directamente; hay que inferir o deducir que la situación ha ocurrido a partir de una combinación de otros eventos.

Integración con la gestión de procesos empresariales

Una combinació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 un negocio no depende únicamente de sus procesos individuales de principio a fin. Procesos aparentemente dispares pueden afectarse significativamente entre sí. Consideremos 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. Una aplicación de CEP es vincular estos procesos independientes, de modo que si el proceso inicial (monitoreo de averías) descubre una falla basada en fatiga del metal (un evento significativo), se puede crear una acción para aprovechar el segundo proceso (ciclo de vida) y emitir una llamada a revisión de los vehículos que utilizan el mismo lote de metal que se detectó como defectuoso en el proceso inicial.

La integración de CEP y BPM debe darse en dos niveles: a nivel de conocimiento del negocio (los usuarios deben comprender los beneficios holísticos potenciales de sus procesos individuales) y a nivel tecnológico (es necesario un método para que CEP interactúe con la implementación de BPM). Para una revisión reciente del estado del arte sobre la integración de CEP con BPM, frecuentemente denominada Gestión de Procesos de Negocio Orientada a Eventos, consulte [ 12 ] .

Podría decirse que el papel de los sistemas CEP orientados a la computación se solapa con el de la tecnología de reglas de negocio.

Por ejemplo, los centros de atención al cliente utilizan 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 la inteligencia empresarial y otras aplicaciones de apoyo a la toma de decisiones . Estas " aplicaciones de recomendación " ayudan a los agentes a brindar un servicio personalizado basado en la experiencia de cada cliente. La aplicación CEP puede recopilar datos sobre lo que los clientes que están al teléfono están haciendo en ese momento, o cómo han interactuado recientemente con la empresa en otros canales, incluyendo en sucursales o en la web a través de funciones de autoservicio, mensajería instantánea y correo electrónico. Luego, la aplicación analiza la experiencia total del cliente y recomienda guiones o pasos a seguir que guían al agente telefónico y, con suerte, mantienen al cliente satisfecho. [ 13 ]

Integración con bases de datos de series temporales

Una base de datos de series temporales es un sistema de software optimizado para el manejo de datos organizados en el tiempo. Las series temporales son secuencias finitas o infinitas de datos, donde cada dato tiene una marca de tiempo asociada y la secuencia de marcas de tiempo es no decreciente. Los elementos de una serie temporal se denominan a menudo ticks. Las marcas de tiempo no tienen por qué ser ascendentes (simplemente no decrecientes), ya que en la práctica la resolución temporal de algunos sistemas, como las fuentes de datos financieros, puede ser muy 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 para el análisis típicamente asociado con el procesamiento de eventos complejos. Esto puede aplicarse a cualquier sector vertical, como el financiero [ 14 ] , y en colaboración con otras tecnologías como BPM.

El caso ideal para el análisis CEP consiste en considerar las series temporales históricas y los datos en tiempo real como un único continuo temporal. Lo que ocurrió ayer, la semana pasada o el mes pasado es simplemente una extensión de lo que sucede hoy y lo que podría suceder en el futuro. Un ejemplo podría ser la comparación de los volúmenes de mercado actuales con los volúmenes, precios y volatilidad históricos para la lógica de ejecución de operaciones. O bien, la necesidad de actuar en función de los precios de mercado en tiempo real podría implicar comparaciones con índices de referencia que incluyan movimientos sectoriales e índices, cuyas tendencias intradiarias e históricas miden la volatilidad y suavizan los valores atípicos.

Internet de las cosas y sistemas ciberfísicos inteligentes

El procesamiento de eventos complejos es un elemento clave en entornos de Internet de las cosas (IoT) y sistemas ciberfísicos (CPS) inteligentes. Procesar flujos densos y heterogéneos provenientes de diversos sensores y comparar patrones con dichos flujos es una tarea típica en estos casos. [ 15 ] La mayoría de estas técnicas se basan en el hecho de que representar el estado del sistema 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 generalmente requiere la combinación de transformaciones de modelos y CEP. [ 16 ]

Véase también

Proveedores y productos

  • Apama de Software AG : supervisa flujos de eventos de rápida evolución, detecta y analiza patrones importantes y actúa según reglas predefinidas. [ 17 ]
  • Azure Stream Analytics
  • Fusión de babas
  • Esper Procesamiento de eventos complejos para Java y C# (GPLv2).
  • Feedzai - Pulse
  • Implementación del motor CEP de Microsoft StreamInsight [ 18 ]
  • openPDC : un conjunto de aplicaciones para el procesamiento de datos de series temporales en tiempo real.
  • Oracle Event Processing : para crear aplicaciones que filtren, correlacionen y procesen eventos en tiempo real.
  • SAP ESP : una plataforma de desarrollo e implementación rápida y de baja latencia que permite procesar múltiples flujos de datos en tiempo real [ 19 ].
  • La plataforma de procesamiento de flujos de SQLstream, s-Server, proporciona una plataforma de computación relacional de flujos para analizar grandes volúmenes de datos de servicios, sensores, máquinas y archivos de registro en tiempo real.
  • TIBCO BusinessEvents y Streambase : plataforma CEP y procesamiento de flujos de eventos de alto rendimiento y baja latencia.
  • Eventos empresariales de WebSphere
  • Apache Flink Marco de procesamiento de flujos distribuidos de código abierto con una API CEP [ 20 ] para Java y Scala.
  • Apache Storm es un sistema de computación distribuida en tiempo real, gratuito y de código abierto. Storm procesa flujos de datos ilimitados en tiempo real.

Referencias

  1. 1 2 3 Luckham, David C. (2012). Procesamiento de eventos para empresas: Organización de la empresa en tiempo real . Hoboken, Nueva Jersey: John Wiley & Sons, Inc. pág.  3. ISBN 978-0-470-53485-4.
  2. Bates, John (15 de junio de 2011), John Bates de Progress explica cómo funciona el procesamiento de eventos complejos y cómo puede simplificar el uso de algoritmos para encontrar y capturar oportunidades de trading , Fix Global Trading , consultado el 14 de mayo de 2012.
  3. Crosman, Penny (18 de mayo de 2009), Aleri y Ravenpack incorporarán noticias a los algoritmos de negociación , Wall Street y Tecnología
  4. McKay, Lauren (13 de agosto de 2009), Forrester da la bienvenida al procesamiento de eventos complejos , Destination CRM
  5. D. Luckham, "El poder de los eventos: una introducción al procesamiento de eventos complejos en sistemas empresariales distribuidos", Addison-Wesley, 2002.
  6. O. Etzion y P. Niblett, "Procesamiento de eventos en acción", Manning Publications, 2010.
  7. Detalles de productos comerciales y casos de uso
  8. Leavit, Neal (abril de 2009), Procesamiento de eventos complejos preparado para el crecimiento , Computer, vol. 42, n.º 4, págs. 17-20 Washington
  9. ^ Chandy, Mani K.; Etzión, Ofer; Ammon, Rainer von (22 de diciembre de 2017). Chandy, K. Mani; Etzión, Ofer; Ammón, Rainer von (eds.). "10201 Resumen ejecutivo y manifiesto: procesamiento de eventos" . Drops-Idn/V2/Document/10.4230/Dagsemproc.10201.1 . Actas del seminario Dagstuhl. 10201 . Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Alemania: 1– 60. doi : 10.4230/DagSemProc.10201.1 a través del servidor de publicaciones en línea de investigación de Dagstuhl.
  10. JP Martin-Flatin, G. Jakobson y L. Lewis, "Correlación de eventos en la gestión integrada: lecciones aprendidas y perspectivas", Journal of Network and Systems Management, vol. 17, n.º 4, diciembre de 2007.
  11. C. Janiesch, M. Matzner y O. Müller: "Un modelo para la gestión de actividades empresariales basada en eventos", Lecture Notes in Computer Science, 2011, Volumen 6896/2011, 17-28, doi : 10.1007/978-3-642-23059-2_4
  12. J. Krumeich, B. Weis, D. Werth y P. Loos: "Gestión de procesos de negocio basada en eventos: ¿dónde estamos ahora?: Una síntesis y análisis exhaustivos de la literatura", Business Process Management Journal, 2014, Volumen 20, 615-633, doi : 10.1108/BPMJ-07-2013-0092
  13. Kobielus, James (septiembre de 2008), Realmente feliz en tiempo real , Destination CRM
  14. "Series temporales en finanzas" . cs.nyu.edu .
  15. "Balogh, Dávid, Ráth, Varró, Vörös: Monitoreo distribuido y heterogéneo basado en eventos en sistemas ciberfísicos inteligentes, en 1er Taller sobre Monitoreo y Pruebas de Sistemas Ciberfísicos, Viena, Austria. 2016" .
  16. I. Dávid, I. Ráth, D. Varró: Fundamentos para transformaciones de modelos de transmisión mediante procesamiento de eventos complejos, International Journal on Software and Systems Modeling, pp. 1-28, 2016. doi : 10.1007/s10270-016-0533-1
  17. Descripción general de Apama Real-Time Analytics. Archivado el 25/10/2015 en Wayback Machine . Softwareag.com. Consultado el 18/09/2013.
  18. "Microsoft StreamInsight" . technet.microsoft.com . 28 de julio de 2016.
  19. "SAP ESP - Comunidad de desarrolladores" . Archivado del original el 5 de enero de 2015. Consultado el 17 de julio de 2014 .
  20. "Documentación de Apache Flink 1.2: FlinkCEP - Procesamiento de eventos complejos para Flink" . ci.apache.org .