Tile server

Preview:

DESCRIPTION

Antea's new tileserver.

Citation preview

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