воскресенье, 5 февраля 2012 г.

Введение в Oracle Business Activity Monitoring (BAM)


Одной из важнейших задач при внедрении на предприятии сервисно-ориентированной архитектуры (SOA), архитектуры, управляемой событиями, (EDA) и сквозных бизнес-процессов (BPM) является задача мониторинга - наблюдение в реальном времени за изменением ключевых показателей (KPI), обеспечением SLA и принятие мер в случае их нарушения. В линейке продуктов Oracle Fusion Middleware присутствует компонент, предназначенный для решения данной задачи, - Oracle Business Activity Monitoring (BAM).

Место Oracle BAM среди систем предоставления отчетности


Корпорация Oracle предлагает своим клиентам несколько систем предоставления отчетности: Oracle Business Intelligence Suite, Oracle Reports, Oracle Discoverer и т.д. Зачем потребовалась еще одна система и в чем ее отличие от других? Дело в том, что традиционные системы аналитики строят отчеты либо по расписанию, либо в ответ на запрос пользователя. Oracle BAM же является системой, управляемой событиями. Данная система строит отчеты и генерирует оповещения (alerts) в реальном времени, следя за потоком изменений бизнес-данных. По сути, Oracle BAM предоставляет пользователям постоянное обновление представления о текущей бизнес-ситуации.

Сценарии использования Oracle BAM


Oracle BAM обычно используется для наблюдения за двумя типами величин:
  • величины, описывающие общее течение процесса. Например, сколько всего заявок на кредит обрабатывается, какой офис обрабатывает их больше, каков процент отклоненных заявок;
  • ключевые показатели эффективности (KPI). Например, какое количество заявок обрабатывается конкретным сотрудником за смену, сколько времени тратится на принятие решения по одной заявке.


В первом случае мы наблюдаем за общим течением процесса, определяем узкие места и точки возникновения ошибок. В данном случае нужно определить контрольные точки процесса и BAM будет захватывать данные о прохождении процесса через эти точки, собирать информацию о возникающих ошибках, замерять время исполнения процесса.

Во втором случае нас интересуют некоторые агрегированные значения. В данном случае BAM занимается агрегацией результатов, полученных из потока событий. При этом итоговые значения постоянно обновляются на экране, не требуя вмешательства пользователя (грубо говоря, даже F5 нажимать не нужно - значения сами обновятся). В случае необходимости BAM может отправлять оповещения по электронной почте или SMS, а так же выполнять некоторые действия, например, вызывать внешний веб-сервис.

Архитектура Oracle BAM





Архитектуру Oracle BAM можно рассматривать с двух сторон: логической и физической.

Логическое представление
Процесс реакции на событие в Oracle BAM состоит из четырех этапов: захват события, его сохранение в хранилище событий, генерация отчетов и оповещений, доставка отчетов и оповещений пользователю.



События захватываются из одного или нескольких источников с помощью компонента Event Acquisition и после нормализации и согласования помещаются в хранилище событий - Event Store (хранилище событий - это область памяти, которая периодически сбрасывается на диск). Кэш отчетов - Report Cache - создает отчеты, основываясь на событиях из хранилища и доставляет их пользователю с помощью Report Delivery. Event Processing так же работает с хранилищем: при выполнении заданных условий будет создано и доставлено с помощью Alerts Delivery оповещение пользователю.

Физическое представление



Захват событий в реальном времени осуществляется из четырех типов источников:
  1. BAM-адаптер - JCA-совместимый адаптер, который используется для передачи событий из Oracle SOA Suite и Oracle Service Bus.
  2. Oracle Data Integrator - ETL-решение от Oracle. ODI содержит модуль знаний, позволяющий передавать изменения данных из различных источников в BAM. Данный способ интеграции с BAM рекомендуется Oracle в случае, если требуется передать большой объем данных или данные со структурой "мастер-деталь".
  3. JMS. Данный источник так же известен как JMS Connector или Enterprise Message Source (EMS).
  4. Веб-сервисы. Oracle BAM выставляет набор веб-сервисов, которые могут быть использованы для передачи данных из приложений сторонних производителей, работающих на любых платформах, например на платформе .NET.


Помимо захвата событий в реальном времени, BAM может использовать т.н. внешние бизнес-объекты - данные из сторонних БД. Однако при использовании данного источника есть одно ограничение: при изменении состояния внешнего бизнес-объекта отчеты не перестраиваются автоматически.



После того, как событие захвачено из источника, оно сохраняется в нормализованной форме в памяти и в компоненте, называемом активным кэшем данных - Active Data Cache (ADC). Данное хранилище осуществляет согласование событий, таким образом захват целого потока событий может на самом деле приводить лишь к обновлению единственной записи в ADC. Содержимое ADC сохраняется в БД, что позволяет избежать потери данных при перезапуске BAM.

Отчеты создаются по требованию пользователя. Как только отчет запускается, он начинает обновлять экран пользователя в реальном времени. При этом, даже если несколько пользователей открыли один и тот же отчет, то на сервере все равно выполняется один экземпляр отчета. Движок отчетов непрерывно просматривает ADC на предмет изменений, которые требуются открытым в данный момент отчетам. Когда такие изменения обнаруживаются, экземпляры активных отчетов обновляются в памяти и данные обновления отправляются на экраны пользователей.

Параллельно с этим обработчик событий просматривает ADC на предмет срабатывания правил (BAM-rules), запускающих генерацию и доставку оповещений (BAM-alerts).

Доставка отчетов осуществляется двумя путями. Во-первых, отчет может выводиться на экран пользователю. В таком случае доставка отчета обозначает отображение HTML-страницы в браузере пользователя, при этом данная страница обновляется автоматически при изменении данных в ADC. К сожалению, Oracle BAM использует для отображения отчетов технологию Active X, соответственно он работает только в браузере Internet Explorer.



Во-вторых, отчет может быть отправлен как результат оповещения, созданного обработчиком событий (Event Processing Engine). В таком случае отчет может быть доставлен пользователю в качестве почтового, SMS или голосового сообщения. В данном случае так же может быть вызван внешний веб-сервис, оказывающий определенное управляющее воздействие на бизнес-процесс. Фактически, вызов внешнего веб-сервиса - это способ осуществить обратную связь, превратив тем самым решение на базе Oracle BAM в автоматическую систему управления.

Существует так же такое понятие, как BAM Data Controls - компоненты Oracle Application Development Framework (ADF), осуществляющие доступ к данным Oracle BAM.



Выводы


В данной заметке мы рассмотрели назначение, сценарии использования, основные возможности и архитектуру инструмента для мониторинга и контроля за исполнением бизнес-процессов в режиме реального времени - Oracle Business Activity Monitoring. В одной из следующих заметок я постараюсь привести пример использования Oracle BAM для решения реальной задачи. Оставайтесь на связи!

З.Ы. Как всегда вы можете высказать свое мнение и задать вопрос в комментариях к заметке.

Ссылки




Понравилось сообщение - подпишитесь на блог

2 комментария:

Mikhail Krestjaninoff комментирует...

Интересный инструмент. Как думаете - сколько российских компаний разворачивают у себя подобные системы?

Pavel Samolisov комментирует...

Только с моим участием было два внедрения - Oracle BAM использовался для мониторинга SOA.

Отправить комментарий

Любой Ваш комментарий важен для меня, однако, помните, что действует предмодерация. Давайте уважать друг друга!