Web Feature Service (WFS)

De la Wikipedia, enciclopedia liberă
Sari la navigare Sari la căutare

În informatică, standardul de interfață Open Geospatial Consortium Web Feature Service (WFS) oferă o interfață care permite solicitările de date geografice pe web utilizând apeluri independente de platformă. Ne putem gândi la caracteristicile geografice ca la „codul sursă” din spatele unei hărți, în timp ce interfața WMS sau portalurile de cartografiere esalonata online precum Google Maps returnează doar o imagine, pe care utilizatorii finali nu o pot edita sau analiza spațial. GML bazat pe XML furnizează codificarea implicită a sarcinii utile pentru transportul caracteristicilor geografice, dar alte formate, cum ar fi shapefile, pot servi și pentru transport. La începutul anului 2006, membrii OGC au aprobat profilul OpenGIS GML Simple Features Profile.[1] Acest profil este conceput atât pentru a crește interoperabilitatea între serverele WFS, cât și pentru a îmbunătăți ușurința implementării standardului WFS.

Membrii OGC definesc si mentin specificatiile WFS. Există numeroase implementări comerciale și open-source ale standardului de interfață WFS, inclusiv implementările de referință open-source GeoServer și deegree. Pagina Produselor de implementare OGC[2] oferă o listă cuprinzătoare a implementărilor WFS.

Prezentare generală[modificare | modificare sursă]

Specificația WFS definește interfețele pentru descrierea operațiunilor de manipulare a datelor ale caracteristicilor geografice. Operațiile de manipulare a datelor includ capacitatea de a:

  • obțineți sau interogați caracteristici bazate pe constrângeri spațiale și non-spațiale
  • creați o nouă instanță
  • ștergeți o instanță
  • actualizați o instanță

Serviciul de bază pentru funcții web permite interogarea și recuperarea caracteristicilor. Un serviciu tranzacțional de funcții web (WFS-T) permite crearea, ștergerea și actualizarea caracteristicilor.

Un WFS descrie operațiunile de descoperire, interogare sau transformare a datelor. Clientul generează cererea și o postează pe un server de caracteristici web utilizând HTTP. Serverul de caracteristici web execută cererea. Specificația WFS folosește HTTP ca platformă de calcul distribuită, deși aceasta nu este o cerință dificilă.

Există două codificări definite pentru operațiile WFS:

  • XML (compatibil cu HTTP POST sau SOAP)
  • Perechi cheie/valoare (codate în șiruri de interogare HTTP GET, pentru a efectua apeluri de procedură la distanță)[3]

În taxonomia serviciilor web, WFS este cel mai bine clasificat ca un serviciu de tip RPC non-RESTful.

Modele de comunicare[modificare | modificare sursă]

Specificațiile WFS Web Feature Services sau Web Feature Server acceptă două modele de comunicare:

  • Răspuns la cerere fără asteptare
  • Pub/Sub
Un sistem de mesagerie în care clienții adresează mesaje către un anumit nod dintr-o ierarhie de conținut, numit subiect. Editorii și abonații sunt, în general, anonimi și pot publica sau abona dinamic la ierarhia conținutului. Sistemul se ocupă de distribuirea mesajelor care sosesc de la mai mulți editori ai unui nod către abonații multipli. Mesajele nu sunt, în general, persistente și vor fi primite doar de abonații care ascultă în momentul trimiterii mesajului. Un caz special cunoscut sub numele de „abonament durabil” permite abonaților să primească mesaje trimise în timp ce abonații nu sunt activi. (Sursă: Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle)

Serviciul de notificare web (WNS) este una dintre specificațiile de implementare pentru modelul Pub/Sub. Indiferent de model, formatul URL este utilizat și specificat în specificația WFS. În acest moment nu există implementări standard deschise ale WNS-urilor. Furnizorii intenționează să lanseze implementări odată ce standardul a fost ratificat.

Date[modificare | modificare sursă]

Datele transmise între un server de caracteristici web și un client sunt codificate cu Geographic Markup Language (GML), un dialect XML care poate fi utilizat pentru modelarea caracteristicilor geografice.

Versiunea 1.0.0 a specificației WFS necesită utilizarea versiunii GML 2.1.2, în timp ce versiunea 1.1.0 a specificației WFS necesită utilizarea versiunii GML 3.1.1. Pentru ambele versiuni ale specificației WFS, poate fi definit și un număr arbitrar de alte codificări, în plus față de formatul GML 2.1.2 sau 3.1.1 necesar (pentru 1.0.0 și respectiv 1.1.0).

GML 2.1.2 conține suport de codificare pentru „primitive” geometrice de bază: puncte, linii, poligoane etc.

GML 3.1.1 conține suport de codificare pentru reprezentări geometrice mai avansate: curbe, suprafețe, dimensiuni multiple (timp, elevație, imagini cu mai multe benzi). În plus, GML 3.1.1 include suport de codificare pentru seturi de date integrate topologic.

Interfețe publice[modificare | modificare sursă]

Interfețe statice[modificare | modificare sursă]

Modelul de interfață statică pentru modelul OGC Web Service apare în figura de mai jos. Operațiunile de tranzacție și funcție de blocare sunt, de asemenea, opționale.

Când scrieți un WFS, trebuie să implementați următoarele operații:

  • GetCapabilities - aceasta interogă serviciul WFS pentru a determina opțiunile disponibile.
  • DescribeFeatureType - aceasta recuperează schema XML pentru a permite clientului WFS să analizeze seturile de rezultate.
  • GetFeature - aceasta efectuează interogarea reală - parametrii cum ar fi caseta de delimitare și orice alte filtre ar trebui să fie transmise, după caz, iar serviciul WFS returnează apoi un set de rezultate GML care conține geometrie completă și atribute ale caracteristicii.

Actualizări dinamice ale interfeței[modificare | modificare sursă]

Clientul primește actualizări prin unul dintre cele două mecanisme:

  • Notificare: recomandată, dar nu obligatorie. Depinde de disponibilitatea unei implementări WNS.
  • Interogare: utilizați această metodă dacă nu este disponibilă o implementare WNS.

Model de notificare web cu interfață dinamică WFS

Acest model utilizează serviciul de notificare web OGC pentru a trimite notificări de actualizare clienților înregistrați.

Referințe[modificare | modificare sursă]

  1. ^ http://portal.opengeospatial.org/files/?artifact_id=15201
  2. ^ „Implementations by Specification | OGC”. www.opengeospatial.org. 
  3. ^ http://portal.opengeospatial.org/files/?artifact_id=36263&format=pdf

Vezi și[modificare | modificare sursă]

Legături externe[modificare | modificare sursă]