Procesamiento de eventos complejos
El procesamiento de eventos complejos ( CEP , alemán procesamiento de eventos complejos ) es una lista de ciencias de la computación que se ocupa de la detección, análisis y procesamiento de agrupaciones de eventos interdependientes( se emplean eventos en inglés ). Por lo tanto, CEP es un término colectivo para los métodos, técnicas y herramientas para procesar eventos mientras están sucediendo, es decir, de manera continua y rápida. El CEP obtiene un conocimiento superior y valioso de los eventos en forma de los llamados eventos complejos, i. H. Situaciones que solo pueden reconocerse como una combinación de varios eventos. Para procesar varios tipos de flujos de datos en tiempo real y extraer y analizar los eventos, los sistemas relevantes deben hacer frente a cargas elevadas. Las áreas de aplicación son, por ejemplo, la monitorización de redes, la seguridad pública, el control de desastres o la gestión energética.
Información general
En aplicaciones informáticas controladas por eventos, la secuencia del programa está controlada por una secuencia estrictamente secuencial de eventos. Es decir, eventos individuales como B. un clic del mouse, la recepción de un correo electrónico o el final de un proceso de carga desencadenan más eventos dependientes, como B. Guardar un archivo en el disco duro, iluminar un mensaje o abrir una ventana de programa.
El CEP se ocupa de los eventos que ocurren múltiples de forma redundante, múltiples que se ejecutan uno al lado del otro y múltiples encadenados no confiables. Además de que la lógica de ocurrencia no está enfocada, se define el enfoque ( lógica difusa ). El CEP entrega eventos ajustados como estados que eliminan los eventos fuente no deseados o innecesarios.
Eventos
El procesamiento de eventos complejos utiliza el término evento con los siguientes significados:
- Todo lo que sucede o se considera que sucedió
- Un objeto que representa, codifica o almacena un evento; generalmente con el propósito de procesamiento basado en máquina
- Un evento es un evento dentro de un sistema o dominio específico . Es algo que ya sucedió o se ve como algo que sucedió dentro de este dominio de aplicación. El término evento también se usa para describir una entidad de programación que representa tal evento en un sistema de TI.
En particular, CEP se ocupa del manejo de eventos que solo ocurren cuando varios eventos interactúan. Estos tienen, por ejemplo, las siguientes características opcionales:
- los eventos pueden ser interdependientes y ocurrir varias veces por razones físicas: un evento complejo no muestra ninguna repetición, sino solo cambios significativos en un estado. Esto requiere filtrar los eventos.
- los eventos se alternan uno tras otro u ocurren simultáneamente al mismo tiempo.
- los eventos dependen jerárquicamente unos de otros y ocurren repetidamente en la misma cadena.
- los eventos son todos independientes: un evento complejo es un compuesto de varios eventos y define un estado.
- los eventos pueden estar relacionados: Un evento complejo ocurre cuando una determinada relación, por ejemplo una relación difusa, se cumple en un intervalo de tiempo.
- algunos de los eventos ocurren en procesos concurrentes: Un evento complejo ocurre cuando una cierta mayoría de eventos ha ocurrido.
Historia del término
Originalmente, el término fue introducido por primera vez por David Luckham en su libro The Power of Events . Derivó el término del procesamiento de eventos , un conjunto de tecnologías y conceptos que se utilizaron por primera vez alrededor de 1950. Con el tiempo se han ido incorporando conceptos de tecnología de redes, bases de datos activas, middleware , arquitectura orientada a servicios y otras áreas que también tienen que ver con el procesamiento de eventos.
Hoy en día, la comunidad está dividida sobre el término complejo , ya que en lugar de ocultar la complejidad, a menudo se intenta ignorarla arbitrariamente. Por esta razón, el procesamiento de eventos se usa a menudo como sinónimo de procesamiento de eventos complejos nuevamente en la actualidad. La simplificación conceptual contradice la clasificación del procesamiento impulsado por eventos, que se conoce en el área de Arquitectura dirigida por eventos (EDA).
Además de los términos procesamiento de eventos complejos y procesamiento de eventos , el término procesamiento de eventos comerciales también se utiliza por razones de marketing .
Conceptos
En Procesamiento de eventos complejos , hasta ahora se han descrito conceptos de alto nivel que tratan el tema del procesamiento de eventos y el reconocimiento de patrones de eventos. Algunos de estos términos están muy sobrecargados porque también se utilizan en otras áreas de tecnología de la información , matemáticas y, en algunas áreas, en administración de empresas . Incluso si esta sobrecarga de términos ha provocado alguna discusión dentro de la comunidad de procesamiento de eventos / procesamiento de eventos complejos, los términos son compatibles con la literatura existente. Sus significados pueden derivarse del contexto utilizado.
El procesamiento de eventos complejos va un paso más allá y define un evento virtual como "un evento que en realidad no ocurre en el mundo físico pero que parece sugerir un evento en el mundo real; un evento que uno imagina, modela o simula". Un evento virtual se trata como cualquier otro evento en CEP.
Obviamente, casi todo lo que existe en el mundo real o dentro de una computadora puede verse como un evento para que lo utilice CEP. La definición es intencionalmente tan amplia que CEP pretende establecer relaciones tanto entre los diferentes niveles de eventos como entre los patrones de diseño utilizados para crear estos eventos para que su semántica, medio de almacenamiento y mecanismo de transmisión no se vean comprometidos. En algunas áreas, esta definición es compatible (aunque más amplia) con la definición de evento de la teoría de la probabilidad .
Niveles de abstracción y dependencias
El concepto básico de CEP es una estructuración de los eventos en niveles de abstracción . A nivel de abstracción, los eventos individuales dependen unos de otros y se influyen entre sí (dependencia horizontal) . Si combina varios de estos eventos en un grupo y forma un evento de nivel superior a partir de ellos, esto se denomina agregación o evento complejo. Este evento complejo depende verticalmente de los eventos individuales que lo componen y que son un nivel de abstracción más bajo.
Además de la abstracción vertical, también existe la abstracción horizontal . Eventos a diferentes niveles, p. Ej. B. Los eventos de monitoreo de la red, los eventos de la base de datos y los incidentes de procesos comerciales están vinculados de tal manera que se puede derivar un evento complejo de mayor valor. Actualmente, existe poca experiencia en la implementación de la formación de dependencias horizontales , ya que no es una tarea trivial describir la causalidad de las ocurrencias entre los niveles individuales.
Actividades académicas y empresariales
El tema del procesamiento de eventos complejos es objeto de investigación académica y desarrollo de productos por parte de las empresas de software.
Ha sido parte de varios proyectos de investigación en universidades desde alrededor del cambio de milenio. La siguiente lista da una idea.
Proyectos de investigación académica
- iPRODICT (Centro Alemán de Investigación de Inteligencia Artificial, Universidad de Saarland) : En un equipo interdisciplinario de investigadores y expertos de la industria, iPRODICT está investigando un enfoque inteligente para la adaptación y mejora parcialmente automatizada de los procesos comerciales. Además del análisis de los datos de proceso recopilados y la evaluación en tiempo real de la información del contexto actual de las redes de sensores, el flujo de proceso óptimo se anticipa de una manera innovadora utilizando cálculos de pronóstico (iPRODICT). De esta manera, los procesos se pueden adaptar individualmente a la situación del contexto respectivo en tiempo real utilizando métodos de análisis de big data. El enfoque iPRODICT desarrollado se implementa, prueba y valida en forma de un prototipo integrado dentro de un escenario de aplicación ambicioso desde el proceso de fabricación en el socio de aplicaciones Saarstahl AG. Esto tiene como objetivo, por un lado, subrayar la viabilidad del enfoque y, por otro lado, hacer que los beneficios potenciales, como la anticipación temprana de problemas de proceso basada en el análisis de grandes cantidades de datos, sean mensurables.
- STREAM (Universidad de Stanford) : la motivación del proyecto STREAM es la necesidad de realizar consultas continuas y a largo plazo sobre los flujos de datos, por ejemplo, de la supervisión de redes, la gestión de datos de telecomunicaciones, la producción y las redes de sensores, en lugar de consultas puntuales sobre los datos almacenados. conjuntos.
- Rapide (Universidad de Stanford) : para poder describir formalmente eventos y sus dependencias horizontales y verticales, en la Universidad de Stanford se desarrolló un lenguaje de procesamiento de eventos (EPL) llamado Rapide . Está destinado a integrarse como una extensión en lenguajes orientados a objetos modernos como Java o C #.
- Telegraph (UC Berkeley) : Telegraph es un sistema de flujo de datos adaptativo que permite acceder, combinar y analizar datos de diferentes fuentes. Como sistema de flujo de datos, Telegraph puede procesar tanto los datos almacenados como los flujos de datos de las redes de sensores.
- Aurora (Universidad de Brandeis, Universidad de Brown y MIT) : Aurora aborda tres amplios tipos de aplicaciones en un solo marco. Se trata de un seguimiento continuo en tiempo real de las aplicaciones, al mismo tiempo el procesamiento de datos persistentes y archivados en grandes cantidades, así como la combinación de datos en tiempo real con datos históricos de forma eficiente.
- Borealis (Universidad de Brandeis, Universidad de Brown y MIT) : Borealis es un motor de flujo de datos distribuidos que se basa en las experiencias de los proyectos Aurora y Medusa. El software está diseñado para computadoras basadas en Linux x86.
- SASE (UC Berkeley / UMass Amherst) : un número creciente de aplicaciones requiere un gran volumen de datos en tiempo real, por ejemplo, en las áreas de servicios financieros, monitoreo de redes y redes de sensores. Estos requisitos se implementan en el proyecto SASE mediante un lenguaje declarativo de eventos con semántica formal, los fundamentos teóricos del CEP sobre una implementación eficiente basada en máquina.
- Cayuga (Universidad de Cornell) : Publicar / Suscribirse es un paradigma popular para expresar el interés de un usuario ("suscripción") en eventos ("publicaciones"). Cayuga trata el tema de las suscripciones con estado y permite a los usuarios mantener el contexto en múltiples eventos.
- Odysseus (Universidad de Oldenburg) : Odysseus es un marco para el procesamiento de flujos de datos y eventos cuya arquitectura se basa en componentes flexibles, ampliables y adaptables. Esto hace posible integrar los enfoques heterogéneos de los diferentes sistemas en un sistema para combinar las ventajas o agregar nuevos conceptos rápidamente. El procesamiento permite diferentes modelos de datos que pueden ser definidos por cualquier lenguaje de consulta y que abordan conceptos adicionales como optimización, gestión de carga, programación, distribución o robustez.
- PIPES (Universidad de Marburg) : PIPES se ocupa de los problemas de investigación de la gestión de memoria adaptativa para la programación y optimización de consultas en un entorno de ejecución genérico, la capacidad de mantenimiento de flujos de datos y la indexación de consultas históricas, el mantenimiento de variables de estimación no parametrizadas a través de datos flujos, optimizaciones estáticas y dinámicas de múltiples consultas y operaciones de combinación múltiple ordenadas sobre flujos de datos.
- CEPiL (Universidad de Stuttgart, GeorgiaTech) . El objetivo central del proyecto "CEP in the Large" (CEPiL) es implementar un procesamiento de eventos complejo y altamente escalable con alta dinámica de los componentes involucrados en el procesamiento de eventos, así como productores y consumidores de información. En particular, el sistema desarrollado como parte del proyecto debe cumplir con los requisitos adicionales de las aplicaciones actuales con respecto a la solidez y la seguridad de los datos.
- SpoVNet (Instituto de Tecnología de Karlsruhe, Universidad de Stuttgart, Universidad de Mannheim, Universidad de Tübingen) . El objetivo de la arquitectura SpoVnet es mapear aplicaciones organizadas descentralmente de forma espontánea a redes heterogéneas con la calidad de servicio requerida. En particular, en este proyecto se desarrollaron procedimientos adaptativos para la comunicación basada en eventos, que adaptan las topologías de superposición de los intermediarios de eventos a las estructuras de red que cambian dinámicamente.
- BeepBeep (Université du Québec à Chicoutimi) : BeepBeep 3 es un motor de flujo de eventos: recibe un flujo de eventos generado por una aplicación o un proceso y genera un nuevo flujo de eventos en tiempo real. Internamente, BeepBeep analiza y transforma el flujo de eventos atravesando una cadena de procesadores de eventos básicos, enrutando la salida de uno (o más) procesadores a la entrada del siguiente.
Además de los proyectos mencionados, se continúa investigando el procesamiento de eventos complejos o el procesamiento de eventos . Se puede obtener una descripción general de las publicaciones actuales del entorno de investigación en Link Collection event-based.org mantenido por Arnd Schröter.
enlaces web
- complexevents.com Portal de procesamiento de eventos complejos que, entre otras cosas, cuidado por David Luckham
- ACM Conference on Distributed Event-Based Systems (DEBS) es una conferencia especializada en sistemas basados en eventos.
Evidencia individual
- ^ Michael Eckert, Francois Bry: Procesamiento de eventos complejos (CEP). Gesellschaft für Informatik , 5 de mayo de 2009, consultado el 29 de julio de 2020 .
- ↑ Fraunhofer FOKUS Competence Center Public IT: El sonar de tendencias ÖFIT en seguridad de TI - Procesamiento de eventos complejos. Abril de 2016, consultado el 30 de mayo de 2016 .
- ↑ a b c D. Luckham, R. Schulte: Glosario de procesamiento de eventos - Versión 1.1 Julio de 2008
- ^ O. Etzion, P. Niblett: Procesamiento de eventos en acción . Publicaciones Manning, que aparecerá en mayo de 2010, ISBN 978-1-935182-21-4
- ^ D. Luckham: El poder de los eventos: una introducción al procesamiento de eventos complejos en sistemas empresariales distribuidos . Addison-Wesley Professional, 2002, ISBN 978-0-201-72789-0
- ^ D. Luckham: una breve historia del procesamiento de eventos complejos , parte 1: comienzos. (PDF; 198 kB) 2007
- ↑ Proyecto de investigación iPRODICT. Consultado el 7 de diciembre de 2015 .