THE NEW MAPSERVERAKA, 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
Server BBox
Server di mappe (Mosaic)Convertitore di P&I
Client Browser
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.890182365863,-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
Top Related