SlideShare a Scribd company logo
1 of 16
Download to read offline
THE NEW MAPSERVER 
AKA, the TileServer
CASO D’USO
STATO ATTUALE 
• Esiste un client web basato su OpenLayers 
(WMS). 
• Esiste un MapServer scritto in Java che genera le 
tile 256*256 al volo da bitmap molto più grandi. 
• Esiste un convertitore che crea queste bitmap 
molto grandi (mosaic).
ARCHITETTURA 
Client Browser 
Server BBox 
Server di mappe 
Convertitore di P&I (Mosaic)
MA ADESSO… 
+ 
Si possono richiedere le tile direttamente per numero.
STATO FUTURO 
• In BBox: un client web basato su Leaflet in Vaadin 
7. 
• Un MapServer che fornirà le tile 256*256 già 
tagliate e salvate su filesystem. 
• Un convertitore che crea direttamente le tile.
MAPCLIENT 
• Il Navigator in Leaflet fa parte della migrazione verso Vaadin 7. 
• Sarà più semplice e snello del Navigator basato su 
OpenLayers. 
• Permetterà le mappe offline. 
• Supporto per display Retina. 
! 
OpenLayers is a big pile of… well, JavaScript with a history. 
(Matti Tahvonen)
MAPCLIENT 
http://maps.antea.bogus/layers/pid?WIDTH=256&HEIGHT=256 
&FORMAT=image%2Fpng&TRANSPARENT=true&SERVICE=WMS 
&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG 
%3A4326&LAYERS=123456789&BBOX=-29.814917938907,38.890182365 
863,-28.694133744422,40.010966560349 
! 
http://maps.antea.bogus/tile/123456789/lod_1/layer_2_3.png
MAPCONVERTER 
• Il convertitore crea già le tile nel formato giusto.
MAPSERVER 
• Completamente reimplementato in Go. 
• Fornisce Tile già salvate su filesystem. 
• Ha una certa intelligenza per trovare la directory 
do ciascun PID. 
• Ha pagine di diagnostica e servizi REST di utility.
GO WHAT? 
• Linguaggio del 2009 specializzato in 
applicazioni di rete al alta concorrenza. 
• Creato da Ken Thompson (C, Unix, 
UTF-8) e altri, come progetto 20% in 
Google. 
• Obiettivi: meno codice, compilazione 
veloce, esecuzione veloce.
GO 
• Completamente Open source (BSD). 
• Sintassi simile a C. 
• Interfacce come in Java. 
• Package come C# e Java. 
• Ereditarietà senza polimorfismo, come JavaScript, Ruby.
GO 
• Compilato. Cross-compila. Non compila risorse. Solo link statico. 
• Imperativo (non descrittivo). 
• Non object-oriented (non ha l’ereditarietà OO). Funzionale. 
• Statico, ma ha alcune caratteristiche dei linguaggi dinamici. 
• Fortemente tipizzato. 
• Garbage collected.
GO 
• Bravo nella concorrenza: funzioni asincrone, green 
thread e canali. 
• Orientato alle applicazioni di rete. 
• Server HTTP integrato. 
• Engine di templating integrata.
CONFRONTO 
SLOC 14616 223 
File sorgente 61 1 
RAM 1750 MiB 16 MiB 
Response time 600 ms 1 ms 
CPU 360 267 
Throughput 52 tps 19660 tps
Tile server

More Related Content

Viewers also liked

Viewers also liked (9)

15 - Java 8
15 - Java 815 - Java 8
15 - Java 8
 
14 - Atom
14 - Atom14 - Atom
14 - Atom
 
Vaadin7
Vaadin7Vaadin7
Vaadin7
 
16 - Project Lombok
16 - Project Lombok16 - Project Lombok
16 - Project Lombok
 
Slides functionalities 0.26-r16
Slides   functionalities 0.26-r16Slides   functionalities 0.26-r16
Slides functionalities 0.26-r16
 
BBox e vaadin7
BBox e vaadin7BBox e vaadin7
BBox e vaadin7
 
07 Design Patterns
07 Design Patterns07 Design Patterns
07 Design Patterns
 
12 java modifiers
12 java modifiers12 java modifiers
12 java modifiers
 
17 - Web Application Threats
17 - Web Application Threats17 - Web Application Threats
17 - Web Application Threats
 

Similar to Tile server

Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentationUgo Landini
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAXTommaso Torti
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeomarcocasario
 
Creare un Information Radiator con Delphi
Creare un Information Radiator con DelphiCreare un Information Radiator con Delphi
Creare un Information Radiator con DelphiMarco Breveglieri
 
Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game DevelopersMarco Parenzan
 
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...Giulio Bonanome
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
 
20160402_mlraviol_mariadb_TorinoWordCamp
20160402_mlraviol_mariadb_TorinoWordCamp20160402_mlraviol_mariadb_TorinoWordCamp
20160402_mlraviol_mariadb_TorinoWordCampmlraviol
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017MongoDB
 
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e MongodbRealizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e MongodbMongoDB
 
Azure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDBAzure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDBDavide Benvegnù
 

Similar to Tile server (20)

Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
 
Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentation
 
Link. javascript ajax
  Link. javascript ajax  Link. javascript ajax
Link. javascript ajax
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
Bbox
BboxBbox
Bbox
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
Html5
Html5Html5
Html5
 
Creare un Information Radiator con Delphi
Creare un Information Radiator con DelphiCreare un Information Radiator con Delphi
Creare un Information Radiator con Delphi
 
Node and the Cloud
Node and the CloudNode and the Cloud
Node and the Cloud
 
Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game Developers
 
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 
Xpages, cosa ci sarà in questa nuova tecnologia
Xpages, cosa ci sarà in questa nuova tecnologiaXpages, cosa ci sarà in questa nuova tecnologia
Xpages, cosa ci sarà in questa nuova tecnologia
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
20160402_mlraviol_mariadb_TorinoWordCamp
20160402_mlraviol_mariadb_TorinoWordCamp20160402_mlraviol_mariadb_TorinoWordCamp
20160402_mlraviol_mariadb_TorinoWordCamp
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
 
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e MongodbRealizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
 
Azure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDBAzure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDB
 

More from Federico Russo (17)

23 Sicurezza in BBox
23 Sicurezza in BBox23 Sicurezza in BBox
23 Sicurezza in BBox
 
21 Buzzwords
21 Buzzwords21 Buzzwords
21 Buzzwords
 
18 - InfluxDB
18 - InfluxDB18 - InfluxDB
18 - InfluxDB
 
19 - The Highlander Project
19 - The Highlander Project19 - The Highlander Project
19 - The Highlander Project
 
22 - Better Coding
22 - Better Coding22 - Better Coding
22 - Better Coding
 
20 - Ottimizzare le query
20 - Ottimizzare le query20 - Ottimizzare le query
20 - Ottimizzare le query
 
10 Data caching
10 Data caching10 Data caching
10 Data caching
 
11 Java 7
11 Java 711 Java 7
11 Java 7
 
08 Workflow e strumenti web
08 Workflow e strumenti web08 Workflow e strumenti web
08 Workflow e strumenti web
 
06 Refactoring
06 Refactoring06 Refactoring
06 Refactoring
 
09 Transactions
09 Transactions09 Transactions
09 Transactions
 
05 unit testing
05 unit testing05 unit testing
05 unit testing
 
04-JVM
04-JVM04-JVM
04-JVM
 
03 - Ricorsione
03 - Ricorsione03 - Ricorsione
03 - Ricorsione
 
02 - Collezioni
02 - Collezioni02 - Collezioni
02 - Collezioni
 
01 - Ereditarietà e polimorfismo
01 - Ereditarietà e polimorfismo01 - Ereditarietà e polimorfismo
01 - Ereditarietà e polimorfismo
 
DataSnap
DataSnapDataSnap
DataSnap
 

Tile server

  • 1. THE NEW MAPSERVER AKA, the TileServer
  • 3. STATO ATTUALE • Esiste un client web basato su OpenLayers (WMS). • Esiste un MapServer scritto in Java che genera le tile 256*256 al volo da bitmap molto più grandi. • Esiste un convertitore che crea queste bitmap molto grandi (mosaic).
  • 4. ARCHITETTURA Client Browser Server BBox Server di mappe Convertitore di P&I (Mosaic)
  • 5. MA ADESSO… + Si possono richiedere le tile direttamente per numero.
  • 6. STATO FUTURO • In BBox: un client web basato su Leaflet in Vaadin 7. • Un MapServer che fornirà le tile 256*256 già tagliate e salvate su filesystem. • Un convertitore che crea direttamente le tile.
  • 7. MAPCLIENT • Il Navigator in Leaflet fa parte della migrazione verso Vaadin 7. • Sarà più semplice e snello del Navigator basato su OpenLayers. • Permetterà le mappe offline. • Supporto per display Retina. ! OpenLayers is a big pile of… well, JavaScript with a history. (Matti Tahvonen)
  • 8. MAPCLIENT http://maps.antea.bogus/layers/pid?WIDTH=256&HEIGHT=256 &FORMAT=image%2Fpng&TRANSPARENT=true&SERVICE=WMS &VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG %3A4326&LAYERS=123456789&BBOX=-29.814917938907,38.890182365 863,-28.694133744422,40.010966560349 ! http://maps.antea.bogus/tile/123456789/lod_1/layer_2_3.png
  • 9. MAPCONVERTER • Il convertitore crea già le tile nel formato giusto.
  • 10. MAPSERVER • Completamente reimplementato in Go. • Fornisce Tile già salvate su filesystem. • Ha una certa intelligenza per trovare la directory do ciascun PID. • Ha pagine di diagnostica e servizi REST di utility.
  • 11. GO WHAT? • Linguaggio del 2009 specializzato in applicazioni di rete al alta concorrenza. • Creato da Ken Thompson (C, Unix, UTF-8) e altri, come progetto 20% in Google. • Obiettivi: meno codice, compilazione veloce, esecuzione veloce.
  • 12. GO • Completamente Open source (BSD). • Sintassi simile a C. • Interfacce come in Java. • Package come C# e Java. • Ereditarietà senza polimorfismo, come JavaScript, Ruby.
  • 13. GO • Compilato. Cross-compila. Non compila risorse. Solo link statico. • Imperativo (non descrittivo). • Non object-oriented (non ha l’ereditarietà OO). Funzionale. • Statico, ma ha alcune caratteristiche dei linguaggi dinamici. • Fortemente tipizzato. • Garbage collected.
  • 14. GO • Bravo nella concorrenza: funzioni asincrone, green thread e canali. • Orientato alle applicazioni di rete. • Server HTTP integrato. • Engine di templating integrata.
  • 15. CONFRONTO SLOC 14616 223 File sorgente 61 1 RAM 1750 MiB 16 MiB Response time 600 ms 1 ms CPU 360 267 Throughput 52 tps 19660 tps