Master SIT - di.unipi.itmogorov/WebGIS08 GlistandardOpenGIS.pdf · Vedremo quindi il linguaggio XML...

21
Master SIT Settembre 2006 Web & GIS Chiara Renso 1 INTEROPERABILITÀ E GIS WEB SERVICES Corso Web & GIS Master in Sistemi Informativi Territoriali AA 2005/2006 Chiara Renso ISTI- CNR [email protected] 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.

Transcript of Master SIT - di.unipi.itmogorov/WebGIS08 GlistandardOpenGIS.pdf · Vedremo quindi il linguaggio XML...

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

[email protected]

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

13

Master SIT Settembre 2006

Web & GIS Chiara Renso

14

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/