Tolomeo: framework per lo sviluppo di applicativi WebGIS
Il progetto Tolomeo
Tolomeo nasce come esigenza interna del Sistema Informativo Territoriale del Comune di Prato per fornire applicazioni WebGIS ai propri utenti. Uno strumento che consentisse loro la visualizzazione e la consultazione della cartografia del Comune, ricercare vie e civici, selezionare oggetti e poterli modificare (editing), interrogare oggetti specifici per conoscerne gli attributi ed eventalmente elaborare delle statistiche...
Ogni categoria di utente aveva specifiche esigenze: la Pubblica Istruzione elaborare lo stradario delle scuole e realizzaere la leva scolastica, la Polizia Municipale monitorale i sinistri stradali, l'Urbanistica consultare il Regolamento Urbanistico, etc...
Tutte queste applicazioni diverse tra loro hanno però funzionalità comuni: visualizzare una mappa, spostarsi, poter fare lo zoom, accendere e spegnere i layer che compongono la mappa, selezionare oggetti...
Abbiamo cercato quindi di creare una parte (che poi abbiamo chiamato Tolomeo) che fosse la base comune a tutte le applicazioni, per poi sviluppare e differenziare solo le parti che effettivamente lo richiedono.
Tolomeo è quindi non un'applicazione finita, di uso generale, ma piuttosto un framework di sviluppo che consente di sviluppare facilmente applicazioni e ne semplifica la
manutenzione e l'evoluzione.
Il risultato è la riduzione drastica della complessità del sistema ed un incremento notevole dell'efficienza di sviluppo.
Nella progettazione ed implementazione di Tolomeo abbiamo cercato di perseguire i seguenti obiettivi:
- centralizzazione delle funzioni comuni per ottimizzazione efficienza sviluppo e riduzione oneri per la manutenzione. Potendosi concentrare su un componente utilizzato in molti contesti, questo è stato arricchito nel tempo di molte funzionalità sviluppate per un particolare servizio ma che poi sono a disposizione anche di tutti gli altri
- massimizzazione del riuso di soluzioni OpenSource disponibili. Le soluzioni disponibili oggi anche in modalità OpenSource sono di elevatissima qualità, ed è fondamentale per un progetto come il nostro poter cogliere queste sinergie
- netta separazione delle componenti che richiedono allo sviluppatore competenze WebGIS da quelle che richiedono solo competenze di sviluppo Web. Non sono più necessarie competenze WebGIS per lo sviluppo (la complessità di questi aspetti è quasi interamente wrappata all'interno dell'ambiente); ogni sviluppatore o ditta in grado di fare pagine HTML è in grado di utilizzare le funzionalità messe a disposizione
- modularizzazione per consentire diverse combinazioni di funzionalità ed aspetto visivo. Trattandosi di un framework deve avere il massimo della flessibilità e quindi prevedere casi nei quali è presente una legenda, casi nei quale non è presente, casi nei quali è presente su richiesta etc
- integrabilità in applicazioni di terze parti sviluppate in contesti tecnologici diversi. Spesso c'è la necessità di aggiungere semplici funzionalità cartografiche ad applicazioni di terze parti che non prevedono cartografia (come per esempio mostrare un civico su una mappa), il framework deve consentirlo senza porre vincoli di tecnologia, layout, posizionalmento su particolari server/domini.
- definizione di una API ricca e di alto livello di astrazione sia per la parte Javascript sia per la parte Java/Servlet.
Con l'ambiente a regime ed i dati correttamente strutturati i tempi di sviluppo delle applicazioni "tipo" vanno da 1 giorno per le più semplici a 10 giorni per le più complesse.
Tolomeo è attualmente utilizzato all'interno del Comune di Prato in oltre 40 applicazioni; di queste circa 2/3 sono sviluppate interamente nell'ambiente, nelle restanti
Tolomeo fornisce gli strumenti cartografici ad applicazioni sviluppate indipendentemente, a volte in tutt'altra tecnologia.
Tolomeo è in riuso alla provincia di Firenze, nel progetto CERCO (Province di Firenze, Prato, Pistoia, Comuni della provincia di Prato, Circondario empolese Val d'Elsa), verrà riusato nel progetto nazionale FED-FIS del bando Elisa2.
Tolomeo è l'ultimo prodotto di un percorso che al comune di Prato è iniziato, impiegando tutt’altra tecnologia, più di 6 anni fa.
È interamente basato su programmi OpenSource, di seguito i principali:
- MapServer o GeoServer (generatori di mappe, Tolomeo li supporta entrambi e può in aggiunta visualizzare qualsiasi cosa sia in grado di visualizzare OpenLayers)
- OpenLayers (componente JavaScript che consente la visualizzazione di mappe ricevute da un lungo elenco di possibili tipologie di MapServer. Dispone di una ottima API di programmazione e di una attiva comunità di sviluppo)
- ExtJS (libreria JavaScript che consente di gestire finestre, menù e componenti GUI, gestione di eventi)
- GeoTools (Libreria Java che consente l'accesso ai dati spaziali in maniera generalizzata e geoprocessing)
- JavaScript
- Java/Servlet
- Apache
- Tomcat
- Oracle/PostGIS