суббота, 18 февраля 2012 г.

Разработка системы мониторинга на базе Oracle BAM


В заметке введение в Oracle Business Activity Monitoring (BAM) Суровый обещал привести пример использования данного инструмента. Пришло время исполнить данное обещание.

Решим следующую задачу: в головной офис передаются отчеты о работе удаленных филиалов. Специалисты службы технической поддержки должны иметь возможность отслеживать динамику работы системы передачи данных, а также количество отчетов, переданных каждой точкой.


Создание объектов данных


По-умолчанию, веб-интерфейс Oracle BAM доступен по адресу: http://<host>:<port>/OracleBAM. Работает данное приложение исключительно в браузере Internet Explorer. Стартовая страница состоит из окна авторизации и краткого описания приложения.



После авторизации в системе станет доступным главное меню, которое состоит из четырех кнопок:
  • Active Viewer - приложение для просмотра существующих отчетов;
  • Active Studio - приложение для создания и редактирования отчетов;
  • Architect - приложение для управления объектами данных, оповещениями и источниками данных;
  • Administrator - приложение для управления пользователями системы.




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

Для создания объектов данных необходимо нажать кнопку Architect. Появится окно рабочего места архитектора BAM, в котором помимо создания объектов можно так же определять оповещения (Alerts), внешние источники данных (External Data Sources) и подписки на чтение из JMS-очередей (Enterprise Message Sources).



Чтобы наши объекты данных не пересекались с чужими - создадим для них каталог под названием Monitor. Для этого необходимо щелкнуть по ссылке Create subfolder, ввести в появившейся форме название каталога и нажать кнопку Create forlder.




Теперь создадим собственно объект данных. Для этого перейдем в каталог Monitor и нажмем на ссылку Create Data Object. Появится форма, в которой необходимо определить заголовок, описание объекта и задать набор полей.



Ограничимся следующими полями: point_code - код точки, с которой передаются отчеты, file_name - наименование переданного файла, update_date_time - время получения файла.

После нажатия на кнопку Create Data Object объект данных будет создан.




Создадим индекс по полю point_code. Наличие такого индекса ускорит вычисление агрегатов по содержимому объекта данных. Для этого нажмем на ссылку Indexes. Откроется окно определения индексов. Чтобы создать новый индекс необходимо нажать на ссылку Add Index. Появится форма, в которой необходимо заполнить параметры создаваемого индекса.



Созданный индекс отобразится в таблице Indexes on Data Object: /Monitor/MonitorDO.



Для манипуляции с объектами данных можно использовать любой из описаных источников, например соответствующие веб-сервисы.



Создание отчетов


Для создания отчетов служит приложение Active Studio, доступное из главного меню Oracle BAM по нажатию соответствующей кнопки.



Для создания нового отчета служит мастер, который запускается по нажатию кнопки Create A New Report. На первом шаге мастера необходимо выбрать конфигурацию отчета: число и расположение независимых областей, составляющих отчет.



Выберем отчет, состоящий из двух горизонтальных областей.



В верхней части нам необходимо разместить таблицу, отображающую оперативную информацию по принимаемым файлам: Streaming List.



В нижней части экрана появится область настройки представления. Прежде всего необходимо задать содержимое отчета: объект данных и отображаемые поля.







После этого можно отредактировать представление отчета: заголовок и прочие основные параметры, название и ширину колонок, формат данных и при необходимости - отображение вновь добавляемых данных.









В нижней части отчета выберем представление 3D Bar Chart - трехмерную столбчатую диаграмму. После выбора представления его необходимо настроить: задать данные и внешний вид. Для того, чтобы задать данные, необходимо выбрать объект данных и определить, по каким его полям будет осуществляться группировка (т.е. какая величина будет откладываться по оси абцисс), и по каким полям и с помощью какой функции будет вычисляться значение (т.е. какая величина будет откладываться по оси ординат).







Настройка внешнего вида представления сводится к настройке заголовка и прочих основных параметров, значений, отображаемых у столбиков, последовательности смены цветов столбиков и, при необходимости, других параметров.







Созданный и настроенный отчет необходимо сохранить. Для этого можно воспользоваться ссылками Save Report, Save Report As или Close из блока меню Actions. Перед сохранением нас попросят задать имя отчета. В именах отчетов допускается использование кириллицы и других национальных алфавитов.



Просмотр отчетов


Для просмотра отчетов служит приложение Active Viewer, доступное из главного меню по нажатию одноименной кнопки.



Для того, чтобы выбрать нужный отчет, необходимо нажать кнопку Select Report. Появится форма навигации, чем-то напоминающая форму навигации JDeveloper.



После открытия отчета станут доступны кнопки печати (Print Preview), сохранения в виде HTML-страницы (Save Offline), отправки на почту (Email) и принудительного обновления (Repromt). Последняя кнопка нужна не столько для обновления, сколько для указания новых значений фильтрации, если таковая настроена. Обновляется отчет автоматически при обновлении объекта данных (см. темно-желтые области на скриншоте):



Выводы


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

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

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

Pig комментирует...

Здравствуйте, Павел. У меня возник вопрос по BAM, суть состоит в том чтобы в определенное время суток увеличивать или уменьшать границы осей самого графика. Имеется ли такая возможность в Oracle BAM ?

Unknown комментирует...

Здравствуйте, я о такой возможности не знаю. Может лучше сделать два графика?

Pig комментирует...

К сожалению , там придётся делать не 2 графика а 12 , на каждый час , а такой вариант будет выглядеть не очень хорошо(( Может как-то но уровне кода страницы самого графика ?

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

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