Правовая оговорка — Disclaimer

Приведенная ниже информация предназначена для обозначения общих тенденций развития программных технологий Oracle и не может быть предметом контрактных взаимоотношений. Она не является обязательством предоставить какие-либо материалы, коды, функционал и не может быть использована как основание для совершения коммерческих сделок. Разработка, выпуск и сроки предоставления того или иного функционала программных продуктов Oracle целиком остаются в компетенции Oracle.

Введение

Говорят, лучше один раз увидеть, чем сто раз услышать. Это особенно важно, если попытаться осмыслить всю сложность взаимодействия между пространственно распределенными людьми, ресурсами, программными средствами, бизнес-процессами. Веками люди полагались на карты, превращая их в удобные для понимания хранилища однозначно воспринимаемой информации. Начиная с Oracle Database 10g и Oracle Application Server и далее, в Oracle Database 11g и Fusion Middleware, была разработана платформа, наделяющая программистов мощными инструментами разработки на основе наиболее общего понимания задачи.

Любая версия СУБД Oracle Database включает в себя расширенные возможности представления пространственных данных — Oracle Locator. В свою очередь опция Oracle Spatial, разработанная для версии Enterprise, расширила функциональность Oracle Locator, дополнительно предложив встроенные возможности геокодирования, расчета оптимальных путей, топологического анализа, использования линейных относительных систем отсчета, представления точечных массивов и возможность оптимизированного хранения геопозиционированных растровых изображений. Это позволяет загрузить в СУБД Oracle любые пространственные данные, построить пространственные индексы и выполнить пространственные запросы в виде стандартных SQL-запросов.

Именно поэтому СУБД Oracle представляет собой промышленный стандарт для управления геопространственными данными. MapViewer дополняет средства управления пространственными данными, имеющиеся в составе СУБД, собственными инструментами для просмотра в Интернете пространственных данных, содержащихся в СУБД. Появились невероятные возможности анализа пространственных составляющих для любых бизнес-приложений, доступа к корпоративным данным с использованием ГИС-приложений. Так, например, за счет общей пространственной привязки (например, адреса) можно совместно визуализировать данные геодезических измерений, данные из подсистем управления транспортом и логистики, подсистем учета недвижимости и кадровых ресурсов, комплексных систем управления производством.

Разработчики различных приложений, учитывающих пространственную привязку данных, а также те, кто предоставляет предназначенные к открытой публикации данные в масштабах государства или отдельного муниципалитета, разработчики интернет-сервисов и более традиционных программных приложений легко могут интегрировать технологию MapViewer в свои разработки.

Как это может быть использовано

Наиболее часто встречающимися примерами применения описываемой технологии являются построение отчетов (например, продажи с классификацией по отдельным территориям), поиск ближайшего поставщика товаров или услуг, простой пространственный анализ (поиск объектов по их местоположению, определение объектов, попадающих в зону действия урагана и т.д.). Технологию MapViewer удобно встраивать в корпоративные программные приложения для управления активами, инвентаризации, а также для построения панелей экспресс-анализа (business intelligence dashboards). Не менее удобна эта технология при разработке web-сайтов, где используется информация о местонахождении различных объектов или осуществляется мониторинг хода выполнения проектов по территориям разного уровня.

Построение отчетов

На карте очень наглядны различного рода графы и диаграммы — такие как, например, визуализация эффективности действии по регионам, уровень заполнения складов и т.д. (рис. 1 и 2).

Рис. 1. Эффективность действий по регионам
Рис. 1. Эффективность действий по регионам
Рис. 2. Расположение складских мощностей с уровнем их заполнения
Рис. 2. Расположение складских мощностей с уровнем их заполнения

Поиск ближайшего объекта

Рис. 3 и 4 иллюстрируют использование карты как интерфейса поиска. Карта здесь не что иное как интерактивный компонент интерфейса определения критерия поиска и визуализации результатов. В первом случае пользователь осуществляет поиск всех происшествий, случившихся на заданном расстоянии от парка, выбранного как объект на карте.

Рис. 3. Происшествия на заданном расстоянии от выбранной точки
Рис. 3. Происшествия на заданном расстоянии от выбранной точки
Рис. 4. Сотрудники: суммарный отчет по месту расположения предприятий
Рис. 4. Сотрудники: суммарный отчет по месту расположения предприятий

Второй пример — построение суммарного отчета по сотрудникам тех предприятий, которые находятся не далее указанного расстояния от выбранной на карте точки.

Аналитические задачи

Случай, представленный выше (рис. 4), также является примером визуализации результатов пространственного запроса (места работы по классам и категориям в пределах двух миль от выбранной точки). В этом разделе мы приведем еще несколько подобных примеров.Так, на рис. 5 показано решение классической задачи коммивояжера применительно к выбранным точкам, которые необходимо посетить.

Рис. 5. Маршрут коммивояжера
Рис. 5. Маршрут коммивояжера
Рис. 6. Оценка состояния трубопроводов в выбранной области
Рис. 6. Оценка состояния трубопроводов в выбранной области

Рис. 6 представляет результат оценки состояния трубопроводов, находящихся в выбранной области отображения.

Следующий пример (рис. 7) демонстрирует возможность одновременной визуализации разнообразных характеристик на одной карте. Мы видим поэтажный план зала игровых автоматов с диаграммой распределения тепловых потоков, а также с отчетом по популярности отдельных автоматов и по выигры-шам/проигрышам на них.

Рис. 7. Поэтажный план, диаграмма распределения тепла и табличный отчет
Рис. 7. Поэтажный план, диаграмма распределения тепла и табличный отчет

Краткое описание функциональности

Компонент MapViewer из Fusion Middleware представляет собой Java-приложение и запускается внутри Oracle Container for J2EE (OC4J) или WebLogic Server (WLS). Когда он установлен и запущен, MapViewer перехватывает (слушает) запросы со стороны клиентских приложений: как запросы по пространственным данным, так и административные запросы (определение источника данных). Все запросы пересылаются с использованием HTTP POST и с представлением содержимого запроса в формате XML.

Мы ограничимся здесь лишь самым общим обзором возможностей технологии Oracle MapViewer. Более подробно ее особенности и функциональность представлены в документе, доступном по ссылке www.oracle.com, и в Руководстве пользователя MapViewer.

Итак, начиная с версии 10g, технология Oracle MapViewer представляет собой набор технологических модулей под общим названием Oracle Maps. В этот набор включены сервер мозаичных изображений (map tile server), сервер динамических запросов (Feature of Interest (FOI) server) и клиентское приложение (JavaScript).

Функция сервера мозаичных изображений состоит в подготовке и передаче клиентским web-приложениям сгенерированных (например, с помощью Oracle MapViewer) отдельных мозаичных изображений, находящихся в кэш-памяти. «Сшивка» в общее единое картографическое покрытие происходит автоматически на стороне клиента, увеличение быстродействия достигается в том числе и за счет кэширования заранее сгенерированных мозаичных изображений (хотя могут использоваться и изображения, генерируемые «на лету». — Прим. пер.).

Сервер динамических запросов (FOI) осуществляет генерацию динамических классов пространственных объектов, хранимых в Oracle Spatial, или отдельных пространственных объектов (точек, линий или полигонов), созданных приложением. В отличие от кэшированных мозаичных изображений, отображающих статическую составляющую карты, содержимое FOI представляет собой динамическую составляющую и отображает реальное, сиюминутное состояние данных. Карта, отображаемая клиентским приложением, представляет собой сочетание статических мозаичных изображений и динамической информации FOI.

Клиентский сервис типа JavaScript — это запускаемая внутри интернет-браузера программа, которая «заказывает» необходимые данные на упомянутых выше серверах и представляет полученные данные пользователям. Она также обеспечивает пользовательские приложения средствами интерактивного доступа к карте — такими как, например, панорамирование карты или прямой выбор объекта.

На рис. 8 приведен пример организации пользовательского интерфейса для простого приложения с использованием Oracle Maps.

Рис. 8. Пример приложения Oracle Maps
Рис. 8. Пример приложения Oracle Maps

Представленное приложение отображает на базовой карте динамическую информацию по аэропортам. Таким образом, карта состоит из двух слоев:

  • базовая карта, отображающая океан, границы округов, города, автомобильные дороги;
  • динамический слой, отображающий расположение аэропортов в виде точечных объектов (красные маркеры) на основе базовой карты.

В дополнение к этим двум слоям в левом нижнем углу отображается текущий масштаб отображения, а в верхнем правом расположена панель навигации.

Для сдвига (панорамирования) карты пользователь может использовать мышь. Когда это происходит, новые мозаичные изображения статической карты и новые динамические объекты автоматически генерируются серверами для текущей области отображения. Клиентские приложения на стороне браузера, выполненные по технологии Oracle Maps, представляют собой только HTML-страницы и страницы JavaScript, поэтому на клиентском рабочем месте не требуется установки никаких дополнительных программных компонентов. Следовательно, приложения можно создавать, применяя любые web-технологии, использующие HTM. Список таких технологий включает в себя JavaServer Pages, Java Servlets, ASP, PHP и .NET C#. С MapViewer 11g поставляется более 50 руководств, описывающих различные аспекты новой функциональности Oracle Maps.

Помимо базовой возможности высоко производительно визуализировать пространственные данные, хранящиеся в СУБД Oracle, доступны интерфейсы, которые предоставляют разработчикам еще более широкий набор инструментов MapViewer. В их числе:

  • пользовательский интерфейс для генерации мозаичных изображений. Интерфейс разработчика Oracle Maps API позволяет получать мозаичные изображения от сторонних провайдеров (например, DigtialGlobe) для отображения в приложениях с использованием MapViewer. Таким образом, базовая карта или данные дистанционного зондирования могут поступать от внешнего поставщика данных, тогда как определенная часть отображаемых данных (например, динамические слои) извлекается из СУБД;
  • поддержка пользовательских (внешних) провайдеров атрибутивной информации. Приложение MapViewer может использовать данные из внешних источников совместно с пространственными данными для обеспечения большей гибкости при построении тематических карт;
  • поддержка пользовательских провайдеров пространственных данных. Благодаря этой встроенной возможности приложения MapViewer могут использовать внешние файловые хранилища (например, SHP-файлы от ESRI) пространственных данных или отличные от технологии Oracle способы представления пространственных данных в СУБД.

В следующем разделе кратко описывается создание приложения MapViewer с использованием таких средств разработки Oracle, как JDeveloper или Application Express (APEX). Далее приведены примеры разработки с использованием представленных возможностей.

Разработка приложений MapViewer

В технологию MapViewer включены интерфейсы разработчика (API) для XML, Java и JavaScript. Это позволяет, в сочетании со стандартными средствами разработки Oracle, упростить процесс разработки web-приложений с использованием пространственной информации. Технические детали разработки с использованием Java, JavaScript, Application Express приводятся в соответствующих технических руководствах.

В свою очередь, JDeveloper 11g содержит богатый набор функциональных возможностей для экспресс-разработки приложений, известный как Application Development Framework (ADF), а также связанный с ним набор средств визуализации данных Data Visualization Tools (DVT), предоставляющий возможность визуализации данных в виде графиков, диаграмм, шкал. Для этого в ADF включены компоненты Java Server Faces (ADF Faces), одним из которых является DVT GeoMap, обеспечивающий функциональность MapViewer JavaScript API, обработку событий, частичное обновление страницы, взаимосвязь между программными компонентами, синхронизацию и иные сервисы. На рис. 9 показаны пример использования JDeveloper с применением компонента DVT GeoMap drag-and-drop и диалоговое окно, используемое на этапе разработки.

Рис. 9. Окно разработки JDeveloper 11g Create Geographic Map и набор компонентов
Рис. 9. Окно разработки JDeveloper 11g Create Geographic Map и набор компонентов

Пошаговая инструкция по применению описываемой технологии («Introduction to ADF Data Visualization Components — Graphs, Gauge, Maps, Pivot Table and Gantt») размещена на странице www.oracle.com и доступна для партнеров Oracle.

Примеры использования функционала

В этом разделе мы расскажем, каким образом в приложениях могут использоваться интерфейс JavaScript API и поддержка внешних источников данных. Технические детали содержатся в сопутствующем документе «Using MapViewer Interfaces for External Data Sources», доступном по ссылке www.oracle.com.

JavaScript API

Документация к Oracle Maps tutorial содержит около 40 примеров использования API. Этот интерфейс позволяет разрабатывать сервисы с использованием информации о местоположении объ- ектов — как, например, в приложении, копия экрана которого приведена на рис. 10. Это приложение доступно по ссылке maps.Oracle.com, а копия экрана показывает результаты поиска динамических точечных объектов, в имени которых содержится слово «airport» и которые расположены в заданной пространственной области (на рис. 10 это Южная Калифорния).

Рис. 10. Поиск аэропортов в Южной Калифорнии
Рис. 10. Поиск аэропортов в Южной Калифорнии

Если пользователь выбирает конкретный объект из списка или информация по объекту выбирается в окне данных при выборе объекта на карте, результаты поиска могут отображаться в виде всплывающих информационных окон.

Пользовательский интерфейс для генерации мозаичных изображений

Приложение MapViewer отображает пространственные данные (уличную сеть, данные дистанционного зондирования и т.д.), которые хранятся в СУБД Oracle. Иногда требуется отобразить лишь подмножество таких данных на фоне базовой карты, получаемой извне. На рис. 11 показано, как в качестве такой карты может использоваться ДДЗ высокого разрешения от DigitalGlobe.

Рис. 11. Использование высокоточных снимков DigitalGlobe в качестве базовой карты
Рис. 11. Использование высокоточных снимков DigitalGlobe в качестве базовой карты

Поддержка GeoRSS

Приложение MapViewer поддерживает использование GeoRSS (www.georss.org) и OpenGeospatial Consortitium’s (OGC) Web Feature Server (WFS 1.0), а также стандарт Web MapServer (WMS 1.3). Это позволяет пользователям подписываться на трансляцию GeoRSS и визуализировать полученные данные на карте. Рис. 12 показывает, как к карте в окрестности точки с выбранным почтовым индексом могут быть привязаны фото с сервиса Flickr, обзоры ресторанов с сервиса Yelp или статьи из Wikipedia.

Рис. 12. Визуализация информации GeoRSS
Рис. 12. Визуализация информации GeoRSS

Поддержка внешнего провайдера атрибутивных данных

Зачастую данные, которые нужно отобразить на карте, не имеют пространственной привязки и вообще не хранятся в СУБД Oracle. Тем не менее, если есть возможность увязать их с пространственными данными через какое-то общее поле (идентификатор, адрес), такие данные можно визуализировать. Приложение MapViewer использует для этого встроенный интерфейс, применяемый при разработке в средах Oracle BI platform или JDeveloper, где часто задействуются внешние источники данных. Это особенно полезно при построении приложений в среде BI, когда совместно используются интерфейсы программиста (JavaScript APIs) обеих (OBIEE, MapViewer) сред.

Технические детали совместного использования приведены в доступном для партнерской сети документе «Integrating Oracle Business Intelligence Enterprise Edition with Oracle Fusion Middleware MapViewer», описывающем четыре сценария такой интеграции:

  1. Отображение тематических карт в отчетах.
  2. Изменение уровня детализации на панелях экспресс-анализа BI за счет изменения размерности данных или масштаба просмотра карты.
  3. Автоматическая генерация подробного отчета по выбранному на карте региону.
  4. Выбор на карте соответствующего объекта, выбранного в табличной форме другого приложения.

В приведенном примере (рис. 13) приложение, разработанное в среде OBIEE Answers, отображает информацию по проектам, хранимую в табличной форме совместно с картографической информацией.

Рис. 13. Совместное использование Oracle Business Intelligence Enterprise Edition Answers и Oracle MapViewer
Рис. 13. Совместное использование Oracle Business Intelligence Enterprise Edition Answers и Oracle MapViewer

Тот же подход был использован для совместного с пространственными данными из Oracle Spatial анализа данных, которые хранятся в СУБД, отличных от Oracle (например, в Access), или отчетов, опубликованных в виде XML-документов с последующей визуализацией в MapViewer.

Заключение

Технология MapViewer предоставляет разработчикам web-приложений разнообразные средства интеграции и визуализации пространственных и атрибутивных данных. Эта технология использует базовые возможности СУБД, включенные в версию Oracle 10g (как Oracle Spatial, так и Locator) для оперирования пространственными данными. Сложность процессов построения пространственных запросов и визуализации пространственных данных скрыта от разработчиков, и они легко могут интегрироваться с технологией MapViewer. Этот подход создает огромные возможности осмысления и обработки разнородных данных для бизнес-приложений любого уровня, открывая пути совместного использования данных, собранных в разнообразных хранилищах.

Примечание переводчика

Описанная в приведенном материале технология уникальна тем, что она дает возможность разработчикам информационных систем вообще и геоинформационных в частности, отдающим предпочтение технологиям компании Oracle, решить, наконец, проблему прямой web-публикации в реальном времени пространственных и атрибутивных данных непосредственно из СУБД, без использования промежуточных преобразований данных и без применения дополнительного программного обеспечения третьих фирм.

Эта задача чрезвычайно актуальна для целого ряда информационных систем и в первую очередь для информационных систем обеспечения градостроительной деятельности (ИСОГД), где такая публикация является обязательной вследствие требований Градостроительного Кодекса. Именно поэтому группа компаний CSoft в течение последних лет выступала партнером компании Oracle в части тестирования компонентов технологии Oracle MapViewer и добилась значительных успехов в ее применении, в том числе за счет использования собственных разработок. Развернутая информация по практическим результатам использования технологии Oracle MapViewer совместно с компонентом CS UrbanView в проектах ИСОГД будет представлена в ближайших публикациях.

Перевод с английского
Александра Ставицкого
(Группа компаний CSoft)