際際滷

際際滷Share a Scribd company logo
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
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
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
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
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
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
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
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
 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
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
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
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
Cagliari 30 Settembre 2015
Cagliari 30 Settembre 2015
{ "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
{
"_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
Modello del dato di riferimento
Cagliari 30 Settembre 2015
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
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
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 )
Progettazione dell'infrastruttura
Cagliari 30 Settembre 2015
Cagliari 30 Settembre 2015
Couchbase
Couchbase
Cagliari 30 Settembre 2015
Couchbase
L'erogatore dei tasselli: Inno
Cagliari 30 Settembre 2015http://inno.crs4.it/inno
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竪...
Il gestore degli oggetti
Cagliari 30 Settembre 2015
WorkDAO
JDBC
psql
WorkThread
cbdocloader
Couchbase Java Client
WorkThreadWorkThread WorkThread
Cagliari 30 Settembre 2015
Cagliari 30 Settembre 2015
Inno: https://github.com/crs4/inno
Innomanager: https://github.com/crs4/innomanager
Github
Cagliari 30 Settembre 2015
Grazie dell'ascolto
Domande?

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
  • 17. Modello del dato di riferimento 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 )
  • 22. Cagliari 30 Settembre 2015 Couchbase
  • 24. L'erogatore dei tasselli: Inno Cagliari 30 Settembre 2015http://inno.crs4.it/inno
  • 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
  • 28. Cagliari 30 Settembre 2015 Inno: https://github.com/crs4/inno Innomanager: https://github.com/crs4/innomanager Github
  • 29. Cagliari 30 Settembre 2015 Grazie dell'ascolto Domande?