Innovazione e infrastrutture cloud per lo sviluppo di applicativi web e mobile orientato alla geomatica in contesto Smart City. Roberto Demontis (CRS4)
Innovazione e infrastrutture cloud per lo sviluppo di applicativi web e mobile orientato alla geomatica in contesto Smart City
1. Roberto Demontis
demontis@crs4.it Cagliari 30 Settembre 2015
Innovazione e infrastrutture cloud per lo
sviluppo di applicativi web e mobile orientato
alla geomatica in contesto Smart City
2. Il principale obiettivo è realizzare un sistema
che permetta: la pubblicazione di dati geografici
di grandi dimensioni, una fruizione veloce dei
contenuti e la gestione degli stili di
rappresentazione sui client.
- Gli standard OGC: WMS, WFS, WCS.
Obiettivi
Cagliari 30 Settembre 2015
3. 1. deployment, archiviazione, gestione e interrogazione
di dati Geografici tramite il meccanismo di
tassellamento (tiling) vettoriale.
2. utilizzo di un motore NoSQL per consentire maggiore
scalabilità nella gestione dei dati .
Soluzioni
Cagliari 30 Settembre 2015
4. 3. L'accesso al dato deve essere immediato quindi sarà
●
privilegiato il metodo di accesso diretto al
tassello per chiave (key-value)
●
limitato il numero di indici secondari e, nel caso sia
inevitabile, verrà utilizzato il map() senza il
reduce()
●
limitata a 20KB la dimensione del tassello erogato
●
separata la gestione dell' informazione
alfanumerica da quella geografica
Soluzioni
Cagliari 30 Settembre 2015
5. Allo stato dell'arte non esistono standard per i tasselli
vettoriali, i formati più usati sono:
●
MVT (Mapnik Vector Tiles)
●
TopoJSON
si è optato per un formato JSON ad hoc ma con
struttura più “compatta” del topoJSON
La parte alfanumerica e quella geometrica sono gestite
separatamente
Scelta dei formati e della struttura
del tassello
Cagliari 30 Settembre 2015
6. I tasselli seguono (!in parte) le specifiche “Slippy map
tilenames” :
●
I tasselli con le geometrie sono dei documenti JSON
contenenti le coordinate proiettate nei pixel rispetto
all'origine dell'area del tassello (256 × 256 pixel); si
esegue una proiezione ed una semplificazione
●
Ogni tassello è identificato da un livello e due
coordinate x,y :
x : [ 0,.., 2^zoom - 1] ( da 180°W a 180°E)
y : [ 0,.., 2^zoom - 1] ( da 85.0511°N a 85.0511°S)
Scelta dei formati e della struttura
del tassello
Cagliari 30 Settembre 2015
7. Ogni documento è univocamete identificato da una
chiave che contiene anche l'associazione tra strato
informativo e tassello:
id tassello = <nome>:<x>:<y>:<zoom>:<pagina>
Scelta dei formati e della struttura
del tassello
Cagliari 30 Settembre 2015
8. E' evidente che:
●
geometrie poligonali vaste con pochi vertici
determinano per i zoom alti ( e.g zoom = 17), uno spreco
di risorse (vertici aggiunti, numero tasselli)
●
geometrie dense a livelli di zoom bassi (e.g zoom = 9 )
possono dare luogo a tasselli di grandi dimensioni
●
il numero di livelli dovrebbe essere scelto sulla base
del dato. Un esempio :
n°vertici / area di interesse in numero tile
Scelta dei formati e della struttura
del tassello
Cagliari 30 Settembre 2015
9. → tasselli adiacenti interamente contenuti nello
stesso poligono potrebbero essere aggregati e
recuperati tramite indice spaziale:
I Macro-tasselli
Scelta dei formati e della struttura
del tassello
Cagliari 30 Settembre 2015
10. Scelta dei formati e della struttura
del tassello
Cagliari 30 Settembre 2015
Tasselli livello 10
Tasselli livello 15 (di 18)
Gli spazi bianchi
Sono occupati dai
macro-tasselli
11. Se lo strato informativo contiene una topologia (e.g
grafo stradale, limiti amministrativi ) è utile avere una
topologia anche nel tassello riducendo i vertici presenti
nel tassello per gli zoom bassi.
Possibile utilizzo di un valore di controllo:
n°vertici “condvisi” nel tassello
nota: nella realizzazione finale non è stato applicato
Scelta dei formati e della struttura
del tassello
Cagliari 30 Settembre 2015
12. Se lo strato informativo contiene una topologia (e.g
grafo stradale, limiti amministrativi ) è utile avere una
topologia anche nel tassello riducendo i vertici presenti
nel tassello per gli zoom bassi.
Possibile utilizzo di un valore di controllo:
n°vertici “condvisi” nel tassello
nota: nella realizzazione finale non è stato applicato
Scelta dei formati e della struttura
del tassello
Cagliari 30 Settembre 2015
18. Scelta del motore NoSQL
Cagliari 30 Settembre 2015
A) Utilizzo indici spaziali su geometrie poligonali,
lineari e puntuali --> scelta di soluzioni che utilizzano
R-Tree
B) Indirizzamento diretto e utilizzo documenti JSON
per rappresentare i tasselli -> scelta NoSQL orientato
ai documenti
C) Semplicità, velocità e strumenti accessori ->
Couchbase (couchbase.com) nella versione Community
19. Gestione del dato
Cagliari 30 Settembre 2015
- Unica collezione database (bucket) di oggetti per
tutti gli starti informativi
- Utilizzo della codifica dell'identificatore tassello e
dell'oggetto con le informazioni alfanumeriche per
risolvere l'associazione tra strato informativo, tasselli
vettoriali e informazioni alfanumeriche
- Creazione dinamica dei tasselli con le informazioni
alfanumeriche
20. Cagliari 30 Settembre 2015
Progettazione dell'infrastruttura
Numero 2 server Dell PowerEdge R420
ciascuno dei quali con caratteristiche:
→ 2 processori ( 2.50GHz, 15M di cache,
7.2GT/s QPI, Turbo, 6C, 80W, DDR3-1600MHz )
→ 48GB di memoria
→ 2 Dischi Rigidi (600GB, SAS 6Gbps )
25. ETL (Extract, Transform and Load)
ed il portale innomanager
Cagliari 30 Settembre 2015
Accessorio indispensabile al sistema
●
perchè l'uso di un ORDBMS (Postgresql+ Postgis) nel
dimostratore innomanager:
- risorse disponibili
- efficienza
●
Variando disponibilità risorse possibili altre soluzioni.
●
Import da shapefile perchè...
26. Il gestore degli oggetti
Cagliari 30 Settembre 2015
WorkDAO
JDBC
psql
WorkThread
cbdocloader
Couchbase Java Client
WorkThreadWorkThread WorkThread