Využití protokolu XMPP pro předávání geografických informací v reálném čase Michal Šeliga T-MAPY spol. s r.o. Špitálská 150, Hradec Králové
[email protected]
Vladimír Maršík T-MAPY spol. s r.o. Špitálská 150, Hradec Králové
[email protected]
Pavel Janečka Univerzita Hradec Králové Fakulta informatiky a managementu – KIKM Hradecká 1249/6, Hradec Králové
[email protected] Abstrakt: Při řešení krizových situací a živelných pohrom může být rychlost výměny geograficky orientovaných dat životně důležitá. Současné GIS systémy přesto neumožňují efektivní sdílení podkladových změn. Na základě analýzy potřeb z ukázkového scénáře jsou definovány základní nástroje pro práci s mapovou kompozicí v kontextu sdílení geograficky zaměřených informací. Pomocí XEP rozšíření protokolu XMPP je pak specifikována komunikace včetně podpory pro budoucí rozšíření, které vyplynou z reálného nasazení. Klíčová slova: Geografické informační systémy, protokol XMPP, XEP rozšíření, XML Abstract: The speed of information exchange could be vitally important when dealing with emergency situations and natural disasters. Despite that, current GIS systems do not allow users to quickly and efficiently share map data. The article shows a sample scenario which demonstrates basic use cases and tools required for an efficient geographical data sharing. The communication itself is defined using XEP extensions of the XMPP protocol, including support for possible future enhancements. Keywords: Geographical information systems, XMPP protocol, XEP extensions, XML
1. Úvod Současné GIS technologie umožňují transakční přístup ke společnému datovému zdroji, není však pomocí nich možné sdílet a upravovat data v reálném čase v rámci účelově organizovaných skupin uživatelů. Takovéto skupiny se mohou formovat například při řešení krizových situací vyžadujících rychlou výměnu geografických informací, jako jsou například záplavy, sesuvy půdy a zemětřesení. Jednoduchost a rychlost komunikace mezi jednotlivými složkami integrovaného záchranného systému či mezi jednotlivými regiony je v takovýchto situacích kritická.
108
SYSTÉMOVÁ INTEGRACE 2/2013
Využití protokolu XMPP pro předávání geografických informací v reálném čase
2. Motivace Na základě ukázkového scénáře popisujícího únik vysoce hořlavé látky ze zásobníku fiktivního chemického závodu a následné evakuace přilehlých obyvatelných oblastí, byly zaznamenány kroky, u kterých se ukázala vhodnost využití komunikačního prostředku umožňujícího výměnu geografických informací v reálném čase. Scénář umožnil vydefinovat základní operace, které jsou nezbytné pro takovouto výměnu geografických informací Výběr geoprvků Přiblížení mapového pohledu na vybraný geoprvek Změna výřezu v mapovém okně Provádění schematických zákresů či uživatelské grafiky Přenášení vrstev mezi mapovými projekty
3. Protokol XMPP 1
Extensible Messaging and Presence Protocol (XMPP) vznikl jako protokol pro komunikaci v reálném čase dvou a více klientů počítačové sítě Jabber. Od počátku je protokol vystavěn pro jednoduchou rozšiřitelnost, a tak jej lze snadno využít i pro vzájemnou komunikaci heterogenních systémů a ovládání automatizovaných služeb. Komunikační síť Jabber byla vytvořena v roce 1998 Jeremiem Millerem jako reakce na uzavřenost protokolů sítí pro komunikaci v reálném čase. Od počátku byla síť navržena jako decentralizovaná, každý uživatel si mohl zřídit vlastní server, nebo využít služeb těch již existujících. Uživatelé jsou v síti identifikováni pomocí Jabber ID (JID), které má tvar uživatel@domena. Komunikace mezi uživateli probíhá tak, že je nejprve kontaktován doménový server odesílajícího uživatele a ten odešle zprávu na cílový doménový server příjemce zprávy, který jej doručí konkrétnímu klientovi. Nejedná se tedy o přímou, ale o zprostředkovanou komunikaci mezi aktéry. V roce 2004 byl protokol XMPP publikován jako RFC standard RFC 3920: Extensible Messaging and Presence Protocol (XMPP): Core [1] RFC 3921: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence [2] RFC 3922: Mapping the Extensible Messaging and Presence Protocol (XMPP) to Commong Presence and Instant Messaging (CPIM) [3] RFC 3923: End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP) [4] XMPP protokol přenáší XML elementy za účelem výměny zpráv a informací v reálném čase. Mezi základní elementy popsané v RFC 3920 patří tagy <message /> <presence /> a také tag
umožňující přenos aplikačně specifických dat. Pomocí XEP (XMPP Excension Protocols) je dále možné rozšiřovat množinu základních vlastností definovaných ve výše uvedených RFC. Bližší informace ohledně tvorby XEP lze nalézt na webových stránkách projektu XMPP [5].
1
Rozšiřitelný protokol pro posílání zpráv a zjišťování stavu
SYSTÉMOVÁ INTEGRACE 2/2013
109
Michal Šeliga, Vladimír Maršík, Pavel Janečka
4. Požadavky pro sdílení geografických informací Pomocí ukázkového scénáře byly vydefinovány základní nástroje pro práci s mapovou kompozicí a sdílení uživatelských mapových podkladů. Z nich vyplývá nutnost vzdáleného ovládání mapy, možnost zakreslování uživatelské grafiky do mapového podkladu a sdílení dat a informací nejen v textové podobě.
4.1 Nástroje pro práci s mapovou kompozicí Extent – nastavení nového viditelného výřezu mapové kompozice Center – posun mapové kompozice, tak aby definovaný bod byl ve středu definované oblasti Scale – změna nastavení měřítka mapové kompozice Select – provede výběr množiny geoprvků v rámci jednoho definovaného tématu Feature – sada metod pro správu atomických prvků geometrie mapové kompozice Alert – provedení vhodné změny extentu a měřítka tak, aby byly všechny zvolené prvky viditelné s následnou signalizací Alarm – upozornění na novou událost či změnu v datovém modelu Theme – podpora uživatelského sdílení dat a nových témat Pro korektní funkčnost je nutné, aby byla pro všechny výše uvedené nástroje zajištěna podpora různých souřadnicových systémů a jejich vzájemné transformace.
4.2 Událostní modely pro sdílení geografických dat One-to-one – Nejjednodušší forma komunikace, která je principiálně podobná běžné 2 IM komunikaci. Dva uživatelé sdílí společnou mapovou situaci s postupnou synchronizací založenou na předávání rozdílů provedených jedním z aktérů. One-to-many – Komunikační model nastává v případě, kdy má jeden z aktérů právo měnit sdílenou mapovou situaci a ostatní komunikující aktéři pouze sledují prováděné změny. Reálným příkladem může být sledování vozidel zdravotního záchranného systému v operačním středisku. Many-to-many – Pokud nastává situace, kdy více aktérů může zároveň zasahovat do mapové situace, je nutné zajistit dynamickou propagaci změn ke všem ostatním aktérům jak současně připojeným, tak těm, kteří se do komunikace nově zapojí.
4.3 Využití existujících rozšíření Standard protokolu XMPP vyzývá k využívání základních RFC specifikací a existujících XEP rozšíření před definicí nového obdobného rozšíření. Nejprve je tedy nutné ověřit, že požadovaná logika nemůže být transformována na již existující specifikaci.
2
Instant Messaging
110
SYSTÉMOVÁ INTEGRACE 2/2013
Využití protokolu XMPP pro předávání geografických informací v reálném čase
4.3.1 Požadavky na práci s mapovou kompozicí Nástroje extent, center, scale, select a alarm nemají ve specifikacích protokolu XMPP ani v jeho XEP rozšířeních odpovídající tagy, je tedy nutné provést jejich kompletní specifikaci. Pro specifikaci nástroje feature lze využít specifikaci OpenGIS Simple Feature [6], která definuje formát popisu geografických dat na základě lomových bodů, 3 případně GML [7] specifikující formát geografických dat založený na značkovacím jazyce XML.
4.3.2 Událostní modely pro sdílení geografických dat 4
XMPP specifikace definuje tag <presence />, který slouží k hromadnému doručování zpráv jednotlivcům či skupinám, jeho použití však vyžaduje součinnost všech komunikujících aktérů, proto je označen za nevhodný. Rozšíření XEP-0060 [8] specifikuje událostí model publish-subscribe a observer v kontextu XMPP protokolu s možností výměny obecných informací, lze jej tedy využít beze změn, tak jak je navržen. Jednodušší modely one-to-one a one-to-many lze řešit jako specializované případy modelu many-to-many s dodatečným nastavením příslušných oprávnění ve smyslu kardinality a směru předávání informací. Uvedené rozšíření je stále ve stavu draft, může tedy dojít k dodatečným úpravám při dopracovávání finální verze specifikace. Datum poslední úpravy (červenec 2010) a jeho implementace v existujících komunikačních klientech využívajících protokol XMPP pro výměnu zpráv naznačuje, že jej lze v praxi bez problémů využít.
4.4 Závěry analýzy Na základě výše uvedených důvodů je zřejmá nutnost definice nových rozšíření protokolu XMPP v problematice výměny geografických dat, z důvodu úplné absence požadovaných vlastností či velmi komplikované využití existujících XEP rozšíření. Na rámec základní specifikace protokolu XMPP a jeho rozšíření budou definovány nové specifikace: XEP – Map Tools – rozšíření pro práci s mapovou kompozicí. Nedefinuje způsob výměny informací, pouze specifikuje základní množinu tagů pro výměnu geografických dat. XEP – Simple remote map pointing – Specifikuje mechanizmus sdílení modelu situace nad mapovou kompozicí v kontextu dvou aktérů na základě metod definovaných v XMPP rozšířeních.
5. Návrh specifikace XEP – Map Tools Rozšíření XMPP protokolu definuje znovupoužitelné tagy pro práci s mapovou kompozicí, které budou použity pro definici budoucího komunikačního protokolu.
5.1 Extent Žádost o nastavení viditelného výřezu mapové kompozice na straně příjemce zprávy. 3 4
Geography Markup Language XML tagy jsou ve specifikaci nazývány termínem stanza
SYSTÉMOVÁ INTEGRACE 2/2013
111
Michal Šeliga, Vladimír Maršík, Pavel Janečka
<extent xmlns='urn:xmpp:gis:maptool'> <envelope crs='EPSG:102067'>
-1001251.38975244 -946832.154429738 -700821.285547146 -627309.587411641 Parametry crs – identifikátor souřadnicového systému (doporučen číselný EPSG [9] kód) lower-corner – nejmenší hodnota na souřadnicových osách X a Y upper-corner – největší hodnota na souřadnicových osách X a Y
5.2 Center Žádost o nastavení středu výřezu mapové kompozice na danou pozici beze změny měřítka na straně příjemce zprávy.
<point crs='EPSG:102067'> <pos>-741851.999217569 -1045793.23271612 Parametry crs – identifikátor souřadnicového systému (doporučen číselný EPSG kód [9]) pos – řetězec souřadnic X a Y v uvedeném souřadnicovém systému oddělených mezerou
5.3 Scale Žádost o nastavení konkrétního měřítka pro mapovou kompozici na straně příjemce zprávy. <scale xmlns='urn:xmpp:gis:maptool' value='2000' /> Parametry value – hodnota z oboru přirozených čísel definující převrácenou hodnotu měřítka (hodnota 10000 odpovídá měřítku 1:10000)
5.4 Select Žádost o nastavení výběru geo-prvků z dané vrstvy mapové kompozice na straně příjemce zprávy. Pokud v době přijetí požadavku existuje jiný výběr, měl by být nejprve zrušen a nastaven na nový. <select xmlns='urn:xmpp:gis:maptool'>
BUILDINGS 54578701 5457855
112
SYSTÉMOVÁ INTEGRACE 2/2013
Využití protokolu XMPP pro předávání geografických informací v reálném čase
Parametry layer – jednoznačný identifikátor vektorové vrstvy mapové kompozice, není-li tento element definován, bude automaticky použita standardní vrstva feature-id – identifikátor geo-prvku, který bude vybrán ve zvolené vrstvě mapové kompozice. Vícenásobný výskyt elementu je povolen a znamená, že bude vybráno více geo-prvků najednou. Pokud není geo-prvek definován, provede se zrušení aktuálního výběru
5.5 Alert Žádost o viditelné upozornění (např. blikáním) na vybraný geo-prvek pro vybranou vrstvu mapové kompozice na straně příjemce zprávy.
BUILDINGS 54578701 5457855 Parametry layer – jednoznačný identifikátor vektorové vrstvy mapové kompozice, není-li tento element definován, bude automaticky použita standardní vrstva feature-id – identifikátor geo-prvku, který bude viditelně zvýrazněn ve zvolené vrstvě mapové kompozice. Vícenásobný výskyt elementu je povolen a znamená, že bude zvýrazněno více geo-prvků najednou. Pokud není geo-prvek definován, zpráva bude zahozena
5.6 Alarm Žádost o provedení signalizace ve smyslu upozornění na událost či změnu datového modelu na straně příjemce zprávy.
<description>Alarm message Parametry type – způsob provedení upozornění, možné hodnoty: notify, message, sound description – nepovinný parametr umožňující definovat dodatečný textový popis upozornění
5.7 CreateFeature Žádost o vytvoření geo-prvku do vybrané vrstvy mapové kompozice na straně příjemce zprávy.
54578701 BUILDINGS SYSTÉMOVÁ INTEGRACE 2/2013
113
Michal Šeliga, Vladimír Maršík, Pavel Janečka
<ns:wkt crs='EPSG:102067'> POLYGON ((-741799.88 1045799.75,-741701.70 -1045803.94,-741677.96 1045871.41,-741705.42 -1045890.02,-741746.37 1045828.13))
-1045849.54,-741757.54 -1045842.09,-741675.64 -1045837.91,-741760.79
-
Parametry id – nepovinný parametr definující jednoznačný identifikátor vytvářeného geo-prvky. Pokud není definován, zajistí příjemce jeho vygenerování. Odesílatel zprávy je pak povinen hodnotu přijmout jako identifikátor nově vytvořeného geo-prvku layer – jednoznačný identifikátor vektorové vrstvy mapové kompozice, není-li tento element definován, bude automaticky použita standardní vrstva geometry – parametr obsahuje definovanou formu zápisu geometrie geo-prvku, která je specifikována použitým namespace (např. WKT dle Simple Feature v1.2 [6])
5.8 DeleteFeature Žádost o odstranění vybraného geo-prvku z dané vrstvy mapové kompozice na základě jeho identifikátoru na straně příjemce zprávy. <delete-feature xmlns='urn:xmpp:gis:maptool#edit'>
54578701 BUILDINGS Parametry id – jednoznačný identifikátor geo-prvku určeného k odstranění layer – jednoznačný identifikátor vektorové vrstvy mapové kompozice, není-li tento element definován, bude automaticky použita standardní vrstva
5.9 Zabezpečení základních operací pro výměnu geografických dat Kapitola 2 popisuje základní operace potřebné k výměně geografických informací. Na základě komunikace se složkami integrovaného záchranného systému byl vytvořen hypotetický scénář katastrofy, zahrnující i pravděpodobnou komunikaci mezi zasahujícími týmy. Ta byla dále rozčleněna dle obsahových kategorií a omezena na zprávy obsahující geograficky orientované informace. Z jejich abstrakce byly vyspecifikovány základní operace pro manipulaci s daty, které navrhovaná specifikace XEP – Map Tools pokrývá následujícím způsobem. Výběr geoprvků – tag <select /> vybírá geoprvek na požadované vrstvě mapové kompozice Přiblížení mapového pohledu na vybraný geoprvek – tagy
a umožňují upozornit aktéra komunikace na vybraný prvek, kombinací tagů pro změnu výřezu jej lze i zobrazit bez upozornění 114
SYSTÉMOVÁ INTEGRACE 2/2013
Využití protokolu XMPP pro předávání geografických informací v reálném čase
Změna výřezu v mapovém okně – tagy <extent />, a <scale /> slouží pro úpravu zobrazovaného výřezu mapové kompozice Provádění schematických zákresů či uživatelské grafiky – tagy a <deleteFeature /> umožňují dynamickou změnu mapové kompozice Přenášení vrstev mezi mapovými projekty – výměna dat je zajištěna v závislosti na vybraném událostním modelu přímo prostředky protokolu XMPP (kapitola 4.3.2)
6. Návrh specifikace XEP – Simple remote map pointing Rozšíření protokolu XMPP definuje mechanizmus sdílení situace v mapové kompozici mezi dvěma uživateli na základě prostředků definovaných v rozšíření XEP – Map tools. Jedná se o user-to-user protokol, nevyžaduje tedy žádnou specifickou podporu na straně serveru.
6.1 Stanovení podpory V případě, že komunikační klient aktéra podporuje navrhované rozšíření XEP – Simple remote map pointing, je tato skutečnost součást odpovědi na požadavek Service Discovery (disco#info) protokolu XMPP. Odpověď obsahuje tag s definicí jmenného prostoru ‘urn:xmpp:gis:remote’ a ‘urn:xmpp:gis:remote#edit’. Dále může obsahovat nepovinný jmenný prostor ‘urn:xmpp:gis:remote#capabilities‘. Požadavek na stanovení podpory Kladná odpověď na požadavek stanovení podpory
SYSTÉMOVÁ INTEGRACE 2/2013
115
Michal Šeliga, Vladimír Maršík, Pavel Janečka
6.2 Capabilities Z provedené analýzy nevyplývá reálná potřeba pro publikování dodatečných informací, ale je očekávána možná budoucí potřeba. Proto je zavedena podpora, ale dále není specifikován obsah těchto dat. Požadavek na dodatečné informace o aktéru či datech Odpověď na požadavek (neimplementováno) <error type='cancel'>
6.3 Komunikace pomocí navrhovaných XEP rozšíření Příkazy extent, center, scale, select, alert, alarm, create-feature a delete-feature vrací jako odpověď pouze informaci o úspěchu či neúspěchu vykonání požadavku. Výše uvedené příkazy jsou pak v samotné komunikaci mezi aktéry tvořeny následující šablonou. [command] Proměnné v hranatých závorkách jsou nahrazeny hodnotami v kontextu posílané zprávy. V případě úspěšného vykonání požadavku musí být odesílatel informován zkrácenou zprávou.
SYSTÉMOVÁ INTEGRACE 2/2013
Využití protokolu XMPP pro předávání geografických informací v reálném čase
id='[message-id]' to='[to-account]' type='result'> <success /> Stejně jako v případě úspěšného vykonání, musí být odesílatel informován o neúspěšném provedení. Součástí informace o neúspěšném vykonání je i chybová zpráva. [RECOMMENDED to include sender XML here] <error type='cancel'> [error-type] Chybové stavy jsou definovány v XMPP namespace ‘urn:ieft:params:xml:ns:xmppstanzas’ jako následující tagy. - neznámý či špatně formulovaný dotaz - klient aktéra nepodporuje danou operaci - klient aktéra odmítne zpracovat požadavek - požadovaný prvek nebyl nalezen (např. příkaz select) Doplňkové příkazy pro práci s mapovou kompozicí (create-feature, delete-feature) umožňující přidávání a odebírání geo-prvků rozšiřují základní možnosti výměny informací a dovolují aktérům dodatečné úpravy v kontextu samotné komunikace. Chybové stavy jsou oproti základním příkazům dále rozšířeny o následující tag. <not-acceptable> - chybně zadaná či plně chybějící povinný hodnota parametru zprávy (identifikátor nově vytvářeného geo-prvku není jedinečný)
7. Závěr Protokol XMPP je vhodným a lehce rozšiřitelným prostředkem pro výměnu zpráv nejen na komunikační síti Jabber, ale také v prostředí geograficky orientovaných aplikací. Výše uvedená specifikace rozšíření XEP Map Tools a XEP Simple Map Remoting definuje podobu vyměňovaných dat mezi aktéry komunikace. Účelově organizované skupiny, například jednotky integrovaného záchranného systému, je pak mohou využít za účelem sdílení geograficky orientovaných informací v reálném čase. Specifikace zároveň klade důraz na zachování potřebné flexibility, dostupnosti a bezpečnosti.
SYSTÉMOVÁ INTEGRACE 2/2013
117
Michal Šeliga, Vladimír Maršík, Pavel Janečka
Použité zdroje [1] JABBER SOFTWARE FOUNDATION. RFC 3920: Extensible Messaging and Presence Protocol (XMPP): Core [online]. 2004 [cit. 2012-07-23]. Dostupné z: http://www.ietf.org/rfc/rfc3920.txt [2] JABBER SOFTWARE FOUNDATION. RFC 3921: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence [online]. 2004 [cit. 2012-07-23]. Dostupné z: http://www.ietf.org/rfc/rfc3921.txt [3] JABBER SOFTWARE FOUNDATION. RFC 3922: Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM) [online]. 2004 [cit. 2012-07-23]. Dostupné z: http://www.ietf.org/rfc/rfc3922.txt [4] JABBER SOFTWARE FOUNDATION. RFC 3923: End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP) [online]. 2004 [cit. 2012-07-23]. Dostupné z: http://www.ietf.org/rfc/rfc3923.txt [5] XMPP Extensions. The XMPP Standards Foundation [online]. 2012 [cit. 2012-07-25]. Dostupné z: http://xmpp.org/xmpp-protocols/xmpp-extensions/ [6] OPEN GEOSPATIAL CONSORTIUM INC. OpenGIS Implementation Standard for Geographic Information: Simple feature [online]. 2011 [cit. 2013-01-14]. Dostupné z: http://www.opengeospatial.org/standards/sfa [7] I SO 19136:2007. Geographic information: Geography Markup Language (GML). International Organization for Standardization [online]. 2012 [cit. 2012-09-07]. Dostupné z: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm ?csnumber=32554 [8] XEP-0060: Publish-Subscribe. XMPP STANDARDS FOUNDATION [online]. 2010 [cit. 2012-07-30]. Dostupné z: http://xmpp.org/extensions/xep-0060.html [9] Spatial Reference List. Spatial Reference [online]. 2013 [cit. 2013-03-06]. Dostupné z: http://spatialreference.org/ref/epsg/
JEL: H12, M15
118
SYSTÉMOVÁ INTEGRACE 2/2013