Come funziona GeoServer - Server users.dimi.uniud.it

30/11/2009
Componenti di un GIS
Un GIS non è solamente un DB spaziale …
Corso di Basi di Dati Spaziali a.a. 2009/2010
Dott. Paolo Gallo
Componenti di un GIS
Le applicazioni richiedono strumenti per la
pubblicazione e l’editing dei dati più semplici da usare
rispetto alla riga dei comandi.
Anche la visualizzazione grafica dei dati spaziali agevola
notevolmente la comprensione e il lavoro di editing
dei dati.
Che cosa è GeoServer ?
Web application che permette la pubblicazione e
l’editing dei dati geospaziali tramite web
Completamente open-source
Interamente scritto in Java (vers. 1.4)
Utilizza le librerie GeoTools (scritte in java)
Funziona in qualsiasi servlet container
Gestisce direttamente gli Shapefiles (read/write)
Può collegarsi a molti DB spaziali , es Oracle Spatial,
MySQL ,DB2 , ArcSDE, PostGIS, SQL Server …
Cosa sono gli Shapefile ?
Come funziona GeoServer ?
Formato di file geospaziale vettoriale introdotto da ESRI , in
realtà non è un singolo file ma una terna di files con lo
stesso nome ma estensioni diverse : terreni.shp ,
terreni.dbf , terreni.shx che contengono gli oggetti spaziali
e eventualmente dati “classici” associati agli oggetti
spaziali.
Fondamentale è la possibilità di creare e gestire tali dati con
programmi simili a comuni programmi di grafica vettoriale
che permettono la creazione, la copia, la modifica, il
trascinamento e eventualmente la possibilità di utilizzare
una mappa georiferita sullo sfondo per ricavare i dati
spaziali degli oggetti vettoriali da una foto della realtà
sottostante in modo molto immediato.
Utilizzando GeoServer congiuntamente ad un client
compatibile è possibile visualizzare ed editare dati
geografici attraverso il web od una rete locale :
1
30/11/2009
Architettura WEB Service
WEB Service OGC
Dove nasce il progetto GeoServer ?
Perché usare soluzioni open-source?
Inizia nel 2001 da “Vision for New York”
Originariamente una implementazione dello standard WFS
Organizzazzioni che contribuiscono al progetto
Web Map Service, Axios Engineering, Spain
WFS Validation, Refractions Research, Canada
Complex Feature Modelling, Social Change Online, Australia
Web Coverage Service, GeoSolutions, Italy
Fondato da The Open Planning Project (TOPP)
Scopo dell’organizzazione non profit è quella di realizzare software opensource che permetta ai cittadini di essere parte attiva delle loro comunità(
ad esempio pubblicare i piani regolatori dei comuni )
OGC
Open Geospatial Consortium
Consorzio industriale di 348 tra società, università e
agenzie governative
Tra i membri Autodesk, Oracle, ESRI, NASA, ESA, MIT,
Prezzo
Possibilità di provare a fondo il prodotto senza dover
pagare per la licenza solo sulla base di demo o elenchi
di funzionalità poco chiari
Supporto commerciale di qualità in un vero mercato
(non il supporto esclusivo del venditore)
Strutture di supporto informali (email lists, wiki’s, irc
chat channels , ecc. gratuite)
Customizzazione e Localizzazione
Aggiunta di future funzionalità a costo zero.
GeoServer è OGC compliant
GeoServer è stato scritto secondo le specifiche del
consorzio OGC e la conformità è stata testata dal CITE.
Il superamento dei test con certificazione consente
l’utilizzo del logo :
Microsoft, Google
Scopo del consorzio è definire le specifiche per garantire
l’interoperabilità tra sistemi informativi geospaziali
Creare 'The GeoSpatial Web‘ simile al WWW
Specifiche OpenGIS® consultabili liberamente dal sito
OGC
2
30/11/2009
WCS , WMS , WFS ?
Acronimi che fanno riferimento all’insieme dei protocolli Opengis
Web Services (OWS) descritti nelle specifiche OpenGIS® :
Specifiche di GeoServer - 1
Interamente conforme alle specifiche WMS e WFS,
come testato dal CITE.
WMS: Web Map Service. Visuallizza dati geografici come immagini
raster eseguendo il rendering (dati origine sia raster che vettoriali).
WFS: Web Feature Service. Comunica dati geografici reali (strade,
fiumi etc.) da e per l’utente nel formato GML (Geography Markup
Language).
WFS-T: Web Map Service-Transactional. Permette agli utenti l’accesso
e la modifica di features tramite transazioni.
WCS: Web Coverage Service, fornisce l’accesso ai dati raster
“unrendered” per un elaborazione client-side.
Semplice da configurare tramite un interfaccia WEB,
non necessita di file di configurazione.
Tecnicamente GeoServer è un WFS-T , WMS , WCS.
“On the fly” reprojection con un incorporato database
EPSG che supporta centinaia di proiezioni default.
Supporto dei formati PostGIS, Shapefile, ArcSDE,
DB2, Oracle e Microsoft SQL Server .
VPF, MySQL, MapInfo, e Cascading WFS sono
anch’essi supportati (in beta release).
Specifiche di GeoServer - 2
Specifiche di GeoServer - 3
Web Map output come jpeg, gif, png, SVG, e KML.
Dati vettoriali “grezzi” disponibili come GML o
Shapefiles zippati attraverso il WFS.
Pieno supporto dei filtri nei formati dati WFS
(ottimizzati dove possibile).
Supporto per le transazioni atomiche dei database
attraverso lo standard WFS-T protocol, disponibile su
tutti i formati di dati.
Supporto delle Long Transactions attraverso una
implementazione completa delle specifiche contenute
nel la sezione Locking del WFS.
Innovativo Validation Engine che controlla le features
inserite in un insieme topologico con degli attributi
basati su regole , per preservare la backend integrity.
Anti-aliasing sulle immagini.
Conforme agli standard per default – non è necessario
effettuare complesse configurazioni solo per utilizzare
I dati di base.
Lettura dei dati in streaming : non ci sono limiti di
memoria alla quantità di dati che viene restituita.
Specifiche di GeoServer - 4
Java (J2EE) servlet-based, può essere eseguito in ogni
servlet container.
Progettato per future estensioni , il codice sorgente è
semplice da leggere.
Possibilità di gestire nuovi formati di dati con GeoTools
DataStore interfaces e helper classes, facendo di GeoServer
una interfaccia standard di connessione ai dati.
Non necessita di ricompilazione per supportare nuovi
formati di dati, i GeoTools DataStores vengono inseriti
come dei plug-in in GeoServer, e visualizzati come opzione
nell’interfaccia di configurazione grafica.
Specifiche di GeoServer - 5
Reale sviluppo open source, tramite una grande
community, sempre aperta a nuove collaborazioni,
modificando GeoServer per nuove funzionalità.
Mapbuilder incorporato , AJAX-style web mapping client,
per la visualizzazione istantanea.
Documentazione dettagliata e esaustiva in linguaggio
semplice da capire.
Disponibilità di email list per un supporto veloce.
Possibilità di un servizio assistenza e sviluppo a pagamento,
fornito da varie società e consulenti .
Molto altro....
3
30/11/2009
Gestione delle richieste
Funzionalità avanzate
Simili a quanto accade per le pagine web :
1. Richiesta del client (specifica se WFS,WMS,WCS)
2. Accesso al DataSet
3. Risposta (tramite mappa grafica o file con feature )
Sono implementate direttamente, sempre secondo le
specifiche OGC svariate funzioni tra le quali :
Matematiche : abs, sin, sqrt , StandardDeviation …
Manipolazione dati : strLength , int2ddouble …
Operazioni spaziali : Disjoint,Equals, Dwithin, B
eyond, Intersects, Touches, Crosses, Contains,
Overlaps, BBOX, convexHull, buffer, distance ….
Primo metodo per effettuare
interrogazioni : OGC Filters
Secondo metodo per effettuare
interrogazioni : CQL
OGC Filters
Ad esempio, il filtro più semplice da scrivere è chiamato
'featureid' filter, e permette di selezionare una singola
feature fornendo il suo id:
Stile più succinto e leggibile per le interrogazioni :
http://localhost:8080/geoserver/wms/kml_reflect?
layers=topp:states&CQL_FILTER=LAND_KM+BETWE
EN+100000+AND+150000
http://localhost:8080/geoserver/wms/kml_reflect?lay
ers=topp:states&featureid=states.5
Get feature request
La stessa interrogazione con i filtri OGC diventa :
http:/localhost:8080/geoserver/wms/kml_reflect?la
yers=topp:states&FILTER=%3CFilter%3E%3CPrope
rtyIsBetween%3E%3CPropertyName%3Etopp:LAN
D_KM%3C/PropertyName%3E%3CLowerBoundary
%3E%3CLiteral%3E100000%3C/Literal%3E%3C/Lo
werBoundary
%3E%3CUpperBoundary%3E%3CLiteral%3E150000
%3C/Literal%3E%3C/UpperBoundary%3E%3C/Pro
pertyIsBetween%3E%3C/Filter%3E
Una richiesta può essere inviata a Geoserver come GET o come
POST, entrambi sono gestite in modo simile.
Ad es. Una GET si compone delle seguenti parti :
1.
2.
3.
4.
5.
6.
The server address - http://localhost:8080/geoserver/
The request type - request=getfeature
The service type - service=wfs
The version - version=1.0.0
The type name, also known as the data you are querying typename=states
The filter used to select exactly what you want from the type
4
30/11/2009
Request type disponibili :
Installazione di GeoServer - 1
Possibilità di installazione su Windows, Unix, Mac OSX.
GetFeature
Transaction
Necessita di JDK installato (meglio se ultima versione)
LockFeature
GetFeatureWithLock
GetCapabilities
Due possibili installazioni :
Pacchetto con Jetty incluso (più semplice)
Versione installazione WAR , ad es. se si ha Tomcat
già installato.
Installazione di GeoServer - 2
Lato Client : OpenLayers
La connessione agli shapefiles e ai database PostGIS è
installata di serie, mentre per i restanti DB occorre
scaricare gli appositi plugin e riavviare il server, se il
plugin è correttamente riconosciuto comparirà nella
lista del menù di configurazione via web.
Libreria in puro javascript per visualizzare mappe
all’interno di un browser.
Implementa le specifiche WFS e WMS da OGC.
GetFeatureInfo
L’installazione di Jetty incluso avviene sulla porta 8080,
se tale porta è in uso si avrà un conflitto, occorrerà
quindi modificare la porta.
Supporta i Layer multipli
Molte funzionalità implementate per gestione mappe e
features (zoom, pan, disegno, esclusione dei layers,
viste d’insieme).
Utilizzabile con comuni browser (explorer, firefox …)
Strumenti di gestione mappe indipendenti dai dati.
GeoServer & Google Earth
GIS e Pubblica Amministrazione
KML
grandi quantità di dati con componente geografica
È un formato di file per visualizzare dati geografici in un Earth
browser, come Google Earth, Google Maps, e Google Maps for
mobile. KML utilizza una struttura basata sui tag con elementi
annidati e attributi ed è basata sullo standard XML .
Quando si produce in output un file KML viene richiesto di
aprire il file con il programma Google Earth e l’output viene
sovrapposto (sempre correttamente georeferenziato con
l’opportuno sistema di riferimento) alla porzione di globo
terrestre indicato dalle coordinate spaziali presenti nel file in
uscita dal server.
necessità di una gestione efficiente dei dati e di un
supporto ai processi decisionali che richiedono analisi
spaziali
i comuni sono la maglia amministrativa elementare del
territorio
5
30/11/2009
Dati relativi al comune di Tavagnacco
Attività legate ai dati mantenuti
Il sistema proposto
Il sistema proposto
Dati
GIS
Servizi
dall’analisi dei possibili utilizzi, l’attenzione si è concentrata
sullo sviluppo di due moduli:
USO ESTERNO: prototipo Web GIS per la pubblicazione
tramite Internet del Piano Regolatore Generale (PRG).
USO INTERNO: prototipo Web GIS che consenta, al
personale del comune, di modificare i dati associati alla
numerazione civica.
in entrambi i moduli sono incluse funzionalità comuni
generiche come la ricerca delle vie, la stampa, …
Analisi dei dati disponibili
Schema ChronoGeoGraph
dati raster
immagini risoluzione 1pixel = 50 cm al suolo
dimensioni totali 1,2 gigabyte
ottimizzazioni necessarie per permetterne l’utilizzo via Web
dati vettoriali
la normativa non indica un modello dei dati
tramite reverse design è stato proposto un modello per la
gestione dei dati catastali e di quelli relativi alla
toponomastica, realizzato tramite ChronoGeoGraph
sono state affrontate problematiche legate all’inconsistenza
dei dati
6
30/11/2009
Architettura Proposta
Scelta dei componenti
Il software GIS non è un software monolitico,
ma è composto da più componenti che
interagiscono fra loro.
La scelta dei componenti deve tenere conto delle
funzionalità richieste dal caso specifico.
Componenti prototipo
Riferimenti
Sito ufficiale GeoServer :
Richieste e
Risposte
tramite
Open Web
Services
(OWS)
geoserver.org
Sito ufficiale OpenLayers :
openlayers.org
Sito ufficiale OGC :
www.opengeospatial.org
7