Innovazione e infrastrutture cloud per lo sviluppo di applicativi web e mobile orientato alla geomatica in contesto Smart City. Roberto Demontis (CRS4)
1 of 29
Download to read offline
More Related Content
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
15. { "bbox": {
"type":"Polygon",
"coordinates": [[[12.45026,44.94342],
[12.45026,44.94536],
[12.453,44.94536],
[12.453,44.94342],
[12.45026,44.94342]]]
},
"objs": [ {"id":"016921","g":"3((0034ff88ffff00ff0034))"},
{"id":"020142","g":"3((ff8800340000ff00ff88))"}],
"id":"landuse:70069:47178:17",
"page":1,
"pages":1
}
Scelta dei formati e della struttura
del tassello
Cagliari 30 Settembre 2015
16. {
"_comunibbox_": {
"type": "Polygon",
"coordinates": [
[[8.13077,40.65175],[8.13077,40.8693],[8.6436,40.8693],
[8.6436,40.65175],[8.13077,40.65175]]]
},
"gid": 128,
"istat": 90064,
"nome": "Sassari",
"regione": "Sardegna",
"subregione": "Sassarese",
"id": "comuni:001"
}
!! informazioni alfa numeriche e la script injection le
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