(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Опыт внедрения Oracle BAM в ЦНИИ Атоминформ

Источник: oracle

1. Введение

Постановка задачи: оперативное отслеживание прохождения платежей в учетной системе Oracle E-Business Suite

Целевая группа: руководители

Требования:

  1. Вывод информации на Единый портал Росатома
  2. Визуализация в виде графиков и диаграмм
  3. Возможность детализации вплоть до конкретных записей в табличном виде
  4. Автоматическое обновление графиков без необходимости перезагрузки страницы
  5. Обновление информации в реальном времени, по мере прохождения платежей
  6. Применение современного инструмента с большим потенциалом

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

В Центральном научно-исследовательском институте управления, экономики и информации Федерального агентства по атомной энергии (ФГУП ЦНИИАтоминформ) была поставлена задача мониторинга в реальном времени графика платежей, проходящих в Учетной системе.

Мониторинг будут производить руководители Агентства.

Клиентское место для мониторинга не должно требовать дополнительного прикладного программного обеспечения, кроме системного ПО (Windows + Internet Explorer).

Кроме того, информация должна быть доступна из любой точка Агентства независимо от расположения Учетной системы. Данное требование логично и естественно решается с помощью Единого портала Агентства. Значит, требуется вывод результатов мониторинга на Портал. Т.к. по факту уже внедрен портал Oracle Portal - требуется вывод именно в Oracle Portal.

Что касается представления информации, тут требования достаточно стандартны для задач такого класса - визуальное графическое отображение процесса прохождения платежей с разбивкой по датам, исполнителям, суммам и т.д. Примерный вид приведен на Рис.1.

Рисунок 1. Требования по представлению информации

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

2. Выбор решения

Такой постановке задачи и всем предъявляемым требованиям удовлетворяет средство класса Business Activity Monitoring (BAM) [1].

Принимая во внимание сильные позиции и большой потенциал Oracle (по материалам указанного исследования), а также наличия уже полного пакета продуктов Oracle у заказчика (Oracle E-Business Suite, Oracle Collaboration Suite, Oracle SOA Suite, Oracle Database), было принято решение использовать продукт Oracle BAM для решения поставленной задачи.

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

С точки зрения внутренней архитектуры сервера Oracle BAM можно выделить 4 крупных компонента:

  1. Enterprise Link - реализация механизма ETL - Extract Transform and Load : подключение к источникам данных и загрузка данных во внутреннее хранилище

    Внутреннее хранилище Oracle BAM реализовано в БД Oracle. Используется для временного хранения информации после ее поступления в BAM с анализируемых систем. Дает возможность агрегирования и анализа исторической информации, в т.ч. накапливаемым итогом.

  2. Active Data Cache - реализация отчетности "реального времени" : мониторинг внутреннего хранилища на изменение данных и "проталкивание" только измененных данных на визуализацию
  3. Report Server (+ Report Cache) - реализация визуализации : кеширование, форматирование и визуализация отслеживаемых данных в виде графиков, таблиц, диаграмм и прочих отчетов
  4. Event Engine - реализация уведомлений и предупреждений : обработка событий, исключений, пороговых значений; формирование сигналов, уведомлений, предупреждений и корректирующих воздействий

Рисунок 2. Трехмерная архитектура сервера Oracle BAM

Рисунок 2а. Двухмерная архитектура сервера Oracle BAM

Разработка подсистемы мониторинга на Oracle BAM разбивается на этапы, коррелирующие c внутренней архитектурой сервера.

Задача разбивается на следующие этапы:

  1. Определение исходных систем и событий для мониторинга
  2. Разработка показателей для мониторинга
  3. Подключение к "событийным" моделям систем (Business Event System, Enterprise Message Source)
  4. Разработка структур для сохранения значений отслеживаемых показателей (другими словами: разработка внутреннего хранилища - фундамента данных для Active Data Cache)
  5. Создание процесса (плана) обработки и загрузки в хранилище входящих показателей (Enterprise Link Plan)
  6. Разработка отчетов и панелей для визуального мониторинга (BAM Reports)

3. Проектирование решения

В рассматриваемой задаче мониторинга платежей в режиме реального времени задействованы следующие программные модули:

  1. OEBS 11.5.10 - модуль Кредиторы
  2. Oracle BAM 10.1.3
  3. Oracle Portal 10.1.4

При создании нового платежного поручения в Oracle E-Business Suite информация о нем (номер, дата, размер платежа, поставщик) передается в Oracle BAM и немедленно визуализируется на графическом отчете BAM в Oracle Portal.

В качестве источника данных для BAM использована JMS очередь в БД OEBS.

Функциональная архитектура решения представлена на Рис. 3.

Рисунок 3. Функциональная архитектура решения для мониторинга платежей

Техническое описание процесса мониторинга :

  1. При заведении нового платежного поручения в OEBS срабатывает BES событие:
    oracle.apps.ap.payment - Создание платежных поручений
    [Событие для мониторинга в BAM]
  2. На данное событие сделано 2 подписки в Business Event System.
    1-я подписка наполняет сообщение события данными платежного поручения (номер, дата, размер платежа, поставщик) в формате XML и готовит его для записи в очередь
    [Сбор показателей для BAM]
  3. 2-я подписка на событие передает сформированное сообщение события агенту JMS очереди, на которую "подписан" BAM. Агент публикует полученное сообщение в ассоциированную JMS очередь. [Передача показателей в BAM]
  4. Как только агент положил сообщение с новым платежом в JMS очередь, сервер Oracle BAM немедленно:
    • считывает его - [Enterprise Message Source]
    • разбирает на показатели (номер, дата, размер платежа, поставщик) - [XSLT преобразования входящих сообщений]
    • и сохраняет в объекте данных "платежи OEBS" внутреннего хранилища Oracle BAM - [план обработки входящих сообщений]
  5. Active Data Cache (ADC) "замечает" изменение объекта данных "платежи OEBS" и немедленно передает серверу отчетов BAM данные о новом платеже (новую строку объекта данных)
  6. Сервер отчетов, получив порцию обновленных данных и зная, что данный отчет открыт на просмотр (помните про связь сервера с апплетом на клиентской машине в Internet Explorer!), немедленно передает данные апплету и тот, в свою очередь, обновляет графики и диаграммы отчета в окне Портала.

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

Рисунок 4. Пример простого отчета BAM в Портале Агенства (данные скрыты)

Особенности интеграции Oracle BAM в Oracle Portal :

  1. В рассматриваемой версии Oracle BAM 10.1.3 отсутствует стандартный портлет для вывода BAM в Портал
  2. В рассматриваемом решении BAM выведен в Портал с использованием iFrame
  3. Все отчеты и графики BAM (вплоть до размера шрифтов) автоматически масштабируются под текущий размер iFrame области
  4. С точки зрения авторизации Oracle BAM поддерживает авторизацию по LDAP-каталогу (единый реестр пользователей предприятия). В частности поддерживается OID. Таким образом, любой пользователь портала может всегда зайти на страничку с отчетом BAM при наличии соответствующих привилегий.
  5. С точки зрения аутентификации Oracle BAM не поддерживает Oracle SSO, по крайней мере, в стандартной конфигурации. Поэтому в качестве ограничения, но и в тоже время дополнительной защиты, при открытии странички портала с отчетом BAM, приходиться вводить пароль еще раз, несмотря на то, что пользователь уже авторизован в портале на данный момент.

4. Реализация решения

Внедрение решения по шагам:

  1. Сначала необходимо создать JMS-очередь (в данном примере - в БД OEBS), JMS-агента (в BES OEBS) и зарегистрировать JMS-очередь в JNDI на сервере приложений (в данном примере - в standalone OC4J в составе Oracle BAM: \OracleBAM\OC4J\j2ee\).
  2. Затем в OEBS необходимо создать процедуру сбора показателей платежа и создать подписки BES на событие oracle.apps.ap.payment, одна из которых будет вызывать данную процедуру, а вторая передавать сообщение события JMS агенту
  3. Далее - настроить BAM:
    • в BAM Architect необходимо создать Enterprise Message Source для "подписки" и считывания платежей с JMS очереди. Указать XSLT преобразования входящего платежа.
    • в BAM Architect создать объект данных для хранения приходящих из OEBS платежей
    • в BAM Enterprise Link -> Design Studio создать план обработки входящего платежа
    • в BAM Administrator - запустить созданный план
    • в BAM Active Studio - создать отчет в виде графиков и диаграмм платежей.
  4. Затем нужно вставить в Portal на требуемой страничке iFrame-область, которую направить на созданный в BAM Active Studio отчет.
  5. Выводы : Решения для мониторинга бизнес-процессов предприятия становятся все более и более совершенны и удобны для работы. Благодаря гонке вендоров-конкурентов и быстрому росту и взрослению данного сектора, международными аналитическими агенствами сформулированы требования, и выделен класс продуктов для мониторинга бизнеса Business Activity Monitoring. В пользу решения Oracle BAM, относящегося к данному классу, говорит большой его потенциал (согласно исследованию Gartner) и лидирующие позиции на данном рынке на момент приобретения продукта корпорацией Oracle.

После прочтения данной статьи, вероятно, у Вас возникло ощущение, что слепить прототип простейшей системы мониторинга в настоящее время по силам каждому. Благодаря быстрому развитию соответствующих средств класса BAM это действительно реально. Однако построение промышленной системы мониторинга бизнеса и бизнес-процесов, пусть даже и небольшой, требуют глубоких, прежде всего теоретических знаний в данной области и во множестве смежных областей. А самое главное - требует опыта построения и внедрения таких систем, знания подводных камней и "тонких" мест, настройки производительности и многого другого. Такой опыт и знания есть у Консалтинговой Группы "Борлас".

Дополнительно:

  1. Технические аспекты для реализации подобного решения, а также примеры можно почерпнуть в документе [3] на сайте Oracle Technology Network ( otn.oracle.com ). Для построения и просмотра отчетов не обязательно выносить BAM на портал, в режиме прототипа это проще и удобнее делать, просто открывая соответствующую домашнюю страничку Oracle BAM в браузере Internet Explorer.
  2. Фрагменты решения
    1. Вставка отчета BAM в Oracle Portal
      1. Запустить BAM Active Studio, открыть созданный отчет, кликнуть Copy Shortcut и скопировать <ссылку на отчет BAM> из открывшегося окна
      2. Создать в требуемом месте портал новую область и вставить в него отчет BAM в виде iFrame:
        <html>
         <head>
         </head>
         <body>
           <iframe name="place" src="<ссылка на отчет BAM>" 
                                        width="100%" height="500">
           </iframe>
         </body>
        </html>

    2. Процедура сбора показателей платежа OEBS
      (вызывается из первой подписки BES)
      CREATE OR REPLACE PACKAGE APPS.xx_BAM AUTHID CURRENT_USER as
        FUNCTION payment_rule(p_subscription_guid in raw,
                              p_event  in out nocopy wf_event_t)
          return varchar2;
      end xx_BAM;
      /
      
      
      CREATE OR REPLACE PACKAGE BODY xx_BAM as
        FUNCTION payment_rule(p_subscription_guid in raw,
                              p_event in out nocopy wf_event_t)
          RETURN varchar2 is
          dxml_ctxHandle dbms_xmlquery.ctxType;
          clRslt         clob;
          nPos           number;
          nTagLength     number;
        BEGIN
          -- Сконструируем данные по организации и товару
          dxml_ctxHandle := dbms_xmlquery.NewContext
              ('select check_number as doc_num,
                       to_char(check_date,''DD.MM.YYYY HH24:MI:SS'') 
                       as payment_date,amount as
                        payment_account,vendor_name as supplier 
                          from ap_checks_all where org_id=' //
                          p_event.GetValueForParameter('ORG_ID')//
                            ' and check_id=' //
      p_event.GetValueForParameter('CHECK_ID'));
          dbms_xmlquery.UseNullAttributeIndicator(dxml_ctxHandle, true);
          -- создаем xml на базе запроса
          clRslt := dbms_xmlquery.GetXml(dxml_ctxHandle);
          dbms_xmlquery.CloseContext(dxml_ctxHandle);
          -- добавляем namespace
          nTagLength := Length(dbms_xmlquery.DEFAULT_ROWSETTAG);
          nPos       := instr(clRslt,
                              '<' // dbms_xmlquery.DEFAULT_ROWSETTAG // '>');
          if nPos > 0 then
            clRslt := SubStr(clRslt, 1, nPos + nTagLength) //
                      ' xmlns="http://xmlns.oracle.com/oebsdata"' //
                      SubStr(clRslt,
                             nPos + nTagLength + 1,
                             Length(clRslt) - nPos - nTagLength);
          end if;
          -- замисываем xml-сообщение в событие  
          p_event.SetEventData(clRslt);
          return 'SUCCESS';
        EXCEPTION
          when OTHERS then
            return 'ERROR';
        END payment_rule;
      END xx_BAM;

    3. Создание первой подписки BES
      (вызова процедуры сбора показателей платежа)
      1. Зайдите в OEBS под SYSADMIN.
      2. Откройте полномочие "Workflow Administrator Web Applications"->"Business Events" (Администратор потоков операций Web приложений->Бизнес события).
      3. Встаньте на Subscriptions (Подписки) и создайте подписку со следующими параметрами:
        System: <имя системы OEBS>
        Source Type: Local
        Event Filter: oracle.apps.ap.payment
        Phase: 40
        Status: Enabled
        Rule Data: Key
        Action Type: Custom
        On Error: Skip to Next
        Rule Function PL/SQL: xx_BAM.payment_rule
        Owner Name: XX_BAM
        Owner Tag: XX_BAM

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 01.10.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Processor License
Oracle Database Personal Edition Named User Plus License
TeeChart for .NET Standard Business Edition 2017 single license
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Краткие описания программ и ссылки на них
Windows и Office: новости и советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100