Apama es un motor de procesamiento de eventos complejos (CEP) y procesamiento de flujo de eventos (ESP) , desarrollado por Software AG . Apama sirve como una plataforma para realizar análisis de transmisión en una gama de entradas y aplicaciones de alto volumen / baja latencia, como dispositivos IoT , intercambios financieros, detección de fraude, redes sociales y similares. [2] Los usuarios pueden definir patrones de datos para escuchar y acciones a tomar cuando se encuentran estos patrones, que se definen en el Lenguaje Específico de Dominio proporcionado llamado Lenguaje de Procesamiento de Eventos (EPL). El motor principal de Apama está escrito en C ++ ; el proceso también puede contener opcionalmente una JVM para interactuar con el usuario creadoCódigo Java . Apama se centra en el alto rendimiento, la baja latencia y el rendimiento eficiente de la memoria; utilizado tanto en pruebas de rendimiento de Intel [3] como en máquinas más pequeñas como Raspberry Pi , [4] enrutadores y otros dispositivos Edge / IoT [5] . Es particularmente digno de mención dentro del espacio CEP por ser uno de los primeros proyectos , un líder del mercado a largo plazo, [6] [7] [8] [9] e innovador de muchas patentes. [10] [11] [12] [13] [14] [15] [16] [17]
Desarrollador (es) | Software AG |
---|---|
Lanzamiento estable | 10.5.3 / 26 de junio de 2020 [1] |
Escrito en | C ++ y Java (lenguaje de programación) |
Sistema operativo | Windows , Linux |
Tipo | Procesamiento de eventos complejos , evento de flujo de procesamiento , la IO , Análisis de datos |
Licencia | Comercial / Freemium |
Sitio web | apamacommunity |
Historia
Apama Ltd. fue fundada en 1999 por el Dr. John Bates , el Dr. Giles Nelson y el Dr. Mohamad Afshar, quienes se conocieron mientras realizaban una investigación en el Departamento de Informática y Tecnología de la Universidad de Cambridge .
En 2005, Apama Limited fue adquirida por Progress Software por $ 25 millones. [18]
En 2013, Software AG adquirió Apama de Progress por un monto no revelado. [19]
En 2016, se lanzó una versión freemium , Apama Community Edition, [20] junto con foros de soporte y espacios de GitHub .
Descripción general
Lenguaje de procesamiento de eventos
Las aplicaciones para Apama se crean en el lenguaje de procesamiento de eventos (EPL). EPL contiene funciones de lenguaje diseñadas exclusivamente para la programación dirigida por eventos , [21] que incluyen:
- Eventos: estructuras de datos simples que contienen campos y acciones
- Monitores: al igual que las clases en otros lenguajes, los monitores contienen oyentes y acciones y se cargan tras la inyección.
- Oyentes: patrones declarativos que definen condiciones / combinaciones interesantes de eventos. Se admiten operadores de agregación, temporales y de filtrado
- Acciones: funciones imperativas, generalmente ejecutadas por oyentes al activarse o monitores al cargar
- Contextos: al igual que los hilos, los monitores existen dentro de los contextos
- Canales: mecanismo de comunicación entre contextos y sistemas externos
- Streams: particiones ordenadas de eventos con soporte para agregación y consultas similares a SQL
La sintaxis similar a EPL C ++ / Java está diseñada para crear aplicaciones CEP de manera sucinta junto con las características anteriores, un ejemplo de las cuales se puede encontrar a continuación:
event MyEvent { integer myInt ; secuencia < cadena > myListOfStrings ; boolean myBool ; } monitorear MyMonitor { acción onload () { spawn worker () al contexto ( "mySideThread" ); } action worker () { en todos MyEvent ( myInt > 10 ) como myCoassignedEvent -> MyEvent ( myInt > 20 ) o MyEvent ( myBool = true ) dentro de 30.0 { if ( doWork ( myCoassignedEvent . myListOfStrings ) ! = true ) { log "¡Problema! " ; } } } action doWork ( secuencia < cadena > ) devuelve boolean { // trabaja en la lista return true ; } }
Consultas de Apama
Apama Queries es un lenguaje alternativo para crear reglas sobre conjuntos de datos definidos, como los últimos cinco minutos de datos recibidos o los últimos veinte eventos recibidos, en un entorno de múltiples subprocesos automático que se escala en todas las máquinas. Las consultas de Apama son más adecuadas para monitorear conjuntos muy grandes, como transacciones bancarias. Normalmente, cada entidad (es decir, el titular de la cuenta) se dividirá y procesará independientemente del resto del conjunto. Las consultas y los monitores pueden comunicarse a través de canales. Un ejemplo del escenario anterior se puede encontrar a continuación:
consulta FindSuspiciousWithdrawals { parámetros { float DURATION ; UMBRAL de flotación ; } entradas { Número de tarjeta de clave de extracción () dentro de DURACIÓN ; } encuentre cada Retiro como w donde w . monto > 100 seleccionar último ( w . transactionId ) como tid seleccionar último ( w . cardNumber ) como cid teniendo último ( w . monto ) > UMBRAL * avg ( w . monto ) { enviar SuspiciousTransaction ( tid , cid ) a SuspiciousTransactionManager ; } }
Diseñador
Software AG Designer es un IDE basado en Eclipse con soporte especial para desarrollar e implementar aplicaciones Apama, que se incluye en una instalación estándar. Las características incluyen asistencia de código, administración de paquetes, creación de perfiles, desarrollo de GUI y administración de implementación.
Complementos
Apama admite la capacidad de los usuarios para crear complementos para ampliar la capacidad. Estos complementos vienen en dos formas, complementos de EPL ( para agregar funciones a EPL ) y complementos de conectividad (para comunicarse con el mundo exterior). Las API de C ++ y Java están disponibles para ambos tipos de complementos. Los complementos de conectividad vienen en dos formas, códecs (que traducen datos de un formato a otro, como la representación interna de Apama a JSON ) y transportes (que manejan el envío / recepción hacia / desde sistemas externos, como JMS ). Las conexiones a sistemas externos se realizan componiendo cadenas de códecs y un transporte para lograr la topología deseada; estas conexiones se definen mediante un archivo de configuración YAML al inicio o mediante la gestión dinámica con las herramientas proporcionadas. Varios complementos prediseñados para tecnologías populares (por ejemplo , R , MQTT , Kafka , HTTP , MatLab ) así como conectividad a otros productos de Software AG (por ejemplo, Universal Messaging, Terracotta , Cumulocity) se envían con las instalaciones de Apama.
Persistencia
El proceso de Apama está completamente en la memoria y es compatible con un sistema de persistencia incorporado opcional basado en SQLite . Además, la API de conectividad admite mensajería confiable a sistemas que la admiten, como JMS. Finalmente, se proporciona un complemento de almacenamiento de memoria distribuida preconstruido con instalaciones estándar para usar con los back-end apropiados.
Visualización
Apama proporciona una tecnología de tablero incorporada desarrollada desde dentro de Software AG Designer, así como conexiones nativas a MashZone NextGen de Software AG.
Ver también
- Procesamiento de eventos complejos (CEP): una tecnología relacionada para construir y administrar sistemas de información basados en eventos.
- Sistema de gestión de flujo de datos (DSMS): un tipo de sistema de software para administrar y consultar flujos de datos
- Correlación de eventos
- Arquitectura impulsada por eventos : (EDA) es un patrón de arquitectura de software que promueve la producción, detección, consumo y reacción a eventos.
- Procesamiento de flujo de eventos : (ESP) es una tecnología relacionada que se enfoca en procesar flujos de datos relacionados.
- Inteligencia operativa : tanto CEP como ESP son tecnologías que sustentan la inteligencia operativa.
- La coincidencia de patrones
- Inteligencia empresarial en tiempo real: la inteligencia empresarial es la aplicación del conocimiento derivado del sistema CEP
Referencias
- ^ "Nueva versión de Apama Community Edition" . apamacommunity.com . Consultado el 25 de marzo de 2021 .
- ^ "Plataforma de procesamiento de eventos y análisis de transmisión de Apama" . Consultado el 16 de enero de 2018 .
- ^ "Apama Streaming Analytics * con el procesador Intel® Xeon® E7 v3" . Intel . Consultado el 16 de enero de 2018 .
- ^ "Anuncio de lanzamiento de Apama Community Edition Apama 9.12 Community Edition" . www.apamacommunity.com . Consultado el 16 de enero de 2018 .
- ^ "Software AG presenta Apama EagleEye para una solución actualizada de vigilancia del mercado habilitada para IA - IoT Now - Cómo ejecutar un negocio habilitado para IoT" . IoT Now: cómo administrar una empresa habilitada para IoT . 2017-11-23 . Consultado el 16 de enero de 2018 .
- ^ "Sell-Side Technology Awards 2013: Mejor tecnología de procesamiento de eventos complejos (CEP) Sell-Side ─ Progress Apama - WatersTechnology.com" . WatersTechnology.com . 2013-06-03 . Consultado el 8 de febrero de 2018 .
- ^ "Cuadrante Mágico para Suites de Gestión de Procesos de Negocios Inteligentes" . www.gartner.com . Consultado el 19 de enero de 2018 .
- ^ "The Forrester Wave ™: Streaming Analytics, tercer trimestre de 2017" . www.forrester.com . Consultado el 19 de enero de 2018 .
- ^ "Plataformas de análisis de transmisión - Bloor Research" . www.bloorresearch.com . Consultado el 19 de enero de 2018 .
- ^ [1] , Nelson, Giles & John Bates, "Método y aparato para evaluar consultas con información de eventos recibida"
- ↑ [2] , Mitchell, Robert Scott; Mark K. Horsburgh y Richard M. Bentley, "Sistema de procesamiento de eventos complejo con múltiples motores de procesamiento de eventos redundantes"
- ^ [3] , Bates, John; Gareth Smith y Richard M. Bentley, "Configuración de procesos basada en eventos"
- ^ [4] , Bates, John; Gareth Smith y Richard M. Bentley, "Construcción e implementación automatizadas de aplicaciones de procesamiento de eventos complejos y paneles de control de actividad empresarial"
- ^ [5] , Reed, Christopher & Mark Horsburgh, "Sistema y método para administrar la asignación y liberación de objetos en un sistema de subprocesos múltiples"
- ^ [6] , Smith, Gareth, "Sistemas y / o métodos de vigilancia y monitoreo comercial"
- ^ [7] , Smith, Gareth, "Gerente de experiencia del cliente en tiempo real adaptable dinámicamente y / o método asociado"
- ^ [8] , SMITH, Leighton & Gareth Smith, "Sistemas y métodos de reacción y vigilancia en lugares grandes que utilizan información emocional analizada dinámicamente"
- ^ "Progress Software anuncia la adquisición de Apama" . Consultado el 16 de enero de 2018 .
- ^ "Progress Software anuncia acuerdo para vender la solución Apama a Software AG (NASDAQ: PRGS)" . inversores.progreso.com . Archivado desde el original el 9 de febrero de 2018 . Consultado el 16 de enero de 2018 .
- ^ "Apama Community Edition Presentando Apama Community Edition" . www.apamacommunity.com . Consultado el 16 de enero de 2018 .
- ^ http://www.apamacommunity.com/wp-content/uploads/2016/06/SAG_The_Apama_Platform_20PG_WP_Jun16-Web.pdf
enlaces externos
- Edición de la comunidad de Apama
- Edición comercial de Apama
- Software AG
- Forrester Wave: Streaming Analytics, tercer trimestre de 2017
- Analítica disruptiva por Thomas W. Dinsmore, Apress ( ISBN 978-1-4842-1312-4 ), un libro sobre tendencias emergentes en analítica, incluido Apama
- PrEstoCloud, un trabajo de investigación con Apama [ enlace muerto permanente ]