Apama (программное обеспечение) - Apama (software)

Апама это Комплексная обработка событий (CEP) и Обработка потока событий (ESP) двигатель, разработанный Software AG. Apama служит платформой для выполнения потоковой аналитики по ряду входов и приложений с большим объемом / низкой задержкой, таких как Интернет вещей устройства, финансовые биржи, обнаружение мошенничества, социальные сети и т. д.[1] Пользователи могут определять шаблоны данных для прослушивания и действия, которые следует предпринять при обнаружении этих шаблонов, которые определены в предоставленном Специфический для домена язык называется языком обработки событий (EPL). Ядро движка Apama написано на C ++; процесс также может дополнительно содержать JVM для взаимодействия с созданным пользователем Ява код. Apama делает упор на высокую пропускную способность, низкую задержку и эффективное использование памяти; используется в обоих Intel ориентиры[2] и меньшие машины, такие как Raspberry Pi,[3] роутеры и другие Край / Интернет вещей[4] устройств. Это особенно примечательно в пространстве КЭП как один из самых ранних проектов, долгосрочный лидер рынка,[5][6][7][8] и изобретатель многих патентов.[9][10][11][12][13][14][15][16]

История

Apama Ltd. была основана в 1999 г. Д-р Джон Бейтс, Д-р Джайлз Нельсон и д-р Мохамад Афшар, которые встретились во время исследования в Кембриджский университет, факультет компьютерных наук и технологий.

В 2005 году Apama Limited была приобретена Программное обеспечение Progress за 25 миллионов долларов.[17]

В 2013 году компания Apama была приобретена Software AG у компании Progress за нераскрытую сумму.[18]

В 2016 г. freemium была выпущена версия Apama Community Edition,[19] наряду с поддерживающими форумами и GitHub пробелы.

Обзор

Язык обработки событий

Приложения для Apama создаются на языке обработки событий (EPL). EPL содержит языковые функции, разработанные исключительно для Программирование, управляемое событиями,[20] включая:

  • События - простые структуры данных, содержащие поля и действия.
  • Мониторы - подобно классам на других языках, мониторы содержат слушателей и действия и загружаются при внедрении.
  • Слушатели - декларативные шаблоны, определяющие интересные условия / комбинации событий. Поддерживаются агрегация, временные операторы и операторы фильтрации.
  • Действия - императивные функции, обычно выполняемые слушателями при активации или мониторами при загрузке.
  • Контексты - Подобно потокам, мониторы существуют внутри контекстов.
  • Каналы - Механизм связи между контекстами и внешними системами.
  • Потоки - упорядоченные разделы событий с поддержкой агрегации и SQL -подобные запросы

Синтаксис, подобный EPL C ++ / Java, разработан для лаконичного создания приложений CEP в сочетании с вышеуказанными функциями, пример которых можно найти ниже:

мероприятие MyEvent {    целое число myInt;    последовательность<нить> myListOfStrings;    логический myBool;} монитор MyMonitor {    действие в процессе() {        порождать рабочий() к контекст("mySideThread");    }     действие рабочий() {        на все MyEvent(myInt>10) в качестве myCoassignedEvent -> MyEvent(myInt>20) или же MyEvent(myBool=истинный) в 30.0 {            если(Выполнять работу(myCoassignedEvent.myListOfStrings) != истинный) {                бревно "Проблема!";            }        }    }     действие Выполнять работу(последовательность<нить>) возвращается логический {        // работаем над списком        возвращаться истинный;    }}

Запросы Apama

Apama Queries - это альтернативный язык для создания правил для определенных наборов данных, таких как последние пять минут полученных данных или последние двадцать полученных событий, в автоматически многопоточной среде, масштабируемой между машинами. Запросы Apama лучше подходят для мониторинга очень больших наборов данных, например банковских транзакций. Как правило, каждая сущность (то есть владелец учетной записи) будет разделена и обработана независимо от остальной части набора. Запросы и мониторы могут обмениваться данными по каналам. Пример предыдущего сценария можно найти ниже:

запрос FindSuspicious {    параметры {        плавать ПРОДОЛЖИТЕЛЬНОСТЬ;        плавать ПОРОГ;    }     входы {        Снятие() ключ номер карты в ПРОДОЛЖИТЕЛЬНОСТЬ;    }     найти каждый Снятие в качестве ш        куда ш.количество > 100        Выбрать последний(ш.ID транзакции) в качестве tid        Выбрать последний(ш.номер карты) в качестве Сид        имея последний(ш.количество) > ПОРОГ * средний(ш.количество) {            Отправить SuspiciousTransaction(tid, Сид) к SuspiciousTransactionManager;        }}

Дизайнер

Software AG Designer - это Затмение основан IDE со специальной поддержкой разработки и развертывания приложений Apama, которая входит в стандартную установку. Возможности включают поддержку кода, управление пакетами, профилирование, разработку графического интерфейса и управление развертыванием.

Плагины

Apama поддерживает возможность пользователей создавать плагины для расширения возможностей. Эти плагины бывают двух видов: плагины EPL (добавить функции в EPL ) и плагины подключения (для связи с внешним миром). API-интерфейсы C ++ и Java доступны для обоих типов плагинов. Плагины подключения бывают двух форм, кодеков (которые переводят данные из одного формата в другой, например, из внутреннего представления Apama в JSON ) и транспорты (которые обрабатывают отправку / получение во / из внешних систем, таких как JMS ). Соединения с внешними системами выполняются путем составления цепочек кодеков и одного транспорта для достижения желаемой топологии; эти связи определяются YAML файл конфигурации при запуске или через динамическое управление с помощью предоставленных инструментов. Несколько готовых плагинов для популярных технологий (например, р, MQTT, Кафка, HTTP, MatLab ), а также возможность подключения к другим продуктам Software AG (например, Universal Messaging, Терракотовый, Cumulocity) поставляются с установками Apama.

Упорство

Процесс Apama полностью находится в памяти и поддерживает дополнительный SQLite основанная на встроенной системе сохраняемости. Кроме того, API подключения поддерживает надежный обмен сообщениями с системами, которые его поддерживают, например JMS. Наконец, предварительно созданный плагин распределенного хранилища памяти предоставляется со стандартными установками для использования с соответствующими внутренними компонентами.

Визуализация

Apama предоставляет встроенный приборная панель технология, разработанная в Software AG Designer, а также встроенные подключения к MashZone NextGen компании Software AG.

Смотрите также

Рекомендации

  1. ^ «Платформа потоковой аналитики и обработки событий Apama». Получено 2018-01-16.
  2. ^ «Apama Streaming Analytics * с процессором Intel® Xeon® E7 v3». Intel. Получено 2018-01-16.
  3. ^ «Объявление о выпуске Apama Community Edition Apama 9.12 Community Edition». www.apamacommunity.com. Получено 2018-01-16.
  4. ^ «Software AG представляет Apama EagleEye для обновленного решения по наблюдению за рынком на базе ИИ - IoT Now - Как вести бизнес, основанный на IoT». Интернет вещей сейчас - как вести бизнес с использованием Интернета вещей. 2017-11-23. Получено 2018-01-16.
  5. ^ "Sell-Side Technology Awards 2013: Лучшая технология обработки сложных событий (CEP) на стороне продавца ─ Progress Apama - WatersTechnology.com". WatersTechnology.com. 2013-06-03. Получено 2018-02-08.
  6. ^ «Магический квадрант для интеллектуальных пакетов управления бизнес-процессами». www.gartner.com. Получено 2018-01-19.
  7. ^ «Forrester Wave ™: потоковая аналитика, третий квартал 2017 г.». www.forrester.com. Получено 2018-01-19.
  8. ^ «Платформы потоковой аналитики - Bloor Research». www.bloorresearch.com. Получено 2018-01-19.
  9. ^ [1], Нельсон, Джайлс и Джон Бейтс, "Метод и устройство для оценки запросов относительно полученной информации о событиях" 
  10. ^ [2], Митчелл, Роберт Скотт; Марк К. Хорсбург и Ричард М. Бентли, «Комплексная система обработки событий, имеющая несколько дублирующих механизмов обработки событий» 
  11. ^ [3], Бейтс, Джон; Гарет Смит и Ричард М. Бентли, «Конфигурация процесса на основе событий» 
  12. ^ [4], Бейтс, Джон; Гарет Смит и Ричард М. Бентли, «Автоматизированное создание и развертывание сложных приложений обработки событий и панелей мониторинга деловой активности» 
  13. ^ [5], Рид, Кристофер и Марк Хорсбург, "Система и метод управления выделением и освобождением объектов в многопоточной системе" 
  14. ^ [6], Смит, Гарет, "Системы и / или методы наблюдения и мониторинга торговли" 
  15. ^ [7], Смит, Гарет, «Динамически адаптируемый менеджер по работе с клиентами в реальном времени и / или связанный метод» 
  16. ^ [8], СМИТ, Лейтон и Гарет Смит, «Системы и методы наблюдения и реагирования на крупных объектах с использованием динамически анализируемых эмоциональных входов» 
  17. ^ «Progress Software объявляет о приобретении Apama». Получено 2018-01-16.
  18. ^ «Progress Software объявляет о соглашении о продаже решения Apama компании Software AG (NASDAQ: PRGS)». инвесторы.progress.com. Архивировано из оригинал на 2018-02-09. Получено 2018-01-16.
  19. ^ «Apama Community Edition представляет Apama Community Edition». www.apamacommunity.com. Получено 2018-01-16.
  20. ^ http://www.apamacommunity.com/wp-content/uploads/2016/06/SAG_The_Apama_Platform_20PG_WP_Jun16-Web.pdf

внешняя ссылка