Master SIT Settembre 2006
Web & GIS Chiara Renso
1
IINNTTEERROOPPEERRAABBIILLIITTÀÀ EE GGIISS WWEEBB SSEERRVVIICCEESS Corso Web & GIS
Master in Sistemi Informativi Territoriali
AA 2005/2006
Chiara Renso ISTI- CNR
Interoperabilità e standard OpenGIS.....................................................................................1 GIS Web Services .................................................................................................................3
XML ...................................................................................................................................5 Web Services.....................................................................................................................6 GIS Web Services .............................................................................................................9
Formato standard per i dati vettoriali: GML .........................................................................10 SVG .................................................................................................................................12
Standard OpenGIS per il web .............................................................................................16 OpenGIS - Web Map Server (WMS)................................................................................17 OpenGIS - Web Feature Server (WFS) ...........................................................................21
Interoperabilità e standard OpenGIS
Interoperabilità è un termine usato cosi spesso nell’industria GIS che ha quasi perso di significato. Immaginiamo di realizzare una applicazione che usi dati di produttori di GIS diversi, ad esempio visualizzare dati di un produttore, eseguire il plotting da un altro software, utilizzare funzionalità di analisi da un altro ancora e cosi via. O immaginiamo di dover integrare dati provenienti da diversi enti che richieda la visualizzazione dell’unione dei file e permettere le query come se fosse un unico dataset.
Tutto questo, al giorno d’oggi è ancora un sogno. Negli esempi sopra esposti ci si rende conto che la tecnologia per l’interoperabilità richiede una buona dose di armonizzazione, quindi accordi tra chi spedisce e riceve informazione. In altra parole abbiamo bisogno di standards. Diversi sistemi non saranno in grado di cooperare se non vengono definite delle interfacce standard.
Nel mondo dell’informazione digitale “standard” quindi testo, numeri, immagini, l’interoperabilità è un dato di fatto. Possiamo spedire email tra computer ed applicazioni diverse e le email sono sempre leggibili. Possiamo scambiare documenti di testo o numeri, eseguire il copia incolla da diverse applicazioni, riusciamo a usare il contenuto senza grossi problemi da qualsiasi PC anche se il dato è stato creato da applicazioni diverse.
Master SIT Settembre 2006
Web & GIS Chiara Renso
2
La storia cambia quando si tratta di dati GIS. AL momento non ci sono tipi di dato geografico ben conosciuti ed accettati senza problemi da qualsiasi software GIS.
L’informazione geografica è rappresentata in modo diverso dai diversi software, addirittura alcuni produttori di software GIS tengono privato il formato dei dati utilizzato.
In questo modo è praticamente impossibile trasferire informazione geografica tra ambienti GIS diversi, senza una opportuna ma non sempre possibile, traduzione.
Architettura di un sistema NON interoperabile
Architettura di un sistema interoperabile
Il problema dell’interoperabilità nei GIS è molto sentito ma ancora non si è arrivati ad una soluzione definitiva. Troppi interessi contrastanti dei produttori rendono difficile percorrere fino in fondo questa strada.
Client1 Client2 Client3
Server1 Server2 Server3
Client1
Server1 Server2 Server3
Client2
Master SIT Settembre 2006
Web & GIS Chiara Renso
3
Per questo motivo è nato nel 1994 l’OpenGIS Consortium (http://www.opengis.org) come un consorzio internazionale che riunisce i maggiori produttori di software GIS e istituzioni universitarie e governative con lo scopo di proporre degli standard GIS che favoriscano l'interoperabilita'. OpenGIS si prefigge lo scopo di riunire gli utenti con i produttori di tecnologie GIS per raggiungere un accordo sulla definizione tecnica di interfacce aperte che rendano possibile la cooperazione tra i sistemi. Attualmente conta 321 membri che finanziano il consorzio,.
I documenti di specifica vengono redatti dal consorzio OpenGIS secondo tre modalità. Tipicamente provengono da un meccanismo RFC, Request For Comments, cosi' come avviene per gli standard di Internet. Il consorzio propone un draft di standard, lo pubblica e poi raccoglie i commenti fino allo scadere di una deadline. Quello che ne risulta e' un documento che rispecchia le volonta' del consorzio e degli utenti che hanno sottomesso dei commenti.
Alcuni sistemi di Mapping non interoperabili
TerraServer - http://terraserver.microsoft.com MapQuest - http://www.mapquest.com EPA - http://www.epa.gov/enviro/enviromapper.html
Master SIT Settembre 2006
Web & GIS Chiara Renso
4
Un sistema web mapping interoperabile Per poter realizzare un sistema interoperabile sono necessari, come abbiamo visto, gli standards, ovvero la definizione di interfacce di comunicazione standard tra i vari sistemi. Nel seguito vedremo alcune tecnologie che permettono di rendere la applicazioni interoperabili
GIS Web Services In questa sezione vedremo la tecnologia per realizzare GIS Web Services, ovvero servizi webgis orientati alle applicazioni. Per rendere possibile la comunicazione tra applicazioni web è essenziale impiegare delle interfacce standard che permettano lo scambio di informazioni tra due applicazioni (tra due computer invece che tra computer e umani). Vedremo quindi il linguaggio XML e la sua versione geografica, GML. Poi vedremo come l’organizzazione OpenGIS – OpenGeospatial consortium abbia definito delle specifiche di comunicazione per MapServer, il Web Map Server e il Web Feature Server. Queste specifiche permettono di realizzare Mapserver
Territorio
Acqua
Confini
Web Mapping Client
Sorgente A
Sorgente B
Sorgente C
GetMap
GetMap
GetMap
Master SIT Settembre 2006
Web & GIS Chiara Renso
5
interoperabili, ovvero in grado di comunicare tra loro per scambiarsi informazione di tipo geografica.
XML XML (eXtensible Markup Language) è un linguaggio per il web nato nel 1998 come raccomandazione del W3C (consorzio di aziende che si occupa della definizione e dell’ aggiornamento della maggior parte degli standard del mondo Internet http://www.w3.org ) È un sottoinsieme di SGML (Standard Generalized Markup Language): metalinguaggio per la definizione di molteplici linguaggi particolari: i Markup Language È utilizzato per descrivere le informazioni in formato testuale, secondo una struttura gerarchica ad albero. XML non è solo una tecnologia per il Web; infatti è compatibile con qualsiasi piattaforma hardware e software. È pensato per gestire qualsiasi tipo di contenuto che possa essere descritto in forma di testo e può diventare lo standard per l’interscambio dei dati di ogni applicazione. Inoltre è open source e ben supportato da un’ampia comunità in espansione di strumenti ed esperti in questa tecnologia. XML è un linguaggio estensibile. Infatti, mentre in HTML i tag sono predefiniti dal W3C, in XML ogni utente può definire insiemi di tag “ad hoc”, cioè per un dominio specifico (detto vocabolario XML). Caratteristica principale di XML, per il Web, è che XML separa il contenuto dalla presentazione. Mentre lo scopo di HTML è descrivere l’apparenza grafica (layout) di una pagina, lo scopo di XML è quello di strutturare delle informazioni secondo la logica richiesta dall’applicazione. La visualizzazione grafica della pagina XML avviene mediante una trasformazione descritta da un foglio di stile che contiene le informazioni per la presentazione. Esempio XML:
<business-card> <persona> <titolo> Sig. </titolo> <nome> Mario </nome> <cognome> Rossi </cognome> </persona> <indirizzo>
Master SIT Settembre 2006
Web & GIS Chiara Renso
6
<strada> Via Verdi </strada> <numero-civico> 12 </numero-civico> <cap> 56100 </cap> <città> Pisa </città> </indirizzo> </business-card>
Web Services I servizi web (web services) sono applicazioni auto-contenute che forniscono funzionalità specifiche ad altre applicazioni via Internet. Le applicazioni possono accedere ai web services tramite protocollo HTTP e con formato XML senza preoccuparsi di come i servizi sono realizzati.
Master SIT Settembre 2006
Web & GIS Chiara Renso
7
Un servizio web descrive un insieme di operazioni; possiamo pensare a tali operazioni come alle funzioni messe a disposizione da una libreria condivisa, o alle classi di un package Java. Stiamo considerando, inoltre, uno scenario di applicazioni distribuite, che fruiscono del servizio attraverso una rete. La comunicazione tra il web service e le altre applicazioni avviene tramite messaggi codificati in un formato XML (tipicamente SOAP).
Il paradigma dei web services può essere quello del fornitore di energia elettrica con tutti i clienti, gli strumenti che usano quel servizio per far funzionare applicativi. In questo mondo, l’interfaccia è la spina che abbiamo a casa, che ci permette di attingere a quel servizio.
Un servizio web può essere a sua volta descritto mediante una descrizione del servizio che specifica in modo formale tutte le informazioni necessarie per la sua
Clients
Service Access Point
Fornitore di energia elettrica
Client usano il servizio tramite l’interfaccia
Master SIT Settembre 2006
Web & GIS Chiara Renso
8
invocazione: ad esempio la localizzazione, il formato dei messaggi, il protocollo di trasporto.
La descrizione dei servizi web è anch'essa basata su un apposito formato XML: WSDL (Web Services Description Language).
Una delle caratteristiche più interessanti dei web services è la possibilità di utilizzarli per comunicazioni e scambi di informazioni automatici: non interazione tra persona e applicazione (come avviene nella navigazione sul web) bensì interazione tra applicazioni. La descrizione formale e standardizzata dei servizi web, infatti, consente la ricerca e l'utilizzo dei web services senza richiedere necessariamente l'intervento umano.
Ad esempio, un agente software potrebbe essere istruito per svolgere un determinato compito utilizzando automaticamente un servizio web; altrettanto automaticamente, l'agente potrebbe interrogare un repertorio di servizi web per cercare altri servizi di cui avesse bisogno.
Master SIT Settembre 2006
Web & GIS Chiara Renso
9
GIS Web Services
I GIS web services sono web services che eseguono tasks di geoprocessing come:
o Address matching
o Proximity searches
o Routing
o Mapping
I GIS web services permettono agli sviluppatori di applicazioni di integrare funzionalità GIS nelle loro applicazioni web senza dover realizzare la funzionalità localmente.
Esempi: ESRI Arc Web Services: http://gis.esri.com/showcase/showcase.cfm http://tuxedo.esri.com/ro_weather/ <?xml version='1.0' encoding='UTF-8'?> <soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' soap:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'> <soap:Body> <ns0:findPlace xmlns:ns0='http://arcweb.esri.com/PlaceFinderSample'> <placeName xsi:type='xsd:string'>Redlands</placeName> </ns0:findPlace> </soap:Body> </soap:Envelope>
Esempio di messaggio SOAPper un servizio di findPlace findPlace è un tag al cui interno si trovano i parametri della funzione, rappresentati come tag. Il Place Finder Sample Web Service rimane in ascolto su richieste di questo tipo e ritorna una risposta che contiene informazioni sulla località.
Master SIT Settembre 2006
Web & GIS Chiara Renso
10
Alcuni Link http://www.esri.com/software/arcwebservices/index.html
http://www.geographynetwork.com/webservices/index.html
http://gisfactory.com/webservices.html
Formato standard per i dati vettoriali: GML GML (Geography Markup Language) è una versione di XML per la modellazione, lo scambio e la memorizzazione di informazioni geografiche che include proprietà spaziali e non. Esso è definito dall’Open GIS Consortium (OGC) che ha realizzato e approvato la versione 3.1 della specifica del linguaggio GML (febbraio 2004) (http://www.opengeospatial.org/standards/gml) Come il linguaggio XML, GML è testuale: per essere visualizzato deve essere trasformato in un formato grafico vettoriale come VML o SVG.
In GML 2.0 gli schemi fondamentali sono:
• Feature schema • Geometry schema • Xlink schema
Una feature geografica è una astrazione di una entità o di un fenomeno del mondo reale alla quale è associata una collocazione relativa sulla Terra. Geometry schema è usato per definire le proprietà geometriche delle features utilizzando punti, linee, poligoni… Xlink schema specifica come devono essere usati i link in GML per
implementare le associazioni fra gli oggetti GML – Esempio <CityModel xmlns:gml="http://www.opengis.net/gml" … <River> <gml:description>The river through Cambridge.</gml:description>
Master SIT Settembre 2006
Web & GIS Chiara Renso
11
<gml:name>Cam</gml:name> <gml:centerLineOf> <gml:LineString srsName="http:// url /gml/srs/epsg.xml#4326"> <gml:coord> <gml:X>0</gml:X> <gml:Y>50</gml:Y> </gml:coord> <gml:coord> <gml:X>70</gml:X> <gml:Y>60</gml:Y> </gml:coord> … </gml:LineString> </gml:centerLineOf> </River> … </CityModel> Ogni istanza di una feature è rappresentata da un elemento XML il cui nome è dato dal tipo semantico cioè una categoria del mondo reale (in questo esempio river). Il namespace indicato dal prefisso gml: indica che i corrispettivi nomi locali che lo seguono sono stati definiti negli schemi. Per validare un file GML dovrò scrivere uno schema che importa gli schemi GML e che definisce i nuovi tag utilizzati (in questo esempio CityModel, River,…). La nuova versione (3.0) estende la precedente ed è compatibile con essa. Comprende molti più schemi XML (33!) per trattare un gran numero di tipi di oggetti per la descrizione di dati geografici
• Geometria (anche 3D) • Topologia • Dati temporali • Coverages • Osservazioni • Sistemi di riferimento di coordinate e unità di misura • Supporto per i metadati
Gli schemi si possono scaricare all’indirizzo: http://www.opengeospatial.org/standards/gml GML si può usare in abbinamento a SVG per visualizzare su web dati geografici
Master SIT Settembre 2006
Web & GIS Chiara Renso
12
SVG SVG è un modo per descrivere dati grafici vettoriali per il web. La grafica vettoriale descrive la grafica in termine di linee, curve etc. SVG può essere visualizzato tramite un plug-in http://www.adobe.com/svg Esempio: <?xml version="1.0"?> <svg viewBox="0 0 300 300" width="300" height="300"> <!-- Generate a background -->
<g> <path style="fill: pink" d="M0,0 h300 v300 h-300 z"/> </g> <!-- Some shapes and colors --> <g> <circle style="fill: green; fill-opacity: 0.5" cx="150" cy="150" r="50"/> <rect style="fill: blue; stroke: white" x="50" y="50" width="100" height="100"/> <text style="fill: red; font-size: 24pt" x="25" y="250">Welcome to SVG!</text> </g> </svg>
L’ XSLT (Extensible Stylesheet Language Transformation) è un linguaggio per la trasformazione di un documento XML in un altro documento XML ed è lo strumento utilizzato anche per fornire lo stile della visualizzazione
Master SIT Settembre 2006
Web & GIS Chiara Renso
15
Applicare uno stile di visualizzazione e trasformazione in SVG
Geometry Encoding
feature=“strada”
Apply Style
Stile della strada Phayathai Road
<GML> <Line>10,10,40,45</Line> <Polygon>40,40,50,45,33,34,45,67</Polygon> </GML>
Output
Edit geo databy mouse
Trasforma i miei dati in GML!
HTTP
GML file
Master SIT Settembre 2006
Web & GIS Chiara Renso
16
Standard OpenGIS per il web
Per il Web, OGC definisce le specifiche per i Web GIS Services, il cui funzionamento può essere definito in quattro passi:
1. Il client contatta il server e lo interroga sulle sue funzionalità
2. il server fornisce al client un documento XML con le funzionalità del servizio supportate
3. il client chiede i dati al server
4. il server fornisce i dati richiesti
L’architettura proposta per gli OGC web services è mostrata in figura:
Master SIT Settembre 2006
Web & GIS Chiara Renso
17
http://udig.refractions.net/docs/WRS.pdf#search=%22ogc%20web%20registry%20service%22
OGC definisce due tipo di Web Server: Il Web Map Server che fornisce mappe grafiche e Web Feature Server che fornisce feature geografiche in formato GML.
OpenGIS - Web Map Server (WMS) L’ OpenGIS® Web Map Service (WMS) Implementation Specification definisce tre operazioni (GetCapabilities, GetMap, and GetFeatureInfo) per la creazione e la visualizzazione di mappe che possono provenire da multiple sorgenti di informazione. Quando un client e un server implementano WMS, ogni client può accedere mappe fornite da qualsiasi server e può combinare mappe (con overlay) da uno o più server. Vediamo nel dettaglio le tre interfacce: GetCapabilities: Ottiene metadati del tipo machine-readable (e human-readable) quindi XML, di descrizione del contenuto informativo del WMS's e dei parametri accettati. GetMap: ottiene una immagine della mappa dove i parametri geospaziali e dimensioni sono definiti. GetFeatureInfo (opzionale): chiede informazioni su particolari funzionalità
Lo standard OGC definisce quali sono i parametri e che formato hanno per ognuna di queste interfacce.
Master SIT Settembre 2006
Web & GIS Chiara Renso
18
Interoperabilità significa mappe composte da N Server
Web Browser
Viewer Client
MapServer
MapServer
MapServer
MapServer
inte
rnet
Web Map ServersWeb Browser
Viewer Client
MapServer
MapServer
MapServer
MapServer
inte
rnet
Web Map ServersWeb Browser
Viewer ClientWeb BrowserWeb Browser
Viewer Client
MapServer
MapServer
MapServer
MapServer
inte
rnet
Web Map Servers
MapServer
MapServer
MapServer
MapServer
MapServer
MapServer
MapServer
MapServer
inte
rnet
inte
rnet
Web Map Servers
http://ceoware2.ccrs.nrcan.gc.ca/cubewerx/cubeserv/cubeserv.cgi? version=1.1.0&service=wms&request=GetMap&srs=EPSG:4326& bbox=-80.279475,43.082972,79.281178,43.682405&width=500&height=300 &layers=L7O_B743:CEOWARE2&format=image/gif&transparent=TRUE &exceptions=application/vnd.ogc.se inimage&styles=default
Master SIT Settembre 2006
Web & GIS Chiara Renso
19
GetCapabilities Forinisce metadati in formato XML sulle funzionalità e metadati dei layer. Esempio: http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map &version=1.1.1&service=WMS&request=GetCapabilities
http://wms.cits.rncan.gc.ca/cgi-bin/cubeserv.cgi? version=1.1.0&service=wms&request=GetMap&srs=EPSG:4326& bbox=-80.279475,43.082972,79.281178,43.682405&width=500&height=300 &layers=ROUTE_1:BNDT/NTDB-250K&format=image/gif&transparent=TRUE &exceptions=application/vnd.ogc.se inimage&styles=default
Master SIT Settembre 2006
Web & GIS Chiara Renso
20
http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map& version=1.1.1&service=WMS&request=DescribeLayer&layers=rivers GetMap Ritorna un’immagine grafica dei dati basata sull’area di interesse. Solo immagini, non features, non attributi. Tra i parametri: service (multiple services may exists from this service, e.g. WMS, WFS, WCS)
• request (GetMap) • width (output image width) • height (output image height) • layers (data desired to be visualized) - Get this from GetCapabilities info
Comma-separated list Esempio. Layers=elevation,roads,railways,… Esempio: http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map&version=1.1.1&service=WMS&request=GetMap&srs=EPSG:4326&bbox=-180,-90,180,90&format=image/png&layers=land_shallow_topo_2048,rivers&styles=,&transparent=true&width=500&height=300 Esempi: http://clearinghouse5.fgdc.gov/multiviewer/ http://clearinghouse4.fgdc.gov/cgi-bin/services/global?version=1.1.1&request=map&srs=EPSG:4326&bBox=-180,-90,180,90&width=400&height=200&format=JPEG&layers=lakes&
Master SIT Settembre 2006
Web & GIS Chiara Renso
21
OpenGIS - Web Feature Server (WFS) Mentre il risultato di un WebMap Server è puramente grafico, un WFS fornisce entità geografiche o features. Un feature è un oggetto geografico con delle proprietà, tra cui la geometria , ovvero punti linee poligoni.
Le interfacce di BASE definite sono:
GetCapabilities – Fornisce una lista dei tipi di feature disponibili nel WFS e quali operazioni supporta.
DescribeFeatureType – Fornisce una descrizione della struttura di un dato tipi di feature.
GetFeature – Fornisce accesso alle features basato su un filtro che vincola il risultato ritornato spazialmente o non spazialmente.
Mentre quelle TRANSAZIONALI, opzionali, sono:
LockFeature - (Opzionale) fornisce la capacità di lockare una feature. Transaction – Fornisce la capacità di inserire, aggiornare e cancellare features.
Ovviamente la possibilità di avere operazioni di updating fa emergere problematiche di sicurezza.
Riferimenti
Web mapping course powerpoints: http://swera.unep.net/swera/index.php?id=159 OpenGIS Consortium: http://www.opengeospatial.org/