Досвід впровадження Oracle BAM в ЦНДІ Атомінформ

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: OracleBAMOC4Jj2ee).
  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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*