Обработка событий — это метод отслеживания и анализа (обработки) потоков информации (данных) о происходящих событиях (событиях) [1] и выведения из них выводов. Обработка сложных событий ( CEP ) состоит из набора концепций и методов, разработанных в начале 1990-х годов для обработки событий в реальном времени и извлечения информации из потоков событий по мере их поступления. Целью обработки сложных событий является выявление значимых событий (таких как возможности или угрозы) [2] в ситуациях в реальном времени и максимально быстрое реагирование на них.
Эти события могут происходить на разных уровнях организации, как лиды, заказы или звонки в службу поддержки клиентов . Или это могут быть новости, [3] текстовые сообщения , сообщения в социальных сетях , бизнес-процессы (например, цепочка поставок), отчеты о дорожном движении , прогнозы погоды или другие виды данных. [1] Событие также может быть определено как «изменение состояния», когда измерение превышает предопределенный порог времени, температуры или другого значения.
Аналитики предположили, что CEP предоставит организациям новый способ анализа закономерностей в режиме реального времени и поможет бизнес-стороне лучше взаимодействовать с ИТ-отделами и отделами обслуживания. [4] С тех пор CEP стала технологией, позволяющей во многих системах предпринимать немедленные действия в ответ на входящие потоки событий. Теперь ее можно найти (2018) во многих секторах бизнеса, включая системы торговли на фондовом рынке, мобильные устройства , интернет-операции, обнаружение мошенничества , транспортную отрасль и сбор правительственной разведывательной информации .
Огромный объем информации, доступной о событиях, иногда называют облаком событий. [1]
Среди тысяч входящих событий система мониторинга может, например, получить следующие три из одного и того же источника:
Из этих событий система мониторинга может вывести сложное событие : свадьбу. CEP как метод помогает обнаруживать сложные события, анализируя и сопоставляя другие события: [5] колокола, мужчина и женщина в свадебных нарядах и рис, летящий по воздуху.
CEP опирается на ряд методов, [6] включая:
Коммерческие приложения CEP существуют в различных отраслях и включают обнаружение мошенничества с кредитными картами , мониторинг деловой активности и мониторинг безопасности. [7]
Область CEP имеет корни в дискретно-событийном моделировании , области активных баз данных и некоторых языках программирования. Активности в отрасли предшествовала волна исследовательских проектов в 1990-х годах. Согласно [8], первым проектом, который проложил путь к общему языку CEP и модели выполнения, был проект Rapide в Стэнфордском университете под руководством Дэвида Лакхэма . Параллельно были два других исследовательских проекта: Infospheres в Калифорнийском технологическом институте под руководством К. Мани Чанди и Apama в Кембриджском университете под руководством Джона Бейтса. Коммерческие продукты зависели от концепций, разработанных в этих и некоторых более поздних исследовательских проектах. Усилия сообщества начались с серии симпозиумов по обработке событий, организованных Техническим обществом обработки событий , а затем серией конференций ACM DEBS. Одним из усилий сообщества было создание манифеста по обработке событий. [9]
CEP используется в продуктах оперативной разведки (OI) для предоставления информации о бизнес-операциях путем выполнения анализа запросов по текущим каналам и данным о событиях. OI собирает данные в реальном времени и сопоставляет их с историческими данными для предоставления информации и анализа. Несколько источников данных можно объединить для предоставления общей операционной картины, которая использует текущую информацию.
В управлении сетями , управлении системами , управлении приложениями и управлении службами люди обычно ссылаются на корреляцию событий . Как и механизмы CEP, механизмы корреляции событий ( корреляторы событий ) анализируют массу событий, определяют наиболее значимые из них и запускают действия. Однако большинство из них не производят новых предполагаемых событий. Вместо этого они связывают высокоуровневые события с низкоуровневыми событиями. [10]
Механизмы вывода , например, механизмы рассуждений на основе правил , обычно производят выводимую информацию в искусственном интеллекте . Однако они обычно не производят новую информацию в форме сложных (т. е. выводимых) событий.
Более системный пример CEP включает автомобиль, несколько датчиков и различные события и реакции. Представьте, что у автомобиля есть несколько датчиков — один, который измеряет давление в шинах, другой, который измеряет скорость, и третий, который определяет, садится ли кто-то на сиденье или покидает его.
В первой ситуации автомобиль движется, и давление в одной из шин изменяется с 45 фунтов на квадратный дюйм до 41 фунта на квадратный дюйм в течение 15 минут. По мере снижения давления в шине генерируется ряд событий, содержащих давление в шине. Кроме того, генерируется ряд событий, содержащих скорость автомобиля. Процессор событий автомобиля может обнаружить ситуацию, при которой потеря давления в шине в течение относительно длительного периода времени приводит к созданию события «lossOfTirePressure». Это новое событие может запустить процесс реакции, чтобы отметить потерю давления в журнале технического обслуживания автомобиля и предупредить водителя через портал автомобиля о том, что давление в шине снизилось.
Во второй ситуации автомобиль движется, и давление в одной из шин падает с 45 фунтов на квадратный дюйм до 20 фунтов на квадратный дюйм за 5 секунд. Обнаружена другая ситуация — возможно, потому, что потеря давления произошла за более короткий промежуток времени, или, возможно, потому, что разница в значениях между каждым событием была больше предопределенного предела. Другая ситуация приводит к генерации нового события «blowOutTire». Это новое событие запускает другой процесс реакции, чтобы немедленно предупредить водителя и запустить процедуры бортового компьютера, чтобы помочь водителю остановить автомобиль, не теряя управления из-за заноса.
Кроме того, события, представляющие обнаруженные ситуации, также могут быть объединены с другими событиями для обнаружения более сложных ситуаций. Например, в конечной ситуации автомобиль движется нормально и у него лопается шина, в результате чего автомобиль съезжает с дороги и врезается в дерево, а водитель выбрасывается из автомобиля. Серия различных ситуаций быстро обнаруживается. Сочетание "blowOutTire", "zeroSpeed" и "driverLeftSeat" в течение очень короткого периода времени приводит к обнаружению новой ситуации: "occupantThrownAccident". Несмотря на то, что нет прямого измерения, которое может окончательно определить, что водитель был выброшен или что произошла авария, комбинация событий позволяет обнаружить ситуацию и создать новое событие для обозначения обнаруженной ситуации. Это суть сложного (или составного) события. Оно сложное, потому что нельзя напрямую обнаружить ситуацию; нужно сделать вывод или сделать вывод о том, что ситуация произошла из комбинации других событий.
Естественным подходом для CEP стало управление бизнес-процессами (BPM). [11] BPM фокусируется на сквозных бизнес-процессах с целью их постоянной оптимизации и согласования с операционной средой.
Однако оптимизация бизнеса не полагается исключительно на его отдельные сквозные процессы. На первый взгляд разрозненные процессы могут существенно влиять друг на друга. Рассмотрим такой сценарий: в аэрокосмической промышленности хорошей практикой является мониторинг поломок транспортных средств для выявления тенденций (определения потенциальных слабых мест в производственных процессах, материалах и т. д.). Другой отдельный процесс отслеживает текущие жизненные циклы эксплуатируемых транспортных средств и выводит их из эксплуатации при необходимости. Одним из вариантов использования CEP является связывание этих отдельных процессов, так что в случае, если начальный процесс (мониторинг поломок) обнаруживает неисправность, основанную на усталости металла (значительное событие), можно создать действие для использования второго процесса (жизненного цикла) для отзыва транспортных средств, использующих ту же партию металла, которая была обнаружена как неисправная в первоначальном процессе.
Интеграция CEP и BPM должна существовать на двух уровнях, как на уровне осведомленности бизнеса (пользователи должны понимать потенциальные целостные преимущества своих индивидуальных процессов), так и на технологическом уровне (должен быть метод, с помощью которого CEP может взаимодействовать с реализацией BPM). Для недавнего обзора современного состояния интеграции CEP с BPM, который часто называют Event-Driven Business Process Management, см. [12]
Роль CEP, ориентированного на вычисления, можно, вероятно, рассматривать как пересекающуюся с технологией Business Rule.
Например, центры обслуживания клиентов используют CEP для анализа потока кликов и управления клиентским опытом. Программное обеспечение CEP может в реальном времени учитывать информацию о миллионах событий (кликов или других взаимодействий) в секунду в бизнес-аналитике и других приложениях поддержки принятия решений . Эти « приложения рекомендаций » помогают агентам предоставлять персонализированное обслуживание на основе опыта каждого клиента. Приложение CEP может собирать данные о том, что клиенты по телефону делают в настоящее время, или как они недавно взаимодействовали с компанией по другим различным каналам, включая филиал или в Интернете с помощью функций самообслуживания, обмена мгновенными сообщениями и электронной почты. Затем приложение анализирует общий клиентский опыт и рекомендует сценарии или следующие шаги, которые направляют агента по телефону, и, как мы надеемся, сохранят клиента довольным. [13]
База данных временных рядов — это программная система, оптимизированная для обработки данных, организованных по времени. Временные ряды — это конечные или бесконечные последовательности элементов данных, где каждый элемент имеет связанную временную метку, а последовательность временных меток не убывает. Элементы временного ряда часто называют тиками. Временные метки не обязательно должны быть возрастающими (просто не убывающими), поскольку на практике временное разрешение некоторых систем, таких как источники финансовых данных, может быть довольно низким (миллисекунды, микросекунды или даже наносекунды), поэтому последовательные события могут иметь одинаковые временные метки.
Данные временных рядов предоставляют исторический контекст для анализа, обычно связанного со сложной обработкой событий. Это может применяться к любой вертикальной отрасли, такой как финансы [14] , и совместно с другими технологиями, такими как BPM.
Идеальным случаем для анализа CEP является рассмотрение исторических временных рядов и потоковых данных в реальном времени как единого временного континуума. То, что произошло вчера, на прошлой неделе или в прошлом месяце, является просто продолжением того, что происходит сегодня и что может произойти в будущем. Примером может быть сравнение текущих объемов рынка с историческими объемами, ценами и волатильностью для логики исполнения сделок. Или необходимость действовать на основе реальных рыночных цен может включать сравнения с контрольными показателями, которые включают движения секторов и индексов, чьи внутридневные и исторические тренды измеряют волатильность и сглаживают выбросы.
Обработка сложных событий является ключевым фактором в настройках Интернета вещей (IoT) и интеллектуальных киберфизических системах (CPS). Обработка плотных и неоднородных потоков от различных датчиков и сопоставление шаблонов с этими потоками является типичной задачей в таких случаях. [15] Большинство этих методов основано на том факте, что представление состояния системы IoT и ее изменений более эффективно в форме потока данных, а не в виде статической материализованной модели. Рассуждения по таким моделям на основе потоков принципиально отличаются от традиционных методов рассуждений и обычно требуют сочетания преобразований моделей и CEP. [16]