Progettare un (Web)GIS utilizzando Software Libero
Eduard ing. Roccatello <[email protected]>
Linux Day 2008 @ RoLUG
Rovigo - 25 Ottobre 2008
GIS e informazione territoriale
• GIS, Geographic Information System, è
la sigla che individua la tipologia di
software che lavora con il territorio.
• Un esempio:
– Google Maps, Yahoo! Maps, ViaMichelin,
Microsoft Live Search Maps.
– Sono solo alcune delle applicazioni online che
consentono l’accesso al territorio e alle
informazioni contenute in esso.
Linux Day 2008 - Eduard Roccatello 2
GIS e informazione territoriale / 2
• Formalmente un Sistema Informativo
Territoriale (SIT) è un sistema informativo
capace di integrare, memorizzare,
modificare, analizzare, condividere e
visualizzare informazioni geograficamente
referenziate, cioè a cui sono state
associate coordinate geografiche secondo
un preciso sistema di riferimento.
Linux Day 2008 - Eduard Roccatello 3
GIS
• I leader del mondo GIS sono enterprise
–ESRI
–ORACLE
–AUTODESK
• Con qualche piacevole eccezione
–GRASS
Linux Day 2008 - Eduard Roccatello 4
Software Libero
• Vi siete mai chiesti cosa possono fare
Linux ed il software libero per il vostro
territorio?
Linux Day 2008 - Eduard Roccatello 5
Software Libero
• Da sempre la comunità professionale che
opera nel settore GIS considera Linux
come una risorsa.
• Lo sviluppo di applicazioni territoriali
opensource per il pinguino è all’ordine del
giorno.
Linux Day 2008 - Eduard Roccatello 6
Approccio alla progettazione
• Gis tecnologia servente
• Focus su interfaccia
• Focus su funzionalità specifiche
• Attenzione ai dati
• Sviluppo prototipale
7Linux Day 2008 - Eduard Roccatello
Interfaccia
• Esistono UI pattern oramai consolidati
• La progettazione dell’interfaccia deve
rispettare regole ben affermate
• Enfasi su usabilità e fruizione del prodotto
8Linux Day 2008 - Eduard Roccatello
Esempi di UI Pattern
• Comandi
– Quali usare
– Come posizionarli
– Come integrarli
• Navigazione
• Accessibilità
• Usabilità
9Linux Day 2008 - Eduard Roccatello
Esempi di UI Pattern / 2
Linux Day 2008 - Eduard Roccatello 10
Miniatura per
conoscere il
posizionamento
locale e globale
Risultati della ricerca
come punti di partenza
per utilizzare i servizi
collegati
Spariscono i classici
bottoni zoom, info,
evidenzia
Esempi di UI Pattern / 3
Linux Day 2008 - Eduard Roccatello 11
Punti di interesse
intelleggibili
senza legenda
Controlli per la
navigazione
accessori.
Punta e clicca
Esempi di UI Pattern / 4
Linux Day 2008 - Eduard Roccatello 12
Controlli concentrati
in alto a sinistra
(desktop like)
Modalità di
visualizzazione e
layer facilmente
selezionabili
Posso cambiare il
punto di vista
dell’osservatore
Esempi di UI Pattern / 5
Linux Day 2008 - Eduard Roccatello 13
Posso aggiungere
fermate intermedie
facendo drag and dropLa descrizione del
percorso affianca la
mappa per facilitare
la comprensione
Salvo, stampo e
condivido informazioni
che mi interessano
UI Pattern per la usability
Autocomplete – Suggerimenti durante la ricerca
Linux Day 2008 - Eduard Roccatello 14
Briciole di pane – Dove mi trovo?
UI Pattern per la usability / 2
Input Prompt – Orientare l’utente nelle decisioni
Linux Day 2008 - Eduard Roccatello 15
Forgiving Format – Interpretiamo l’input dell’utente
Funzionalità specifiche
• Visualizzazione fotorealistica
• Informazioni specifiche
• Funzioni di costruzione percorsi
personalizzati
• Creazione strumenti per il viaggio o
l’escursione
16Linux Day 2008 - Eduard Roccatello
Attenzione ai dati
• Esistono tipologie di dati (geografici)
comuni ed affermate
• Immagini
• Mappe con simbologia immediata (no
legenda)
• Virtual reality
• Dati aggiornati
17Linux Day 2008 - Eduard Roccatello
Dati: esempi dal mondo webgis
Linux Day 2008 - Eduard Roccatello 18
Dati: ortofoto
Linux Day 2008 - Eduard Roccatello 19
Dati: mappa turistica
Linux Day 2008 - Eduard Roccatello 20
Dati: 3D and Virtual Reality
Linux Day 2008 - Eduard Roccatello 21
Dati: 3D and Virtual Reality
Linux Day 2008 - Eduard Roccatello 22
Architettura applicativa
Caratteristiche fondamentali
• Prestazioni
• Scalabilità
• Disponibilità
• Sicurezza
23Linux Day 2008 - Eduard Roccatello
Schema architetturale
24Linux Day 2008 - Eduard Roccatello
Componenti lato server
Client per l’utente finale
GEO DBMS
GEO (SPATIAL WEB) SERVERAPPLICATION SERVER
BROWSER WEB
APPLICAZIONE AJAX
Client di editing
APPLICAZIONE DESKTOP
TRADIZIONALE
GeoDBMS
• Informazioni spaziali e alfanumeriche
memorizzate in un database relazionale.
• FOSS PostgreSQL + PostGIS
Fornisce:
• Sicurezza ed integrità
• Prestazioni (indici spaziali)
• Funzionalità di analisi spaziale
25Linux Day 2008 - Eduard Roccatello
Geospatial Webserver
• Consentono la pubblicazione di dati
geospaziali come mappe ed immagini
(utilizzando Web Map Service) o come
dati (utilizzando Web Feature Service).
• FOSS GeoServer
• Si differenziano per funzionalità, supporto
agli standard ed ambiente operativo.
26Linux Day 2008 - Eduard Roccatello
Client per l’utente finale
• Thin / thick
• Vantaggi e svantaggi
• WebGIS client – caratteristiche peculiari
– nessun plugin specifico
– solo browser (ambiente di esecuzione
potente)
– Massimizzazione prestazioni e
minimizzazione dello scambio dati
27Linux Day 2008 - Eduard Roccatello
Client Amministrazione/gestione
• Funzioni di aggiornamento dati
alfanumerici (anche web)
• Funzioni di aggiornamento dati spaziali
(editing) via applicazione desktop –
connessione con GeoDBMS, controlli di
validazione.
28Linux Day 2008 - Eduard Roccatello
Standard per il GIS
• Punto di riferimento per l’interoperabilità
• Quali standard?
– Definiti dall’Open Geospatial Consortium
– I più importanti ed utilizzati sono
• GML, WMS, WFS, WMC ed SLD
• Standard versus prestazioni
• Standard versus velocità di sviluppo
29Linux Day 2008 - Eduard Roccatello
Standard per il GIS
• Vantaggi
– Standard come documentazione di riferimento
– Indipendenza dal singolo prodotto
– Soluzioni di qualità elevata
• Svantaggi
– Apprendimento complesso
– A volte sono poco supportati
– Complicano lo sviluppo dei prodotti
30Linux Day 2008 - Eduard Roccatello
Modello di sviluppo
• AJAX per rendere i prodotti web più simili
alle applicazioni classiche
– Aggiunta di un layer di comunicazione tra
server e client
– XML, CSS, Javascript e XHTML
• Soluzioni di classe enterprise
– Java J2EE, MVC, ORM
• Soluzioni per la prototipazione veloce
31Linux Day 2008 - Eduard Roccatello
Modello di sviluppo / 2
• Analisi esigenze ed individuazione dati
• Creazione delle tematizzazioni
• Individuazione delle funzioni necessarie
• Impostazione dei servizi geospaziali
• Progettazione componenti
• Sviluppo componente server side
• Sviluppo componente client side
Linux Day 2008 - Eduard Roccatello 32
La gestione dell’applicazione
• Aggiornamento dei dati
• Adeguamento costante delle funzionalità
• Adeguamento all’evoluzione del contesto
specifico
33Linux Day 2008 - Eduard Roccatello
Conclusioni
Per applicazioni di successo (nel tempo)
• Attenzione ad interfaccia
• Architettura solida e performante
• Uso di standard (anche se costa di più)
garanzia di sviluppo
• Risorse per la gestione (dati e funzioni)
34Linux Day 2008 - Eduard Roccatello