|
|
|||||||||||||||||||||||||||||
|
Сервис-ориентированный подход в бизнес аналитике от Oracle Часть 2Антон Шмаков ведущий консультант-разработчик IBS Borlas
Введение
Данная статья является продолжением статьи "Сервис-ориентированный подход в бизнес аналитике от Oracle", опубликованной в "Oracle Magazine/Русское Издание" за февраль 2008 г. (http://www.oracle.com/global/ru/oramag/ feb2008/feb-08_shmakov_soaway-31-37.pdf). Платформа Oracle Business Intelligence Enterprise Edition Plus является самым передовым решением в области бизнес аналитики. Она позволяет построить единую модель всей корпоративной информации. Основной и отличительной особенностью платформы является ее "всеядность" (более подробно см. статью "Oracle BI Suite EE - самая "всеядная" и "интеллектуальная" из аналитических платформ" ("Oracle Magazine/Русское Издание" за октябрь 2007 - http://www.oracle.com/global/ru/oramag/oct2007/russia borlas_bi.html )), т.е. возможность работать с абсолютно любыми источниками данных. Аналитический сервер, являющийся ядром системы, поддерживает интеграцию с целым рядом различных источников информации, включая, реляционные и многомерные базы данных, плоские и XML файлы. Для доступа он использует следующие стандарты и технологии ODBC, OCI, CLI, MDX, XML, XMLA. Но технологий и стандартов доступа к данным существует гораздо больше. Для создания действительно полной модели корпоративных данных порой важным является подключения некоторого источника, которые работает с интерфейсами, которые Oracle BI не поддерживает. Решением этой проблемы является специальный инструмент, называемый шлюзом. Таким образом, если между стандартом аналитического сервера и стандартом конечного приложения существуют шлюз, то существует и возможность интеграции BI и конечного приложения. Например, существует шлюз ODBC-JDBC, который позволяет подключать к платформе Oracle BI любую базу данных, поддерживающую стандарт JDBC. Другой пример - это стандарты OLE DB или OLE DB for OLAP (ODBO), которые напрямую не поддерживаются платформой Oracle BI. Если же использовать шлюзы, то данная проблема решается очень просто. На сегодняшний день на рынке существует целый ряд компаний, предлагающих подобного рода решения. Среди них можно выделить Simba Technologies и DataDirect Technologies. Но тема шлюзов между стандартами работы с данными не является главной в данной статье. Основным же вопросом является рассмотрение возможности подключения Web-сервисов в качестве источников информации для платформы Oracle BI. Поскольку SOA-технологии развиваются очень активно, весьма важным становится вопрос о том, можно ли встроить систему бизнес анализа в SOA-среду так, чтобы поток данных шел не из BI-систем, но и наоборот. Web-сервисы как источники данныхСледует сразу отметить, что аналитический сервер платформы Oracle BI EE Plus не поддерживает напрямую работу с Web-сервисами. Он имеет богатые возможности по работе с XML файлами и XML-серверами, т.е. некими приложениями, которые могут обрабатывать XML-запросы и делать XML-преобразования. При подключении любого XML-источника можно дополнительно указывать XSLT- преобразования, которые позволяют трансформировать данные. Есть также и поддержка XPath. Однако, для того чтобы подключить Web-сервис как источник в аналитическом сервере, надо создавать специальный шлюз. Опишем, как можно подключить некий тестовый Web- сервис с одним параметром, к которому есть http-доступ. Пусть он доступен по адресу http://host:port/webservices/ myWebService и поддерживает один параметр myParam, причем параметр можно передавать из URL, т.е. запрос http://host:port/webservices/myWebService?myParam=value возвращает данные. Если открыть тестовый репозитарий Paint, который поставляется вместе с Oracle BI EE, то можно увидеть, что в качестве источников используются XML-файлы. Причем в пуле соединений указывается путь к папке, в которой лежат XML-файлы, а каждая физическая таблица имеет привязку к конкретному XML-файлу. Если попытаться подключить аналогичным образом наш тестовый Web-сервис, то работать ничего не будет. Проблема заключается в том, что в Oracle BI EE есть следующие особенности:
Таким образом, мы получаем следующий URL для обращения к сервлету http://host:port/proxy/myServlet_myParam_myValue.xml. При обращении Servlet разбирает URL и отправляет запрос Web-сервису с myParam=myValue, а затем получает XML-ответ и возвращает его обратно. После того как сделан специальный Servlet-шлюз, можно приступать к его регистрации в репозитарии, но перед этим надо создать сессионную переменную MYPAR, через которую можно будет передавать значения myValue для параметра myParam. Для переменной создается инициализационный блок для установки первоначального значения. После создания переменной, необходимо создать Connection Pool, указав в Data source name: http://host:port/proxy/myServlet_myParam_VALUEOF(NQ_SESSION.MYPAR).xml Затем создаем физическую таблицу, в поле Name указываем следующее значение На закладке XML указываем полный путь к сервлету-шлюзу: mhttp://host:port/proxy/myServlet_myParam_VALUEOF(NQ_SESSION.MYPAR).xml После создания физической таблицы необходимо создать физические столбцы. При создании очередного столбца в поле External Name необходимо вписать Xpath-путь к данному полю в выходном XML-ответе от Web-сервиса. Последним шагом в подключении Web-сервиса как источника информации для Oracle BI, является привязывание созданной сессионной переменной MYPAR к промту или презентационной переменной для того, чтобы можно было изменять ее значение и получать различные выборки из Web-сервиса. ЗаключениеВ заключение следует отметить, что если требуется подключить не один, а достаточно много Web-сервисов, то написать для каждого Web-сервиса сервлет-шлюз встанет в достаточно трудоемкую задачу. В качестве решения этой проблемы предлагается написать один универсальный сервлет-шлюз, первым параметром которого будет являться имя или идентификатор Web-сервиса, а потом будет следовать переменное число параметров, которое может варьироваться в зависимости от конкретного Web-сервиса. Описанный выше способ подключение Web-сервисов как источников данных для аналитического сервера Oracle BI не является единственным. В статье описан тот подход, который был опробован автором в одном из проектов. Важным является то, что с помощью различных шлюзов можно подключать абсолютно любые источники данных и строить действительно полные и универсальные модели корпоративных данных. Ссылки по теме
|
|