Corda 7 в Oracle BI EE+
Внимание: В статье сделаны изменения, старая версия компонента не работает!!! Читайте изменения!
В Oracle Business Intelligence Enterprise Edition Plus за построение графиков отвечает специальный компонент, который называется Corda PopChart. Разрабатывает его компания Corda Technologies, одна из ведущих компаний в области технологий программного обеспечения для визуализации данных. Офис компании располагается в США, штат Юта. Corda Technologies одной из первых в своей отрасли предложила ряд принципиально новых подходов для визуализации данных на базе таких технологий как Flash и векторная графика (SVG). PopChart – мощное интерактивное, масштабируемое средство для представления в сети графиков и диаграмм различной сложности. В Oracle BI EE+ PopChart включается по OEM-лицензии. В последний релиз 10.1.3.4.1 включена очень старая версия 5.1.2 сервера PopChart. На сегодняшний момент существует уже версия 7.3 сервера PopChart Enterprise.
На рисунке ниже представлена архитектура сервера Corda PopChart.
В основе лежит PopChart Server, полностью написанный на Java, который занимается генерации графиков и диаграмм. На веб-сервере (сервере приложений) выполняется код, который посылает запросы к источникам информации, а затем результаты передает серверу PopChart, который генерирует окончательный код. PopChart поддерживает около 30 различных типов графиков, диаграмм и представлений, может работать с различными источниками информации, включая базы данных через ODBC/JDBC протокол, XML-файлы и плоские файлы. На выходе можно получать графические представления в следующих форматах:
- Интерактивные
- Flash
- SVG
- Статичные
- JPG
- PNG
- TIFF
- BMP
- WBMP
Сервер можно легко масштабировать, обеспечивая балансировку нагрузки. Также в состав решения входит специальный компонент, который называется Corda Embedder, необходимый для встраивания графического содержимого в web-страницы, т.е. это некий шлюз между web-страницей и графическим сервером. Для создания шаблонов существует специальный инструмент, который называется Corda Builder.
Вообще говоря отличий между 5ой и 7ой версиями огромное множество -- появились новые типы графиков, изменились старые, стало больше возможностей в настройках графиков -- да много чего, разница в несколько лет. Конечно хотелось бы прикрутить новую версию Corda к «старому» BI. Ниже я опишу один из возможных способов такой «интеграции».
Надо отметить, что различий с точки зрения интеграции между 5ой и 7ой версиями больше, чем даже могло представиться. Corda Embedder -- это специальный компонент (набор библиотек API), который позволял использовать Corda -- претерпел коллосальные изменения. Полностью изменилась библиотека тегов Java Tag Library, исчезла поддержка C++, JavaBean, JavaScript, изменились названия многих ключевых методов и функций. Но самое главное -- полностью изменился формат шаблонов графиков! Раньше формат назывался -- pcxml, в новой версии он стал itxml. Причем никакой приемственности в форматах нет! В API осталась поддержка как pcxml, так и itxml. Но новые фичи и возможности, доступные в itxml, не возможно использовать с шаблонами, сделанными в формате pcxml. Если открыть pcxml шаблон в Corda Builder, он сразу преобразуется в itxml. В Corda можно было загрузить базовый шаблон, а потом дополнительно его подправить с помощью внутренних команд (метод setPcScript). Но если у вас есть pcxml шаблон, любые новые параметры itxml использоваться нельзя. Поясню на примере: пусть у вас есть pcxml шаблон и вы устанавливаете его для отчета:
...
embedder = new LibraryEmbedder();
embedder.setHeight(height);
embedder.setWidth(width);
embedder.setOutputType(imageType);
embedder.setUserAgent(userAgent);
embedder.addPCXML(pcxml);
embedder.setPcScript("graph.addITXML(<cit :graph-settings animate=\"true\"/>)"); // Будет ошибка!!!
...
Но даже без новых опций (типа flash-анимации), можно использовать Corda 7 и Oracle BI EE+.
Итак, что надо делать:
1. Установить Corda PopChart 7.x;
2. Поскольку за интеграцию с PopChart в Oracle BI EE+ отвечает сервис JavaHost, надо скопировать новые библиотеки в папки с JavaHost. За интеграцию с Corda PopChart «отвечает» папка: {BI_HOME}/web/javahost/lib/sawrpccalls/corda. Туда надо скопировать следующие библиотеки (предварительно, конечно записать старые файлы CordaServer.jar,FreeLib.jar в укромное место на всякий случай):
CordaServer.jar, FreeLib.jar, jai_codec.jar, jai_core.jar, log4j-1.2.9.jar, mlibwrapper_jai.jar, oslib.jar
Внимание: библиотека redist.jar больше не нужна.
3. Но скопировать новые библиотеки не достаточно! Как я уже писал, в новой версии полностью изменился API, поэтому старый и новый CordaServer.jar -- два абсолютно разных файлах с разной структурой классов и самими классами!!! Поэтому, надо настраивать классы вручную. Поэтому, надо настраивать классы вручную. В папке {BI_HOME}/web/javahost/config есть файл config.xml. В этом файле настраивается интеграция с внешними Java-сервисами (Кстати там, можно добавить свой новый лоадер). Находим раздел Charts (отвечает как раз за интеграцию с PopChart), который выглядит следующим образом:
<Loader>
<!-- Loader name to be used in ListOfEnabledLoaders key -->
<Name>Charts</Name>
<!-- Loader main class -->
<Class>com.siebel.analytics.web.javahostrpccalls.corda.CordaComponentLoader</Class>
<!-- XPath to configuration information for this Loader, starting from document root element ("JavaHost") -->
<ConfigNodePath>Charts</ConfigNodePath>
<ClassPath>{%javahostdir%}/lib/sawrpccalls/sawrpccalls.jar;{%javahostdir%}/lib/sawrpccalls/corda/CordaServer.jar;{%javahostdir%}/lib/sawrpccalls/corda/FreeLib.jar;{%</ClassPath>
</Loader>
Из него очевидно следующее: для работы с PopChart указаны пути к классам (classpath) и указан базовый загрузчик компонета com.siebel.analytics.web.javahostrpccalls.corda.CordaComponentLoader
Для того, чтобы подключить новую 7 версию -- (теперь не надо писать свой загрузчик и) дописать недостающие классы, которыми пользуется Oracle BI EE+ для интеграции с Corda, но которые почему-то исчезли из новой версии. Кстати эти классы следующие:
com.corda.pcis.PopChartServer
com.corda.pcis.PCISLibEmbedder
в 7 версии их заменили соотвественно на классы:
com.corda.ctserver.pcis.CordaServer
com.corda.ctserver.pcis.LibraryEmbedder
Таким образом, остается написать шлюз между новыми и старыми классами и добавить старые классы к новой сборке.
Внимание: Старая версия компонента не работает, я выложил новую рабочую версию! Читайте обновленную инструкцию ниже.
Готовый компонент можно скачать ниже. По умолчанию настроено, что Corda PopChart 7.x установлен в каталог C:\Corda\Corda7. Если вы собираетесь устанавливать в другую папку необходимо сделать изменения в конфигурационном файле server_config.txt (делать изменения в файле PopChartServer.java теперь не надо и компилировать компонент заново не надо). Для изменения параметров надо открыть любым zip-архиватором файл Corda7_Support2.jar (скачиваете ниже), далее идете com/corda/pcis, там находится файл server_config.txt, который выглядит следующим образом:
#Corda Properties File
#Fri Jul 17 15:36:34 MSD 2009
Server.internal.port=2002
Server.resource.root=C\:\\Corda\\Corda7\\Resources
Server.external.port=2001
Server.rmi.port=2003
Server.password=password
Server.root=C\:\\Corda\\Corda7\\Server
В нем можно изменить пути к папкам, номера портов или пароли, если что-то менялось при установке или настройке сервера PopChart.
Готовый Java компонент для интеграции:
| Готовый Java компонент для интеграции BI EE+ и Corda7 (Новая версия!) | |
|---|---|
| Размер | 5.15K |
| Версия | 2 |
| Дата | 03.09.2009 |
| Автор | Anton Shmakov |
| MD5 | 417e5fe160fb842c0656e2fa1b7c3f0a |
| Скачать | |
| Исходники Java компонента для интеграции BI EE+ и Corda7 (Новая версия!) | |
|---|---|
| Размер | 3.32K |
| Версия | 2 |
| Дата | 03.09.2009 |
| Автор | Anton Shmakov |
| MD5 | ca1b7c5f2880e607fdeb1e22be86e22d |
| Скачать | |
Надо скопировать файл Corda7_Support2.jar в папку {BI_HOME}/web/javahost/lib/sawrpccalls/corda.
4. Дальше необходимо в конфигурационном файле JavaHost {BI_HOME}/web/javahost/config/config.xml подключить новые Java-библиотеки (и не надо подключать новый загрузчик компонента):
<Loader>
<!-- Loader name to be used in ListOfEnabledLoaders key -->
<Name>Charts</Name>
<!-- Loader main class -->
<Class>com.siebel.analytics.web.javahostrpccalls.corda.CordaComponentLoader</Class>
<!-- XPath to configuration information for this Loader, starting from document root element ("JavaHost") -->
<ConfigNodePath>Charts</ConfigNodePath>
<ClassPath>{%javahostdir%}/lib/sawrpccalls/sawrpccalls.jar;{%javahostdir%}/lib/sawrpccalls/corda/CordaServer.jar;{%javahostdir%}/lib/sawrpccalls/corda/Corda7_Support2.jar;{%javahostdir%}/lib/sawrpccalls/corda/jai_codec.jar;{%javahostdir%}/lib/sawrpccalls/corda/jai_core;{%javahostdir%}/lib/sawrpccalls/corda/log4j-1.2.9.jar;{%javahostdir%}/lib/sawrpccalls/corda/mlibwrapper_jai.jar;{%javahostdir%}/lib/sawrpccalls/corda/oslib.jar;</ClassPath>
</Loader>
5. После указанных выше действий, все графики будут работать через новую версию Corda PopChart 7.x.
Пример реализации можно посмотреть ниже:
Вот так.
UPDATE: Обращаю внимание, что во-первых для использования Corda PopChart 7, надо купить лицензию, во-вторых, при подключении новой версии графического сервера к Oracle Business Intelligence Enterprise Edition +, вы теряете поддержку от Oracle, поскольку данная связка не сертифицирована Oracle. Данная статья является только иллюстрацией возможности интеграции двух продуктов. Все что вы делаете, вы делаете на свой страх и риск и несете полностью отвественность за любые ошибки, проблемы или потери важной информации.




Сентябрь 2, 2009 в 10:54
Антон, я попытался произвести все те операции, которые описаны в Вашей сатье. Но результата не удалось добиться. В связи с этим вопросик:
1. После установки пробной версии Corda 7.3 (В папку C:\Corda\Corda7) мне не удалось обноружить новых версий библиотек FreeLib.jar,Redist.jar. не знаете по какой причине?
И может мои нейдачи связаны именн с этим?
[Ответить]
Сентябрь 2, 2009 в 12:52
Федор,
Можете написать, что конкертно не работает?
- После указанных действий, запускается служба JavaHost или она падает?
- Служба запускается, но при построении графики в окне отображения пишется ошибка?
Я настраивал интеграцию еще на версии 7.2, думаю, что больших отличий между 7.3 и 7.2 не должны быть. Но если у вас не будет получаться, я попробую установить версию 7.3.
Относительно библиотек, FreeLib.jar можно взять от старой 5 версии, Redist.jar можно поискать поиском, подойдет любой.
[Ответить]
Сентябрь 2, 2009 в 13:51
Антон, после последних попыток ситуация следующая:
1.В {ORACLE_BI}\web\javahost\lib\sawrpccalls\corda\
положил следующие библиотеки
CordaServer.jar (новая из папки с Corda 7), FreeLib.jar, jai_codec.jar, jai_core.jar, log4j-1.2.9.jar, mlibwrapper_jai.jar, oslib.jar
(Redist.jar не нашел вообще нигде. может вы пришлете)
2.В эту те папку положил Corda7_Support.jar
3. написанный выше блок XML вставил в {OracleBI}\web\javahost\config\config.xml
вместо имеющегося там
И вот тут JavaHost не стартует с сообщением
«Служба была запущена а затем остановлена»
Может быть какие-то рекомендации появяться.
Заранее спасибо.
[Ответить]
Сентябрь 2, 2009 в 14:07
Антон, мне удалось продвинуться вперед.
Я изменил процедуру настройки.
1. Я лишь только заменил
com.siebel.analytics.web.javahostrpccalls.corda.CordaComponentLoader
на
com.siebel.analytics.web.javahostrpccalls.corda.CordaComponentLoaderFix
в
конфирурационном файле
и изменил строчку с путем к классам
JavaHost запустился
Но в OracleBI при попытки построить диаграмму выдается сообщение
«Сервер RPC получил идентификатор сообщения, который он не распознал. Подробнее см. журнал сервера.»
(Журнал сервера {OracleBI}\server\Log\ пуст)
Прошу совета
[Ответить]
Сентябрь 2, 2009 в 16:18
Фёдор,
Логи для JavaHost лежат в папке {OracleBIData}/web/log/javahost/*, логи презентационного сервера лежат в {OracleBIData}/web/log/sawlogXX.log.
Пришлите мне на почту все логи, я попробую разобраться, в чем проблема.
[Ответить]
Сентябрь 3, 2009 в 11:00
Сделал новую версию компонента для интеграции Corda PopChart 7 и Oracle BI EE+, в которой исправлены ошибки. Также изменился и порядок его работы, читайте изменения в статье.
[Ответить]
Сентябрь 3, 2009 в 12:47
Спасибо, Антон. Мне удалось благополучно подключить Corda 7.3. Провожу сравнительный анализ с прошлой версией сервера (Corda 5).
[Ответить]
Сентябрь 3, 2009 в 12:58
@Фёдор, замечательно! Теперь можно попробовать поправить шаблоны графиков – pcxml-файлы и посмотреть новые эффекты
[Ответить]
Сентябрь 4, 2009 в 13:14
Антон, а отсюда поподробнее. Где менять шаблоны графиков? И как посмотреть новые эффекты?
[Ответить]
Сентябрь 4, 2009 в 19:18
[...] Другой блоггер из российского Oracle Антон Шмаков написал несколько статей и в том числе ту, на которую хочу обратить внимание: Corda 7 в Oracle BI EE+ [...]