[От редакции OM/RE: Когда эта статья нашего постоянного автора Антона Шмакова была уже принята к
публикации в очередном (февральском) выпуске «Oracle Magazine/Русское Издание», на сайте публикаций корпорации Oracle появилась статья Марка Риттмана (Mark Rittman,
Oracle ACE Director) и Джоэл Крисп (Joel Crisp) «Integrating Oracle Business Intelligence Enterprise Edition Plus with SOA»
на ту же тему, что и работа А.Шмакова. Естественно, что статья А.Шмакова абсолютно независима от публикации
М.Риттмана, хотя Антон не скрывает, что для введения в предлагаемую читателям данную работу он пользовался
блогом метра-директора коллегии «Асы Oracle».
Перевод статьи M.Rittman и J.Crisp «Integrating Oracle Business Intelligence Enterprise Edition Plus with SOA»
планируется к публикации в следующем выпуске журнала OM/RE.]
Введение
Технология Business Intelligence (BI) продолжает активно
развиваться. За последние несколько лет компании стали
представлять свои хранилища данных и BI-системы как
web-сервисы для использования другими приложениями
и процессами, связанными сервисно-ориентированной
архитектурой (SOA) или ПО промежуточного уровня,
таким как корпоративная сервисная шина (enterprise service bus — ESB). В целом SOA предлагает компаниям
многочисленные преимущества, как с точки зрения
бизнеса, так и информационных технологий.
SOA позволяет связать различные системы, существующие
на предприятии и формализовать бизнес процессы их
взаимодействия. В центре внимания СОА находятся не
данные, а сервисы, которые являются бизнес-функциями,
предназначенными для обеспечения согласованной работы
больших, состоящих из множества частей приложений. С
другой стороны в фокусе BI находятся данные, которые надо
обрабатывать и отображать. Технология SOA имеет очень
хороший потенциал в отношении BI-систем. Она позволяет
обеспечить прозрачный доступ к информации, собранной
в “виртуальное” хранилище данных из различных
операционных и аналитических источников в реальном
времени. Кроме того, использование сервисов как основы
для построения BI системы позволяет преодолеть многие
трудности связанные с клиент-серверной архитектурой. Так
например, становится возможным управлять событиями,
выполнять многие задачи в режиме реального времени,
автоматизировать анализ и обработку информации, делать
легко масштабируемые и “интегрируемые” системы.
В этой статье рассматривается применение и реализация
SOA технологий в Oracle Business Intelligence Enterprise
Edition.
SOA архитектура в Oracle BI EE
BI системы последнего поколения представляют собой
не просто отдельную программу, в которой пользователи
строят и публикуют отчеты, а обширный комплекс
технологий и приложений, созданный для удовлетворения
всех потребностей BI. Именно таким продуктом и
является Oracle Business Intelligence Enterprise Edition
(подробнее см. «Oracle BI Suite EE — самая «всеядная» и
«интеллектуальная» из аналитических платформ», Oracle
Magazine RE, Октябрь 2007.
В целом подход Oracle к созданию сервис ориентированной
бизнес аналитике (Service Oriented Business Intelligence)
следующий. Одной из основных характеристик платформы
Oracle BI EE является понятие “всепроникающей” (Pervasive) бизнес аналитики, что позволяет принимать более
обдуманные и взвешенные решения на различных уровнях.
Т.е. можно выделить следующие тенденции в развитие SO
BI:
- Включение BI в бизнес процессы компаний позволяет
добавить аналитическую составляющую в Workflow и
обработку различных событий.
- Интеграция BI-систем и бизнес приложений
позволяет объединить транзакционную и аналитическую
обработку данных в едином интерфейсе;
- Интеграция исторических и данных реального
времени позволяет строить хранилища данных
нового типа, заниматься мониторингом различных
аналитических показателей в режиме реального времени.
- Создание проактивной аналитики позволяет
инициировать бизнес процессы из BI систем.
Если говорить про SOA архитектуру, то основными
составляющими ее являются следующие компоненты:
- Бизнес-процессы (Business Processes) и BPEL – язык
формального описания бизнес процессов и протоколов их
взаимодействия между собой;
- Бизнес правила (Business Rules);
- Бизнес события (Business Events) и корпоративная
сервисная шина (ESB);
- Мониторинг бизнес деятальности (BAM).
Внедрение BI в SOA среду позволяет расширить каждый
из перечисленных выше компонентов:
- Аналитические бизнес процессы (Analytic BPEL,
ABPEL)
- Использование различных аналитические условий
и метрики в BPEL процессах;
- Заниматься оркестровкой сервисов с
использованием данных из BI систем;
- Аналитические бизнес правила (Analytic Business
Rules)
- Аналитическое управление бизнес событиями (Analytic Business Event Routing):
- Возможность генерации бизнес событий (в том
числе в шину данных) из агентов (Alert) в BI системах;
- Использование данных и отчетов для генерации
бизнес событий;
- Возможность строить отчеты и запускать
аналитические модели и вычисления из BPEL процессов;
- Интеллектуальная маршрутизация бизнес
событий;
- Аналитический мониторинг бизнес деятельности
(Analytic BAM).
Oracle BI EE и BPEL
По своей сути Oracle Business Intelligence является
не монолитным приложением, а набором различных
сервисов, которые работают на единой информационной
платформе и выполняют каждый свои определенные
функции. В Oracle BI EE сервером, на котором
реализуются все сервисы, называется Oracle BI Presentation Services. Кроме внутренних сервисов, в нем
существует целый набор стандартных SOAP Webсервисов, которые можно использовать при построении
различных композитных приложений с использованием
BPEL.
По сути, они являются полноценным API, т.е. набором
базовых функций для управления всей системой. Они
позволяют выполнять следующие задачи:
- Получать отчеты и данные из них
- Доставлять отчеты внешним системам
- Управлять каталогом метаданных
- Запускать бизнес-процессы и агенты исполнения
(iBot)
См. рисунок
Формальное описание сервисов и методов представлено
в WSDL-файл, который находится по адресу http://host:port/analytics/saw.dll?WSDL. XSD-файл для сервисов
называется SawServices.xsd и находится в папке \Web\App\Res\Wsdl\Schemas.
Oracle BI предоставляет пользователю следующие 8
сервисов:
- HtmlViewService – сервис, позволяющий встраивать
отчеты в HTML формате в любые внешние приложения
или порталы. Кроме того сервис, позволяет в режиме
реального времени изменять конечное представление
отчета;
- iBotService – сервис, позволяющий запускать агенты
исполнения (iBot). Создавать или изменять iBot с
помощью этого сервиса нельзя;
- MetadataService – сервис, с помощью которого можно
получать метаописания для различных объектов включая
- ReplicationService – сервис, позволяющий
производить экспорт и импорт метаданных из файлов;
- ReportEditingService – сервис, с помощью которого
можно настраивать параметра для отчетов;
- SAWSessionService – сервис, обслуживающий все
сессионные переменные, такие как имя пользователя,
пароль, ключ сессия и т.д. Является обязательным и
самым первым сервисом в работе;
- SecurityService – сервис, отвечающий за вопросы
безопасности в системе;
- WebCatalogService – сервис, с помощью которого
можно управлять Web-каталогом, позволяет создавать,
изменять, удалять любые объекты;
- XMLViewService – сервис, позволяющий выполнять
произвольные запросы к модель данных и получать
результаты в XML формате.
Таким образом, интеграция BI с BPEL позволяет решать
следующие задачи:
- Запускать бизнес процессы из BI системы
- Интерактивное взаимодействие (Interactive Dashboards, Answers);
- Регламентированное взаимодействие (Alerts/
iBots);
- Встраиваемая в бизнес процессы аналитика
- Возможность вызова отчетов и получения
результатов;
- Возможность вызова из бизнес-процессов механизма
доставок (Delivers) в Oracle BI.
Пример
В качестве примера взаимодействия Oracle BI EE и BPEL
построим простой процесс, который будет авторизоваться
в Oracle BI EE, а затем получать данные из него.
Запускаем JDeveloper 10.1.3.1 и создаем новый BPEL
Process Project, в качестве шаблона выбираем Synchronous
BPEL Process, получаем готовый шаблон, который мы
дальше будем расширять.
Выбираем Invoke метод в списке инструментов и
вставляем его между receiveInput и replyOutput. Заходим в
его свойства и нажимаем на кнопку обзора Partner Link. В
появившемся окне создаем новый Partner Link – BI_SAWSession. В окне редактирования Partner Link в строке
WSDL File вписываем путь к Oracle BI EE WSDL файлу в
виде http://host:port/analytics/saw.dll?WSDL и нажимаем на
копку Parse WSDL. В строке Partner Link Type выбираем
SAWSessionServiceSoap_PL, а в строке Partner Role
– SAWSessionServiceSoap_Role.
Возвращаемся обратно в свойства Invoke метода. В строке
Partner Link должен быть выбран только что созданный
объект, в строке Operation выбираем logon. Вводим название
BI_Logon_Invoke и нажимаем кнопки для автоматического
создания входной и выходной переменной.
Теперь нам надо для вызова операции logon во входную
переменную метода BI_Logon_Invoke передать имя
пользователя и пароль. Выбираем в палитре инструментов
Assign метод, открываем его свойства. На закладку Copy
Operation создаем две Copy Operation для параметров ns1:
name и ns1:password для входной переменной метода BI_
Logon_Invoke. Значение параметров есть имя пользователя
и пароль для входа в Oracle BI EE.
См. рисунок
Таким образом, получаем следующий бизнес процесс,
который обращается к Oracle BI EE, авторизуется на
сервере и получает ключ авторизации.
Между методом BI_Logon_Invoke и replyOutput вставляем
еще один Invoke метод – BI_SQL_Invoke, который будет
передавать серверу Oracle BI SQL запрос и получать
результат его выполнения. Создаем новый Partner Link –
BI_XMLView, в качестве WSDL файл указываем такой же
путь как и в предыдущий раз, в Partner Link Type выбираем
XmlViewServiceSoap_PL, Partner Role – XmlViewServiceSoap_Role.
В новом методе выбираем операцию executeSQLQuery и
создаем автоматически входную и выходную переменную.
Между методами BI_Logon_Invoke и BI_SQL_Invoke
вставляем новый Assign метод – Assign_SQL. Создаем в
нем три Copy операции:
Для sessionID из выходной переменной метода BI_Logon_Invoke;
См. рисунок
Для передачи SQL запроса: select Markets.Region, “Sales
Measures”.Units from Paint
См. рисунок
Для установки значения параметра async
См. рисунок
Последнее что, надо создать, это Assign метод между
методом BI_SQL_Invoke и replyOutput, чтобы скопировать
результаты работы SQL запроса в выходную переменную
всего бизнес процесса.
См. рисунок
BPEL процесс целиком готов, теперь если разместить его
на Application Server и запустить из BPEL Process Manager,
получим следующий результат:
См. рисунок
Т.е. мы получили данные из стандартной схемы Paint,
которая поставляется вместе с Oracle BI EE.
Совершенно аналогичным образом можно вызывать и
другие сервисы, входящие в Oracle BI, строить на основе
них сложные бизнес процессы тем самым внедряя ту
самую аналитику.
Вызов BPEL из Oracle BI EE
В предыдущем примере мы показали, как можно
вызывать Oracle BI сервисы из BPEL, но существует
возможность вызова BPEL процессов из самого Oracle
BI EE. Это можно сделать из Oracle BI Delivers. При
создании iBot на закладке Advanced можно выбрать
дополнительное действие, которое будет отрабатываться
при выполнении или невыполнении условий агента. В
качестве возможных вариантов можно выбрать:
- iBot – возможность запустить другой агент
- Custom Script – выполнить любой скрипт на JavaScript
или VBScript;
- Workflow – запустить Siebel CRM Workflow;
- Custom Java Program – выполнить произвольный Java
код.
В качестве интеграции с BPEL подходят два варианта: Custom Script или Custom Java Program.
В первом случае можно написать небольшую программу,
например на JavaScript, которая будет обращаться к некому
сервлету (Servlet) и передавать ему параметры, а он будет
запускать BPEL процессы. Если BPEL Process имеет HTTP
форму запуска, то JavaScript может напрямую обращаться
к BPEL процессу и передавать ему параметры.
Второй вариант взаимодействия через Custom Java Program позволяет писать на Java абсолютно любые вызовы
и обработки.
В скором времени Oracle обещает добавить полноценную
поддержку BPEL в Oracle BI EE, тогда в списке возможных
действий в iBot появится еще один пункт BPEL.
Заключение
В качестве некого заключение хочется отметить, что
общая тенденция к созданию приложений и систем,
работающих в реальном времени, способных реагировать
на различные бизнес события и инициировать бизнес
процессы становится абсолютно очевидной. Для Oracle
одним из главных приоритетов становится интеграция
SOA технологий во все решения и продукты, не является
исключением и BI. Думается, что уже в 2008 году выйдет
релиз Oracle BI, который будет полностью интегрирован с
SOA и BPEL.