СТАНДАРТИЗАЦІЯ ГЕОІНФОРМАЦІЙНИХ СЕРВІСІВ - А. Г. Черін

СТАНДАРТИЗАЦІЯ ГЕОІНФОРМАЦІЙНИХ СЕРВІСІВ - А. Г. Черін

Вісник геодезії та картографії. - 2009. № 4 (61). - С.34-39

Вступ та постановка завдання. Надання різноманітних інформаційних послуг перетворилось нині на один з найпоширеніших видів суспільної діяльності. Завдяки Інтернету до цієї діяльності безпосередньо або опосередковано долучилися мільйони людей, які продукують, систематизують, накопичують, надають і використовують електронні інформаційні ресурси практично всюди. До ключових компонентів сучасного інформаційного інтернет-середовища належать веб-портали як основні вузли доступу до інформаційних ресурсів, а також веб-сервіси як уніфіковані засоби надання інформаційних послуг (пошуку, перегляду, завантаження та використання інформації в Інтернет).

У сфері географічної інформації названі компоненти іменують відповідно геопорталами та геоінформаційними, або ГІС-сервісами. Прикладом можуть бути всесвітньо відомі геопортали та ГІС-сервіси MapServer1, Google Maps2, Open Street Maps3. Звичайні веб-сервіси здебільшого надають свої послуги, розміщуючись групами на одному комп’ютері. На відміну від них геоінформаційні веб-сервіси, як власне бази геопросторових даних, більш ресурсомісткі. Вони, як правило, розміщуються на кількох комп’ютерах та серверах. Взаємодія між різними геоінформаційними сервісами та розподілене виконання запитів вимагає уніфікації форматів даних, команд та протоколів взаємодії. Найпродуктивніше проблемами стандартизації географічної інформації та ГІС-сервісів займається Технічний комітет ТК 211 ISO та Open Geospatial Consortium (OGC).

Основними напрямами діяльності цих організацій є загальна стандартизація та стандартизація окремих геоінформаційних сервісів. У першому випадку розробляються механізми взаємодії між сервісами, протоколи або «мости», через які сервіси можуть взаємодіяти між собою та із зовнішніми сервісами. У рамках цього напряму розвиваються і XML-базовані мови кодування просторової інформації – GML, KML і мова розмітки стилів шарів SLD.

За єдиний протокол мережевого обміну інформацією між сервісами прийнято протокол HTTP. У ньому детально описані загальні методи кодування повідомлень. Стандартизація геоінформаційних сервісів полягає в розробці їх інтерфейсів – набору команд з точно визначеними вхідними та вихідними параметрами. Мета стандартизації полягає в забезпеченні можливості взаємодії геоінформаційних сервісів за допомогою запитів, у виписуванні відповідних протоколів передачі да них і кодування повідомлень.

Аналіз останніх досліджень та публікацій з даної теми. Є кілька проектів, що реалізують геоінформаційні сервіси за специфікаціями OGC. Всі вони надають якісь послуги. Найширше в Інтернеті представлені сервіси маніпуляції та подання просторових даних: WMS, WCS, WFS та сервіс каталогу CS. Існують комерційні проекти GeoMedia, ArcIMS, а також усім доступні – Deegree, GeoServer, Mapserver. OGC корегує зусилля міжнародної спільноти в питаннях виготовлення програмних засобів геоінформаційних сервісів з вільною ліцензією. Ознайомитися з останніми їх досягненнями можна за адресою http://www.osgeo.org/home. Там же є посилання на вихідні коди проектів та їх документацію.

На сьогодні найбільше сервісів розроблено в рамках проекту deegree [див. далі – Практична реалізація]. Загалом ситуація покращується з року в рік, що проявляється в удосконаленні та появі нових інструментів у сфері розробки веб-аплікацій, зокрема засобів програмування аплікацій типу RIA4. Застосування RIA для побудови інтерфейсу геоінформаційного сервісу робить його зручним та ефективним у використанні [4].

Про нагальність проблеми та широкий інтерес до неї розробників програмних засобів у різних сферах свідчить також постійне оновлення та зростання обсягів електронних публікацій в Інтернеті, в яких розкриваються нові аспекти й технічні деталі існуючих та нових реалізацій геоінформаційних сервісів.

Мета дослідження: скласти аналітичний огляд затверджених OGC стандартів у сфері геоінформаційних сервісів, а саме їх загальних принципів роботи, механізмів взаємодії та форматів кодування запитів; коротко охарактеризувати команди, найважливіші сервіси, виходячи з власного досвіду їх використання.

Виклад основного матеріалу та результатів дослідження. Огляд геоінформаційних сервісів розділимо на дві частини – загальні принципи роботи і принципи роботи кожного сервісу окремо. Такий підхід пропонується OGC і використовується нею в питаннях стандартизації, про що вже говорилося. Наведемо список сервісів у порядку розгляду їх у даній статті (табл. 1).


Загальні питання. Кожен геоінформаційний сервіс – це веб-аплікація, здатна на віддалі виконувати команди користувача й досягати результату. Команди від користувача надходять у вигляді спеціально закодованих повідомлень – запитів. Тому часто набір команд геоінформаційного сервісу називають мовою запитів сервісу (Service Query Language, SQL). По-іншому набір команд веб-сервісу ще називають веб-інтерфейс або просто інтерфейс. Довідатися про набір команд у будь-якому геоінформаційному сервісі, а також про їхній опис можна, виконавши запит GetCapabilities(). Таким чином, спочатку клієнт генерує запит, де вказує назву команди, тип сервісу й значення параметрів, а потім відправляє його на виконання потрібному сервісу, використовуючи протокол HTTP. Сервіс обробляє запит і повертає результат або номер помилки. Тут зазначимо, що сервіси взаємодіють згідно з протоколом http, що, без сумніву, є великим позитивом через його простоту й поширеність. Цей протокол є стандартом де-факто й підтримується всіма без винятку мережевими додатками.

Довідавшись про назву необхідної команди, а також її параметри, клієнт повинен правильно скласти запит. Існує два формати кодування запиту, які підтримують геоінформаційні сервіси. Перший формат KVP (key-value-pair) – пари “ключ-значення”. Запити KVP передаються на виконання сервісу HTTP командою GET. Тому такий спосіб передачі запиту називається KVP+GET. Другий формат – це запит, складений на мові XML. XML-запити передаються HTTP командою POST. Такий спосіб отримав назву XML+POST. Частковим і разом з тим найпоширенішим випадком XML-кодування є кодування мовою SOAP, базованої на XML. Наразі SOAP є загальноприйнятим стандартом взаємодії веб-сервісів. Нижче, як приклад, подамо порівняння двох форматів кодування запиту GetMap(). Результат видно на мал. 1.


Обидва підходи зрозумілі й прості для реалізації. Перший лаконічніший; такий запит можна вводити безпосередньо в поле адреси браузера. Але він має недоліки:

 • деякі команди, наприклад InsertFeature(), можна виконати тільки за допомогою XML+POST;

 • мережеве програмне забезпечення дуже часто не правильно кодує спеціальні символи та символи кирилиці при передачі запитів GET;

 • запити GET завжди мають обмеження на кількість символів тіла запиту.

Запити XML+POST таких недоліків не мають, але перший підхід поширений більше. Сервіси WMS, WCS, які мають прості команди, що розроблялись спеціально для KVP+GET, теж дуже поширені. Складніші сервіси, такі як CS, WFS-T, були розроблені пізніше і мають команди, обмежені XML+POST-форматом. Такі сервіси стали поширюватись недавно. Вони пропонують вищий рівень взаємодії та ширші функціональні можливості.

У наведеному вище прикладі використовувались такі параметри запиту: bbox; styles; Format; request; version; layers; width; height; srs. Ці та деякі інші параметри складають загальний набір параметрів, основні з яких наведено у табл.2. Залежно від потреби він може бути різним.


Векторний картографічний сервіс. WFS – це геоінформаційний сервіс, призначений для керування просторовими об'єктами.

Базовий векторний картографічний сервер (WFS-Base) дозволяє запитувати об'єкти та їх опис, а транзитивний (WFS-T) додатково забезпечує створення, видалення й відновлення об'єктів.

Джерелом просторових даних для WFS є просторові СУБД і набори файлів (див. мал.2). Кожен окремий просторовий набір, файл чи таблиця додатково повинні мати метаописи у форматі xsd. Це дозволяє абстрагуватися від джерела даних, полегшує адміністрування сервісу, а також безпосередньо використовується командою сервісу DescribeFeatureType(). Опис цієї та інших команд сервісу наведено у табл.3.



Растровий картографічний сервіс. WMS призначений для динамічного створення карт з наборів геопросторових даних (табл. 4). Під картою в даному випадку розуміється подання географічної інформації у вигляді цифрового зображення, у придатному для відображення на дисплеї комп'ютера форматі та розмірах. Така карта не містить саму інформацію, а є її просторовою формою. Інтерфейс WMS містить три операції (мал.3).

Джерелом даних для WMS є зовнішні та локальні WMS- та WCS-сервіси. Виконуючи команди, WMS спочатку запитує необхідні графічні дані, описані у відповідному сервісі, а потім растеризує їх та повертає результат клієнтові.


Основною командою сервісу є команда GetMap(). Вона повертає зображення карти у вказаному в запиті форматі. Формат вихідного зображення задається у формі MIME-типу через атрибут Format. Сервіс підтримує такі MIME-типи: image/gif; image/png, image/svg+xml, image/jpg, image/bmp, image/tiff. Перші три формати дозволяють змінювати прозорість зображень. Це дає змогу накладати зображення одне на одне й отримувати таким чином багатошарову карту. Для відображення шару на електронній карті описується графічний стиль у форматі SLD (Style layer description – Опис стилю шару). Використання такого механізму графічного відображення геопросторових даних забезпечує налаштування електронних карт на вимогу користувачів та інтерактивне керування картографічними зображеннями. Команди цього сервісу подано в табл. 4.


Картографічний сервіс покриттів. WCS дозволяє одержувати геопросторові дані у вигляді «покриттів». Покриття – цифрова форма розподілу в просторі географічного феномена. Таким феноменом, наприклад, є висота над рівнем моря в кожній точці земної поверхні, температура, дорожній трафік і ще багато чого іншого. Такий спосіб залишає клієнтові можливість вибору форми подання даних у зручнішому для нього вигляді.

Крім того, WCS містить механізм ефективної роботи з великими покриттями. Для цього за допомогою спеціальних інструментів такі покриття розбиваються на однакові зображення (Tile) розміром від 200×200 до 600×600 пікселів для різних рівнів деталізації. Кожний наступний рівень у чотири рази детальніший за попередній. Отриманий набір називають пірамідою растрів (мал.4). Кількість рівнів піраміди залежить від ступеня максимальної деталізації вихідного покриття й досягає в деяких випадках тридцяти. Окремі пакети містять інструменти побудови піраміди растрів. Наприклад, deеgree містить інструмент RasterTreeBuilder.