Сервис-ориентированный подход в бизнес-аналитике от OracleИсточник: Oracle Magazine/Русское Издание
Антон Шмаков ведущий консультант-разработчик IBS Borlas От редакции OM/RE: Когда эта статья нашего постоянного автора Антона Шмакова была уже принята к публикации в очередном (февральском) выпуске «Oracle Magazine/Русское Издание», на сайте публикаций (http://www.oracle.com/technology/pub/articles/index.html) корпорации 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» планируется к публикации в следующем (апрельском) выпуске нашего журнала. обработку данных в едином интерфейсе; • Интеграция исторических и данных реального времени позволяет строить хранилища данных нового типа, заниматься мониторингом различных аналитических показателей в режиме реального времени. • Создание проактивной аналитики позволяет инициировать бизнес процессы из BI систем. Если говорить про SOA архитектуру, то основными составляющими ее являются следующие компоненты: • Бизнес-процессы (Business Processes) и BPEL - язык формального описания бизнес процессов и протоколов их взаимодействия между собой; • Бизнес правила (Business Rules); • Бизнес события (Business Events) и корпоративная сервисная шина (ESB); • Мониторинг бизнес деятальности (BAM). Внедрение BI в SOA среду позволяет расширить каждый из перечисленных выше компонентов: • Аналитические бизнес процессы (Analytic BPEL, ABPEL) o Использование различных аналитические условий и метрики в BPEL процессах; o Возможность строить отчеты и запускать аналитические модели и вычисления из BPEL процессов; o Заниматься оркестровкой сервисов с использованием данных из BI систем; • Аналитические бизнес правила (Analytic Business Rules) • Аналитическое управление бизнес событиями (Analytic Business Event Routing): o Возможность генерации бизнес событий (в том числе в шину данных) из агентов (Alert) в BI системах; o Использование данных и отчетов для генерации бизнес событий; o Интеллектуальная маршрутизация бизнес событий; • Аналитический мониторинг бизнес деятельности (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 системы o Интерактивное взаимодействие (Interactive Dashboards, Answers); o Регламентированное взаимодействие (Alerts/iBots); • Встраиваемая в бизнес процессы аналитика o Возможность вызова отчетов и получения результатов; • Возможность вызова из бизнес-процессов механизма доставок (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, авторизуется на сервере и получает ключ авторизации.
В новом методе выбираем операцию executeSQLQuery и создаем автоматически входную и выходную переменную. Между методом 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. Между методами 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 процессу и передавать ему параметры. В скором времени Oracle обещает добавить полноценную поддержку BPEL в Oracle BI EE, тогда в списке возможных действий в iBot появится еще один пункт BPEL. Второй вариант взаимодействия через Custom Java Program позволяет писать на Java абсолютно любые вызовы и обработки. Заключение В качестве некого заключение хочется отметить, что общая тенденция к созданию приложений и систем, работающих в реальном времени, способных реагировать на различные бизнес события и инициировать бизнес процессы становится абсолютно очевидной. Для Oracle одним из главных приоритетов становится интеграция SOA технологий во все решения и продукты, не является исключением и BI. Думается, что уже в 2008 году выйдет релиз Oracle BI, который будет полностью интегрирован с SOA и BPEL. |