Usługi sieciowe OGC – podstawa udostępniania informacji przestrzennej w społeczeństwie informacyjnym

Usługi sieciowe OGC – podstawa udostępniania informacji przestrzennej w społeczeństwie informacyjnym

,,Społeczeństwo informacyjne to społeczeństwo charakteryzujące się przygotowaniem i zdolnością do użytkowania systemów informatycznych, skomputeryzowane i wykorzystujące usługi telekomunikacji do przesyłania i zdalnego przetwarzania informacji” (I Kongres Informatyki Polskiej, 1994, [1KIP1994]). Do powstania społeczeństwa informacyjnego przyczyniła się rosnąca liczba informacji w otaczającym nas świecie. Informacje traktowane jako szczególne dobro niematerialne stały się kluczowym elementem wszelkiej działalności, a ich ogromne ilości przyczyniły się do szybkiego rozwoju technologii teleinformatycznych. Pojawienie się Internetu i telefonii komórkowej umożliwiło szybsze i prostsze komunikowanie się, niezależnie od tego, gdzie w danej chwili jesteśmy. W związku z tym coraz mniej istotne w porozumiewaniu się i przekazywaniu wiedzy są czynniki takie, jak odległość.

Internet stał się efektywnym narzędziem udostępniania danych przestrzennych, głównie za pomocą usług sieciowych (ang. Web Services), będących komponentami programowymi, dostarczającymi określonej funkcjonalności, niezależnymi od platformy i implementacji. Ich zadaniem jest umożliwienie aplikacjom wymiany danych, a także wykorzystanie możliwości innych aplikacji, niezależnie od tego, jak zostały zbudowane, w jakim systemie operacyjnym działają oraz za pomocą jakich urządzeń uzyskuje się do nich dostęp. Wymiana danych powinna się odbywać przy wykorzystaniu uniwersalnego języka internetowej wymiany danych – XML. Pojęcie usługi sieciowej ma swoje źródła i analogie w świecie rzeczywistym. Usługa jest działaniem podejmowanym w celu zaspokojenia określonej potrzeby (lub potrzeb) klienta i realizowana z udziałem klienta. W świecie rzeczywistym idziemy do konkretnego zakładu usługowego i prosimy o wykonanie usługi. W świecie informatycznych nasze potrzeby realizowane są przez serwery usług, które czekają na sprecyzowanie i przekazanie naszych potrzeb (operacji wraz z ich parametrami).

Od chaotycznych rozwiązań do usług opartych na standardach

Początkowo udostępnianie danych przestrzennych odbywało się za pośrednictwem aplikacji sieciowych lub witryn internetowych, opracowywanych przez różne firmy komercyjne, organizacje
i instytucje. Rozwiązania te cechowała bardzo duża różnorodność. Brak było ogólnie przyjętych standardów, które mogłyby regulować ich funkcjonalność i zapewniać interoperacyjność, która jest istotna z punktu widzenia dalszego wykorzystywania danych przestrzennych. Powstające rozwiązania nie współpracowały ze sobą, co uniemożliwiało wymianę informacji pomiędzy nimi. Problemy w dużej mierze zostały rozwiązane dzięki opracowaniu standardów, będących wynikiem prac organizacji takich, jak OGC (ang. The Open Geospatial Consortium, Inc.). Specyfikacje techniczne OGC określa się mianem standardów w rozumieniu standardów typu de facto, które stosowane są ze względu na ogromną popularność i otwartość. Jasno sprecyzowane interfejsy usług, czyli pewne nazwane zbiory operacji możliwych do wykonania na usłudze, a także formaty wymiany danych bazujące na popularnych i powszechnie stosowanych standardach sprawiają, że ich implementacja w aplikacjach pochodzących od różnych dostawców, organizacji czy członków społeczności open source przyczynia się do zapewnienia interoperacyjności rozwiązań i łatwości korzystania z danych przestrzennych.

Usługi sieciowe – ważny komponent w budowie INSPIRE

Jednym z głównych celów budowanej obecnie Europejskiej Infrastruktury Informacji Przestrzennej jest umożliwienie i ułatwienie korzystania z danych przestrzennych na różnych poziomach organów publicznych w Unii Europejskiej. To właśnie usługi sieciowe, będące, obok danych przestrzennych i metadanych, trzecim istotnym komponentem INSPIRE, mają służyć lepszej wymianie geoinformacji zarówno w obrębie danego kraju, jak i między krajami członkowskimi Unii Europejskiej. Tworzone zgodnie z INSPIRE usługi sieciowe powinny umożliwiać wyszukiwanie, przetwarzanie, przeglądanie i pobieranie danych przestrzennych. Dla zapewnienia kompatybilności i funkcjonalności takich usług na szczeblu wspólnotowym należy określić specyfikacje techniczne i minimalne kryteria wydajności w odniesieniu do tych usług. Wymogi dotyczące tworzenia i utrzymywania usług sieciowych INSPIRE regulują Rozporządzenie Komisji (WE) NR 976/2009 z dnia 19 października 2009 roku w sprawie wykonania dyrektywy 2007/2/WE Parlamentu Europejskiego i Rady w zakresie usług sieciowych (wyszukiwania i przeglądania) oraz Rozporządzenie Komisji (UE) NR 1088/2010 z dnia 23 listopada 2010 roku zmieniające rozporządzenie (WE) nr 976/2009 w zakresie usług pobierania i usług przekształcania. Natomiast aspekty techniczne działania usług INSPIRE określają dokumenty będące wytycznymi technicznymi dla każdej z usług, które bazują na wspomnianych standardach usług sieciowych OGC.
Dostrzegając ogromną rolę usług OGC w budowaniu infrastruktury informacji przestrzennej, nie sposób przejść obok nich obojętnie i nie przyjrzeć się im bliżej. Zwłaszcza, że zazwyczaj korzystamy z nich przy pomocy różnego rodzaju aplikacji klienckich (geoportali, aplikacji typu Desktop). Widzimy usługi poprzez graficzny interfejs aplikacji posiadającej zdolność do komunikacji z usługami zgodnie z określonymi protokołami oraz interfejsami usług. Aplikacje te ukrywają przed nami całą złożoność interfejsu samych usług. Ale czy wiemy tak naprawdę, jakie możliwości dają nam te usługi? Jak możemy z nich skorzystać, dysponując tylko adresem określonej usługi i przeglądarką internetową? Jak pozyskać i odczytać potrzebne informacje? Warto zapoznać się z poszczególnymi specyfikacjami usług, w których zdefiniowane są mechanizmy ich działania.

Usługi sieciowe OGC

Usługi sieciowe OGC bazują na modelu klient–serwer, w którym serwer pełni funkcję dostawcy usługi, natomiast klient jest jej konsumentem. Komunikacja z serwerem odbywa się przy pomocy protokołu HTTP, który przenosi zapytanie klienta. Zapytanie może być wysyłane metodą GET lub POST. Najczęściej metoda GET jest obligatoryjna, a POST opcjonalna. Metoda GET z kodowaniem KVP (ang. Key Value Pair) polega na umieszczeniu w adresie URL ciągu uporządkowanych par parametr=wartość. Oznacza to, że parametry usługi pojawiają się w linii z adresem usługi po znaku „?”, w postaci par elementów połączonych znakiem „=”, które są rozdzielone znakami „&”.

Na przykład: http://hostname:port/path?parametr1=wartość&parametr2=wartość&parametr3=wartość

Metoda POST do przesyłania zapytania wykorzystuje plik XML, w którym definiowane są określone parametry i ich wartości. Specyfikacje usług sieciowych OGC określają rodzaje operacji możliwych do wykonania na usłudze wraz z parametrami, które pozwalają uszczegółowić nasze zapytanie. Mówią także, która z metod wysyłania zapytania jest obligatoryjna dla danej operacji usługi. Warto tutaj także podkreślić, że niezależnie od użytej metody, odpowiedzi na wysłane zapytania są takie same dla obu.
Odpowiedzią serwera bywa najczęściej dokument bazujący na standardzie XML, zawierający dane bądź metadane, na które zgłaszaliśmy do serwera zapotrzebowanie. Dla usług sieciowych OGC nie jest istotne, jaki język programowania został użyty ani w jakim systemie i na jakim sprzęcie dane zostały utworzone i udostępnione. Z punktu widzenia samych usług istotne jest, aby były one udostępniane w sieci zgodnie z określoną dla danej usługi specyfikacją, która określa sposoby tworzenia zapytań o informację (żądań), sposoby tworzenia odpowiedzi na żądanie, a także protokoły do wymiany żądań i odpowiedzi.

Bazową specyfikacją dla wszystkich usług sieciowych OGC jest „OGC Web Services Common Specification”. Dokument ten zawiera opis interfejsu usług sieciowych, który jest wspólny dla wszystkich usług sieciowych zdefiniowanych przez OGC. Funkcjonalności poszczególnych usług regulowane są także w odrębnych specyfikacjach.

Usługa WMS (ang. Web Map Service)

Dokumentem regulującym sposób działania tej usługi jest „OpenGIS® Web Map Server Implementation Specification”, natomiast najczęściej stosowaną wersją usługi jest 1.3.0. Podstawowe zadanie usługi WMS polega na prezentacji danych przestrzennych w postaci mapy. Specyfikacja definiuje mapę jako pewną interpretację (obraz) informacji geograficznej, która zazwyczaj zwracana jest w formacie rastrowym, rzadziej w formacie wektorowym. Mapa sama w sobie to tylko obraz danych. Format rastrowy jest jednym ze standardowych formatów używanych do przechowywania obrazów (np. GIF , PNG , JPEG). Rekomendowane są formaty obsługujące przezroczystość, dzięki czemu możliwe staje się tworzenie map przez składanie kolejnych warstw. Format wektorowy może być reprezentowany w postaci SVG (ang. Scalable Vector Graphics) lub WebCGM (ang. Web Computer Graphics Metafile).

Operacją możliwą do wykonania na usłudze WMS jest m.in. GetCapabilities. Pozwala ona na pozyskanie metadanych usługi. Wynik wykonania tej operacji stanowi dokument XML, opisujący usługę oraz zakres udostępnianych przez nią danych: warstwy tematyczne i ich zasięg, a także dostępne style prezentacji warstw, z których można stworzyć pożądaną mapę. Inną operacją jest GetMap, pozwalająca na wyświetlenie mapy o określonych przez użytkownika parametrach, takich jak: pożądane warstwy, układ odniesienia, obszar zainteresowania, styl wyświetlania warstw, format i rozmiar zwracanej mapy. Kolejna operacja – GetFeatureInfo – pozwala na pozyskanie informacji o szczególnym punkcie na mapie, której zażądał użytkownik.

Typowym scenariuszem użycia usługi WMS jest wysłanie zapytania GetCapabilities, pozyskanie odpowiedzi i wydobycie z niej informacji niezbędnych do zbudowania kolejnego zapytania GetMap, które pozwoli wyświetlić mapę z żądanymi przez nas warstwami. Mając mapę, można wybrać na niej punkt, o którym chcemy zdobyć więcej informacji, i przesłać zapytanie GetFeatureInfo, które pozwoli pozyskać interesujące nas dane.

Rys. 1. Przykładowe zapytanie GetMap wraz z przesłanym przez serwer obrazem mapy.

Rys. 1. Przykładowe zapytanie GetMap wraz z przesłanym przez serwer obrazem mapy.

Usługa WFS (ang. Web Feature Service)

Podstawowa różnica pomiędzy WFS i WMS polega na tym, że WFS dostarcza danych geoprzestrzennych w postaci źródłowej, podczas gdy WMS oferuje dane przetworzone, prezentowane w postaci mapy. Usługa WFS umożliwia bezpośredni dostęp do danych przestrzennych, które zazwyczaj kodowane są w formacie GML (ang. Geography Markup Language). Użytkownik, który pozyska plik GML z interesującymi go danymi, może lokalnie nimi manipulować.

Najnowszą wersję usługi stanowi wersja 2.0. Dokumentem regulującym sposób działania usługi w tej wersji jest OpenGIS Web Feature Service 2.0 Interface Standard. Wspomniany standard określa 11 operacji możliwych na usłudze WFS. Operacje te służą wyszukiwaniu, blokowaniu, transakcji i pozwalają na składanie zapytań i zarządzanie sparametryzowanymi zapytaniami, gromadzonymi na serwerze. Operacje służące wyszukiwaniu umożliwiają „odpytanie” usługi o jej możliwości, czyli o metadane usługi (GetCapabilities), a także pozwalają na pozyskanie schematu aplikacyjnego, który definiuje oferowane przez usługę typy obiektów (DescribeFeatureTypes). Operacje zapytań pozwalają pozyskać określone przez użytkownika obiekty (GetFeature) lub wartości konkretnej właściwości obiektu – atrybutu (GetPropertyValue). Operacja blokująca (LockFeature) zapewnia spójność danych podczas wykonywania operacji transakcyjnych poprzez umożliwienie założenia długoterminowej blokady na obiekty. Operacje transakcji (Transaction) pozwalają na zmianę zasobu oferowanego w usłudze przez usuwanie, wstawianie i modyfikowanie określonych obiektów. Operacje na gromadzonych na serwerze zapytaniach umożliwiają użytkownikom tworzenie sparametryzowanych zapytań (CreateStoredQuery), które gromadzone będą na serwerze, a także pozwalają na pozyskanie listy zgromadzonych już zapytań (ListStoredQueries) i otrzymanie szczegółowych informacji o każdym z zapytań oferowanych przez serwer (DescribeStoredQueries). Dają też możliwość usunięcia zapytania o określonym id (DropStoredQueries). Należy tutaj podkreślić, że nie wszystkie wymienione operacje muszą być obligatoryjnie spełniane przez serwer WFS.

Typowym scenariuszem użycia usługi WFS jest wysłanie zapytania GetCapabilities, w wyniku którego otrzymamy metadane usługi, dostarczające informacji o samej usłudze i operacjach możliwych na usłudze, a także informacje o typach obiektów przez nią publikowanych. Mając dane o tym, jakie typy obiektów publikowane są w ramach usługi, możemy w dalszej kolejności wysłać zapytanie o schemat definiujący typ lub typy danych, który wskazuje, jak kodowane są dane wyjściowe w odpowiedziach na żądanie GetFeature. Zapytaniem, które pozwoli nam pozyskać wspomniane informacje, jest DescribeFeatureType. Posiadając informacje o typach obiektów i ich schemacie, możemy w dalszej kolejności złożyć zapytanie GetFeature, pozwalające na zwrócenie obiektów w postaci pliku GML. Zapytanie może dotyczyć całej listy obiektów bądź tylko tych wybranych. Możemy je uszczegółowić poprzez określenie prostokąta ograniczającego, filtrów lub wskazanie maksymalnej liczby zwracanych obiektów.

Rys. 2. Przykładowe zapytanie GetFeature wraz z przesłanym przez serwer, fragmentem danych wektorowych zakodowanych w GML.

Rys. 2. Przykładowe zapytanie GetFeature wraz z przesłanym przez serwer, fragmentem danych wektorowych zakodowanych w GML.

Usługa CSW (ang. Catalogue Service for Web)

Usługa CSW, nazywana usługą katalogową, umożliwia publikowanie i wyszukiwanie informacji (metadanych) opisujących zbiory danych, usługi i powiązanych z nimi obiektów. Metadane
w katalogach reprezentują charakterystykę zasobów, które mogą być wyszukiwane i prezentowane do oceny i dalszego przetwarzania przez użytkowników i oprogramowanie. Usługi katalogowe są konieczne w celu umożliwienia wyszukiwania i powiązania zarejestrowanych zasobów informacji. Dokumentem stanowiącym podstawę działania tej usługi jest OpenGIS® Catalogue Services Specification w wersji 2.0.2, który definiuje model informacyjny dla usług katalogowych oraz bazowy interfejs z operacjami umożliwiającymi odkrywanie, przeglądanie i pozyskiwanie metadanych o danych, usługach i innych zasobach geoprzestrzennych. Ze względu na stosowanie różnych standardów i profili metadanych, implementacja konkretnej usługi katalogowej bazuje na określonym profilu metadanych oraz profilu usługi. Dla potrzeb opisu zbiorów danych i usług powszechnie wykorzystywanym standardem jest ISO 19115. Aby umożliwić wyszukiwanie elementów metadanych bazujących na standardzie ISO 19115, stosuje się profil aplikacyjny ISO zdefiniowany w dokumencie OpenGIS® Catalogue Services Specification 2.0.2 – ISO Metadata Application Profile. Możliwe operacje do wykonania na usłudze to:

GetCapabilities – zwracająca informacje o możliwościach usługi katalogowej,
DescribeRecord – pozwalająca na odkrywanie elementów modelu informacyjnego wspieranego przez usługę katalogową,
GetDomain – umożliwiająca pozyskanie informacji o zakresie wartości elementu rekordu metadanych lub parametru żądania,
GetRecords – służąca do wyszukiwania i pobierania informacji dostępnych w usłudze z możliwością określenia obiektów zainteresowania i filtracją rezultatów,
GetRecordById – pozwalająca na pobranie zawartości rekordu danych o podanym identyfikatorze,
Transaction – umożliwiająca modyfikowanie zawartości katalogu poprzez wstawianie, aktualizację lub usuwanie rekordów,
Harvest – pozwalająca na zasilenie katalogu danymi w trybie danobrania pochodzącymi z innych katalogów.

Typowym scenariuszem zastosowania tej usługi jest odpytanie o jej metadane, czyli zadanie zapytania GetCapabilities, na którego podstawie zostanie zwrócona odpowiedź zawierająca informacje o usłudze katalogowej i obsługiwanych przez nią operacjach, a także obsługiwanych elementach metadanych, po których może się odbywać wyszukiwanie. Mając takie informacje, możemy zadać zapytanie GetRecords, w którym określimy szczegółowe kryteria wyszukiwania. Będą nimi elementy metadanych i ich konkretne wartości. Wynikiem wysłanego zapytania stanie się plik metadanych, który spełnia określone przez nas kryteria.

Podsumowanie

Opisana funkcjonalność usług stanowi jedynie część możliwości, z jakich warto skorzystać, aby móc przeglądać, wyszukiwać i pobierać dane przestrzenne, a także metadane. Szeroki wachlarz operacji i parametrów możliwych do ustawienia sprawia, że są one doskonałym sposobem, by dotrzeć do danych przestrzennych, niezależnie od tego, gdzie się w danym momencie znajdujemy.

Czy zainteresował Cię ten materiał?