Oracle Business Intelligence: возможно все!…ну, или почти все…Источник: oracle Антон Шмаков, ведущий консультант-разработчик IBS Borlas
В своем последнем отчете по системам бизнес-анализа Gartner выделил 12 основных характеристик, разделенных на 3 группы, на основании которых аналитики оценили BI-платформы. Эти характеристики следующие:
Каждая из 3 групп характеристик очевидно важна для построения полнофункционального BI-решения. Но даже при наличии единой согласованной корпоративной модели данных, методики расчета показателей, ролевой модели доступа и развитой инфраструктуры отсутствие или беднота выразительных возможностей BI-платформы сводит к минимуму результат ее внедрения. В конечном итоге все принимаемые решения нацелены на повышения прибыли, а информация помогает решить вопрос как это сделать. Очень часто данных, на основе которых делаются какие-либо заключение, бывает очень много или они представлены в сложном непонятном виде. Все это затрудняет работу и восприятие. Информация, представленная в наглядной форме, соответствующей корпоративным стандартам, облегчает пониманием и повышает эффективность принимаемых решений на всех уровнях предприятия. Очень важной характеристикой любой BI-платформы является возможность решить практически любую задачу, будь это сложный отчет или нестандартный график, будь это нестандартное внешнее оформление интерфейса системы, или дополнительный функционал, будь это интеграция и многое другое. Этой статьей я хочу открыть серию статей, в которых буду рассказывать про уникальные возможности платформы Oracle Business Intelligence Enterprise Edition. Все возможности мы будем рассматривать в рамках 3 основных групп, предложенных аналитиками Gartner. Внешний вид Все стили и скины располагаются на сервере в следующих папках:
Папки, названия которых начинаются с символов 's_' - это стили, с символов 'sk_' - скины. На рисунке ниже представлена структура папок: Рис. 1. Стили и скины Следует отметить, что ресурсные папки должны быть синхронизированы между собой и содержать абсолютно одинаковый набор и состав файлов и подпапок! По умолчанию после установки для стиля и скина установлено значение oracle10. Поменять значения по умолчанию можно изменив соответствующие записи в файлах filemap.xml и instanceconfig.xml. Создание нового стиля или скина - это очень простая задача. Для этого, надо взять и скопировать готовую папку с новым названием. Затем сделать в ней все необходимые изменения и перезапустить сервисы. Новый стиль появится в свойствах интерактивных панелей, на рисунке ниже представлен пример: Рис. 2. Новый стиль для интерактивной панели Примеров приводить не будем, потому что все достаточно очевидно и просто. Надо править CSS файлы, менять картинки. Интерфейс Уникальность платформы Oracle Business Intelligence Enterprise Edition заключается в том, что весь интерфейс системы описан в виде набора ресурсных XML-файлов, которые при необходимости можно править и дорабатывать. Находятся эти файлы в папке - {BI_HOME}\web\msgdb, со следующей структурой:
Следует отметить, что все изменения нужно делать в папках customMessages и l_xx/customMessage s , не трогая других файлов. Это обусловлено тем, что после установки новой версии поверх старой, все изменения, сделанные в папках, отличных от указанных, будут уничтожены. В Oracle Business Intelligence Enterprise Edition ресурсные XML-файлы называются файлам Web-сообщений ( WebMessage files ). Рассмотрим, как выглядит типичный XML-файл. Ниже на рисунке представлен пример такого файла:
Рис. 3. Пример XML-файла Каждый файл представляет собой набор таблиц с записями вида название-значение . Такие записи называются Web-сообщениями ( WebMessage ). Любое сообщение обязательно имеет название ( name ), при этом само тело сообщения должно быть обрамлено в теги <TEXT> или <HTML>, в зависимости от кода, который в нем содержится. Понять предназначение того или иного сообщения можно из его названия, названия файла и названия типа таблицы сообщений (свойство system в теге WebMessageTable). Работать с сообщениями можно 2 способами:
Естественно, добавление новых сообщений это очень редкое действие, обычно оно сопряжено с добавление нового объекта в систему (например, график). Переопределение гораздо чаще встречается, но при этом надо обязательно учитывать порядок, в котором презентационный сервис просматривает папки с сообщениями и соответственно переопределяет их. Ниже дан список папок, отсортированный от самого высокого до самого низкого приоритета:
Все добавления и переопределения сообщений можно описать как в одном файле, так и в разных. По работе с сообщениями можно почитать документацию, но, к сожалению, очень много придется делать самостоятельно по наитию. Общего списка со всеми названиями сообщений и их описанием нет, как нет и схемы для XML-файла. В целом код в сообщениях достаточно понятный, поэтому разобраться можно на примерах. Ниже я приведу 2 примера по кастомизации интерфейса. Пример 1. Переключатель языков в панели инструментов интерактивной панели. Каждый пользователь при входе в Oracle BI может выбрать язык интерфейса. Однако, если вы уже зашли в систему, переключится на другой язык достаточно проблематично. В данном примере показывается, как можно переключать локальные настройки системы динамически в рамках одной пользовательской сессии, при этом поменяем интерфейс системы, чтобы было удобно. Для того чтобы переключить локальную настройку, можно воспользоваться URL-параметром locale, то есть обращаясь к серверу с URL вида http://server:9704/analytics/saw.dll?Dashboard&locale=xx (xx - код языка), можно менять язык интерфейса. Теперь остается добавить в интерфейс переключатель языков. Сделаем переключение на русский и английский язык, соотвественно значения locale должны быть ru и en. Идеальным местом для такого переключателя будет основная панель инструментов:
Рис. 4. Основная панель инструментов Основные элементы системы (к которым относится и основная панель инструментов) описываются в файле commonuitemplates.xml, который находится в папке messages. Открываем этот файл и находим в нем сообщение с названием (кодом) kuiMainBarActionsTable - это и есть то, что нам надо.
В коде, который указан выше, стоят ссылки на две картинки res/ru.png и res/en.png. Это два флага размером 12x9 пикселей, такие картинки можно легко найти на google.com. Чтобы все работало корректно картинки надо положить в ресурсные папки. В результате интерфейс и функционал системы изменится следующим образом:
Рис. 7. Пример интерфейса с выбором языка динамически Пример 2. Один страница - два названия Данный пример показывает, как создать многоязыковый интерфейс системы. Пусть интерактивная панель имеет название на английском языке. Необходимо сделать поддержку русского языка. Когда пользователи заходят в систему с русским языком, они видят название на том языке, с которым они зашли в систему. В качестве примера возьмем демонстрационнуюсхему SampleSales , которая появилась в Oracle Business Intelligence Enterprise Edition с версии 10.1.3.4.
В итоге получим, при выборе русского языка:
Рис. 11. При выборе английского языка:
Рис. 12. Графический сервер В Oracle Business Intelligence Enterprise Edition за построение графиков отвечает специальный компонент, который называется Corda PopChart. Разрабатывает его компания Corda Technologies, одна из ведущих компаний в области технологии программного обеспечения для визуализации данных. Офис компании располагается в США, штат Юта. Corda Technologies одной из первых в своей отрасли предложила ряд принципиально новых подходов для визуализации данных на базе таких технологий как Flash и векторная графика (SVG). PopChart - мощное интерактивное, масштабируемое средство для представления в сети графиков и диаграмм различной сложности. В Oracle Business Intelligence Enterprise Edition PopChart включается по OEM-лицензии. В последний релиз 10.1.3.4 включена версия 5.1.2 сервера PopChart. На сегодняшний момент существует 7 версия сервера. На рисунке ниже представлена архитектура решения Corda PopChart. В основе лежит сервер PopChart Server, полностью написанный на Java, который занимается генерации графиков и диаграмм. На web-сервер (сервере приложений) выполняется код, который посылает запросы к источникам информации, а затем результаты передает серверу PopChart, который генерирует окончательный код. PopChart поддерживает около 30 различных типов графиков, диаграмм и представлений, может работать с различными источниками информации, включая базы данных через ODBC/JDBC протокол, XML-файлы и плоские файлы. На выходе можно получать графические представления в следующих форматах:
Сервер можно легко масштабировать, обеспечивая балансировку нагрузки. Также в состав решения входит специальный компонент, который называется Corda Embedder, необходимый для встраивания графического содержимого в web-страницы, то есть это некий шлюз между web-страницей и графическим сервером. Для создания шаблонов существует специальный инструмент, который называется Corda Builder.
Рассмотрим, как реализована интеграция PopChart в Oracle BIEE. Если открыть домашнюю папку с BI, то легко заметить среди всех папку corda50 - это место, куда устанавливается Corda PopChart. Поскольку сам сервер полностью написан на Java, а Oracle BI в своей серверной части - компилированный машинный код, то напрямую интеграция была невозможна. Поэтому разработчикам пришлось сделать специальный сервис, всем известный как JavaHost, который и осуществляет интеграцию Oracle BI Presentation Server и Corda PopChart Server. Далее, я опишу несколько способ работы с PopChart.
Методика работы с PopChart следующая. Надо создать шаблон графика или диаграммы, он называется appearance file ( af ). По сути это xml-файл, в котором описываются различные свойства графика или диаграммы, такие как тип, размер шрифтов, оси и их масштабы и т.д. Эти шаблоны имеют специальное расширение pcxml, и находятся на сервере. Ниже на рисунке представлен пример шаблона простейшего линейного графика в XY координатах.
Рис. 14. Пример шаблона графика Для построения таких шаблонов в состав полного решения Corda PopChart входит специальный инструмент Corda Builder. С помощью этой программы можно создавать абсолютно любые шаблоны, однако, в состав Oracle BI EE он не входит, поэтому редактировать шаблоны приходится вручную по документации. Вторым шагом необходимо поместить на web-страницу код с запросом к серверу на построение графика. В зависимости от того, какие технологии поддерживает web-сервер (сервер приложений), надо сделать выбор одной подготовить сервер к ее использованию. Поскольку JavaScript поддерживается практически всеми браузерами и от web-сервера не требуется установки каких-либо специальных сервисов, я приведу пример кода именно на нем:
Более подробно можно почитать документацию {BI_HOME}/corda50/docs/index.html. Выше в статье я описывал работу со стилями и скинами. Я упомянул, что внутри папок со стилями есть XML файлы. Так вот именно эти файлы и описывают те графики и диаграммы, которые можно использовать в системе. Следует отметить, что ресурсные файлы для графиков настраиваются только в стилях. В состав стиля входят следующие папки, которые описывают типы и свойства графиков:
Разработчики могут настраивать шаблоны pcxml сколь угодно долго. PopChart позволяет делать графики любой сложности, его возможности, практически, неограниченны. Более подробно можно посмотреть на сайте www.corda.com. Ниже я приведу 2 примера. Пример 1. Настройка подписи для значений графика. Если посмотреть все файлы pcxml, то в каждом файле, независимо от того, какой тип графика там описывается, есть свойство DataLabels . Оно описывает свойства шрифта, цвет и непосредственно само значение, которое будет появляться, когда мы наводим мышку на конкретные точки графика. То, что будет появляться, определяет строка FormatString . Ниже я приведу вырезку из документации, в которой описано, что можно использовать в качестве вывода (в скобках указаны типы графиков, для которых можно использовать):
Пример 2. Новый тип графика - линейный график с временной ось и двумя осями Y. В последнем релизе Oracle Business Intelligence Enterprise Edition 10.1.3.4 появился новый тип графиков - линейный график с временной осью. Это очень удобный график, когда нам надо отображать данные временных рядов. Ось абсцисс ( x ) представляет собой ось времени с различным масштабом, а ось ординат ( y ) значения показателей. Такие графики очень часто используют финансовые институты для технического анализа. Однако часто бывает необходимо наложить на одну временную ось показатели различной природы или принципиального разного масштаба. Идеальным решениям является временный график с двумя осями ординат ( y ). К сожалению, в Oracle такого типа графика нет. Ниже я покажу, как добавить такой график в систему. Построение нового типа графика я делал на основе существующих шаблонов линейного графика с временной осью. Файл графика называется linetime.cxml, шаблон PopChart - timeline.pcxml. На основе этих файлов сделано два новых файла limetime2y.cxml и timeline2y.pcxml, на рисунках ниже представлено их содержимое.
Рис. 17. Файл linetime2y.cxml
Файл linetime2y.cxml необходимо скопировать в следующие ресурсные папки:
Файл timeline2y.pcxml необходимо скопировать в следующие ресурсные папки:
Поскольку для вновь созданного графика, для названий мы использовали свои собственные коды (kmsgChartTime2YSeries, kmsgLine1YSeries, kmsgLine2YSeries), их необходимо также настроить через ресурсные файлы. Создаем файл linetime.xml и копируем его в папку{BI_HOME}/web/msgdb/customMessages. Содержимое файла linetime.xml указано на рисунке ниже (использован английский язык для обозначений, чтобы мы не пугать читателей кодировкой utf-8 для русских букв):
Рис. 19. Файл linetime.xml Для тестирования будем использовать демонстрационную схему SampleSales . Запускаем Ответы ( Answers ) и создаем следующий отчет:
Рис. 20. Отчет Переходим на закладку Результаты ( Results ) и выбираем в качестве представления: Диаграмма ( Chart ). Открываем выбор типа диаграммы и НЕВЕРОЯТНО! Мы видим там новый тип диаграммы, который мы только что создали:
Рис. 21. Новый тип диаграммы Выбираем его и настраиваем шаблон следующим образом:
Рис. 22. Шаблон диаграммы Новый тип графика, который мы создали, имеет одну важную особенность. Оси серий показателей (или просто показателей) при отображении на графике будут чередоваться, то есть значения первого показателя будут отображаться на левой оси, второй - на правой, третий - опять на левой и т.д. Выбор осей в шаблоне не влияет на ось, на которой будут отображаться значения показателей, а влияет на подписи, оформление и т.д. То есть при создании отчетов, надо учитывать, что порядок показателей должен четко соответствовать схеме: левая ось - правая ось - левая ось - правая ось и т.д. Установка галочек в шаблоне диаграммы, позволяет логически объединять серии (показатели) в одну группу - показателей левой и правой оси. Следует отметить, что мы получаем полную поддержку графиков с двумя осями. Так, например, если открыть свойства осей, мы увидим и левую и правую ось, можем поменять масштаб осей и метки: Рис. 23. Свойства осей Итак, в результате мы получим следующий график: Рис. 24. Временной график с 2 осями
Заключение Отличительной особенностью платформы Oracle Business Intelligence Enterprise Edition является ее открытость и доступность для изменений. Весь интерфейс системы и практически весь функционал реализован в виде ресурсных XML-файлов, стилей CSS, картинок, HTML и JavaScript кода, причем все можно править. Хотите изменить внешний вид системы - пожалуйста, хотите добавить новый тип графиков - пожалуйста, хотите изменить интерфейс - без проблем. Такая архитектура позволяет неограниченно дорабатывать BI-решения под конкретные нужды заказчиков, реализуя самые изощренные требования. Это, действительно, очень сильный козырь в борьбе с решениями конкурентов. По моему мнению, BI-платформа - это не просто набор эффективных компонентов, решающих определенные задачи, а полноценный "framework" для создания законченных, неповторимых BI-приложений, которые имеют как уникальное наполнение, так и уникальный функционал. По моему опыту, задач, которые невозможно решить на основе Oracle Business Intelligence Enterprise Edition практически нет. Проблема только в том, чтобы найти изящное и эффективное решение. Главное надо сделать для себя вывод: возможно все! |