Corda 7 в Oracle BI EE+

Главная » Бизнес аналитика, Материалы, Примеры, Технологии
Вт, 25/Авг/2009 | 10 коммент. | 1 577 †
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.

corda_arch

В основе лежит 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. Данная статья является только иллюстрацией возможности интеграции двух продуктов. Все что вы делаете, вы делаете на свой страх и риск и несете полностью отвественность за любые ошибки, проблемы или потери важной информации.

Метки: , , ,

  • Share
1 Star2 Stars3 Stars4 Stars5 Stars (Голосов: 1, среднее: 5,00 из максимум 5)
Loading ... Loading ...

10 коммент. »

  • Фёдор Пишет:

    Антон, я попытался произвести все те операции, которые описаны в Вашей сатье. Но результата не удалось добиться. В связи с этим вопросик:
    1. После установки пробной версии Corda 7.3 (В папку C:\Corda\Corda7) мне не удалось обноружить новых версий библиотек FreeLib.jar,Redist.jar. не знаете по какой причине?
    И может мои нейдачи связаны именн с этим?

    [Ответить]

    replicantОтвет:

    Федор,

    Можете написать, что конкертно не работает?
    - После указанных действий, запускается служба JavaHost или она падает?
    - Служба запускается, но при построении графики в окне отображения пишется ошибка?

    Я настраивал интеграцию еще на версии 7.2, думаю, что больших отличий между 7.3 и 7.2 не должны быть. Но если у вас не будет получаться, я попробую установить версию 7.3.

    Относительно библиотек, FreeLib.jar можно взять от старой 5 версии, Redist.jar можно поискать поиском, подойдет любой.

    [Ответить]

    ФёдорОтвет:

    Антон, после последних попыток ситуация следующая:
    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 не стартует с сообщением
    «Служба была запущена а затем остановлена»
    Может быть какие-то рекомендации появяться.
    Заранее спасибо.

    [Ответить]

    ФёдорОтвет:

    Антон, мне удалось продвинуться вперед.
    Я изменил процедуру настройки.
    1. Я лишь только заменил
    com.siebel.analytics.web.javahostrpccalls.corda.CordaComponentLoader
    на
    com.siebel.analytics.web.javahostrpccalls.corda.CordaComponentLoaderFix
    в
    конфирурационном файле
    и изменил строчку с путем к классам

    JavaHost запустился
    Но в OracleBI при попытки построить диаграмму выдается сообщение

    «Сервер RPC получил идентификатор сообщения, который он не распознал. Подробнее см. журнал сервера.»
    (Журнал сервера {OracleBI}\server\Log\ пуст)

    Прошу совета

    [Ответить]

    replicantОтвет:

    Фёдор,
    Логи для JavaHost лежат в папке {OracleBIData}/web/log/javahost/*, логи презентационного сервера лежат в {OracleBIData}/web/log/sawlogXX.log.

    Пришлите мне на почту все логи, я попробую разобраться, в чем проблема.

    [Ответить]

  • replicant (author) Пишет:

    Сделал новую версию компонента для интеграции Corda PopChart 7 и Oracle BI EE+, в которой исправлены ошибки. Также изменился и порядок его работы, читайте изменения в статье.

    [Ответить]

  • Фёдор Пишет:

    Спасибо, Антон. Мне удалось благополучно подключить Corda 7.3. Провожу сравнительный анализ с прошлой версией сервера (Corda 5).

    [Ответить]

    replicantОтвет:

    @Фёдор, замечательно! Теперь можно попробовать поправить шаблоны графиков – pcxml-файлы и посмотреть новые эффекты :-)

    [Ответить]

  • Федор Пишет:

    Антон, а отсюда поподробнее. Где менять шаблоны графиков? И как посмотреть новые эффекты?

    [Ответить]

  • Про Oracle Business Intelligence » Новости за август. BI, RTD, Streams, новые курсы Пишет:

    [...] Другой блоггер из российского Oracle Антон Шмаков написал несколько статей и в том числе ту, на которую хочу обратить внимание: Corda 7 в Oracle BI EE+ [...]

Оставить комментарий

Добавьте свой комментарий или трэкбэк . Вы также можете подписаться на комментарии по RSS. Будте вежливы. Не ругайтесь. Оффтоп тоже не приветствуем. Спам убивается моментально.
Вы можете использовать эти тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>