Lantmäteriets WMS - Geoforum · 2014-06-03 · Byte från Geoserver till Mapserver •Krav: Byta...

Preview:

Citation preview

Lantmäteriets WMS

En presentation av de olika komponenterna i plattformen och hur öppen källkod påverkar vår

arbetsmetodik

Erik Gustafson <erik.gustafson@lm.se>

Alternativ titel

• Att sova gott om natten

- med externt publicerade karttjänster som har öppet 24/7

Bakgrund

• 23 WMS/WMTS tjänster

• Drygt två miljoner WMS GetImage per dag

• Ca 1.5 miljoner WMTS GetTile per dag

• Interna och externa användare

• Debitering

• Direktbetjäning

• Tjänst istället för direktanslutningar mot databas

• Centraliserad kartografi

Topowebbkartan

• Vår mest komplexa webbkarta

• Topografi, fastighetsinformation, fastighetsregister, småskaligtdata, VMap, terrängskuggning

• Sömlös kartskalning

Mapserver

Denna sida ska vara tom

Integrerad lösning vs separata komponenter

Stora intergrerade lösningar som ArcGIS plattformen ellerMicrosoft Office+ Helhetslösning+ Komponenter som fungerar bra ihop+/- “Utan att skriva en enda kodrad”+/- One size fits all- Mycket funktionalitet som inte används- Ibland svårt att integrera med andra produkter

Separata komponenter+ Byggda för att integreras med andra produkter (standarder)+ Oftast mycket effektiva, lättviktiga, utbytbara+ Ingen onödig funktionalitet- Oändligt med kombinationer, alla fungerar inte så bra ihop- Produkter från många olika leverantörer- Leder ofta till mer konfigurering

Kartplattformen

Mapserver

Kartplatformen

ApacheMapservermod_fcgid

Kartplatformen

ApacheMapservermod_fcgid

PostGIS

Kartplattformen

ApacheMapservermod_fcgid

PostGIS

GDAL

Kartplatformen

ApacheMapservermod_fcgid

PostGIS

GDAL

Apachemod_rewritemod_security

Kartplatformen

ApacheMapservermod_fcgid

PostGIS

GDAL

Apachemod_rewritemod_security

Mod_auth_ldapBasic auth

LDAP

Kartplatformen

ApacheMapservermod_fcgidCustomLog

PostGIS

GDAL

Apachemod_rewritemod_security

Mod_auth_ldapBasic Auth

LDAP

SAL(System Access Log)

Kartplatformen

ApacheMapservermod_fcgidCustomLog

PostGISGDAL

Apachemod_rewritemod_security

Mod_auth_ldapBasic Auth

LDAP

SAL

ApacheMapservermod_fcgidCustomLog

ApacheMapservermod_fcgidCustomLog

PostGIS

GDAL

Apachemod_rewritemod_security

Mod_auth_ldapBasic Auth

LDAP

SAL

ApacheMapservermod_fcgidCustomLog

OpenLayersQgisuDig

ArcMap

ApacheMapservermod_fcgidCustomLogmapcache

PostGIS

GDAL

Apachemod_rewritemod_security

Mod_auth_ldapBasic Auth

SAL

ApacheMapservermod_fcgidCustomLogmapcache

OpenLayersQgisuDig

ArcMap

LDAP

Test

- JMeter

- Stresstest

- Baseline

- Prestandaoptimering

- Pg_stat_statements

- Validering

- Desktopklienter och open layers för att hitta problem med tolkningar av WMS-standarder

Prestanda i underliggande databas

• Denormaliserad datamodell

• Undviker stora attribut, tex långa textattribut

• Cluster med spatiellt index

• Småskaligt data

• Stora ytor klippta i mindre enheter

• “Materialiserade vyer”

• Undviker stora uppdateringar

– Mindre batchar

– Ersätta hela tabeller med nya

• Saknar stöd för lokalt partitionerade spatiella index

Mapfilsproduktion

• Topowebbkartan är ca 60 000 rader lång

• Python / cheetah som texthanteringsverktyg

• Subversion

• Sneglar på Scribe UI

Appråpå mapfiler

• Textbaserade

– Versionshantering

– Dokumentation

– Search/replace

• Parametrisering

– Färgscheman

– Databasinställningar

– Lagernamn

– Olika texthantering för cache och wms

• Modulära block

Vår (karttjänst) historia

• <200x ArcIMS 4 – Interna bakgrundskartor

» KartaDirekt

• 2008 ArcGIS Server – Multikartan, intern och viss extern anvädning, WMS

• 2009 ArcGIS Server, ArcGIS Image Server – Multikartan cachad

• 2010 GeoServer + ArcGIS Server – Geoserver som WMS på ArcGIS Server Cache

• 2011 Mapserver/PostGIS Topowebbkartan, Inspire mfl

• 2012 Mapserver + Mapcache

• 2014 Mapserver WMS, Deegree WFS

• 2015 Mapserver WMS/WCS, Deegree WFS-T

Problemen

• WFS 2.0 / Inspire-scheman

• SLD

• Connection poolning

• Databas single point of failure

• 24/7 medför problem att underhålla / uppdatera databas

Att sova gott om natten

• Isolerade CGI-processer

• Mestadels standardkomponenter

• Versionshantering

• Fail over

Öppen källkod

• Den största fördelen med öppen källkod är för oss inte att byggain egen funktionalitet eller rätta buggar. Detta är oftatidskrävande och svårt.

• Att däremot kunna köra programmet i en debugger och se vadsom händer gör att vi ofta kan förstå var och varför något intefungerar. Vet man var problemet uppstår går det ofta att kommarunt det.

• Om något slutar fungera vid en uppgradering av programvarankan vi enkelt kontrollera vilka förändringar som har gjorts och påså sätt hitta problemet.

• Vi har full kontroll på vilken version av programvaran vi skaanvända

Fri mjukvara

• Licenshantering

• Licensservrar

• Full kontroll över livscykelhantering

Gratis mjukvara

• Framtida uppskalning

• Fail over

Flera spridda företag

• God kvalitet när många är inblandade. Ordning och reda

• Inga uppköp / konkurser

• Inga ändrade licensformer

Uppskalning

• Streaming replication - replikering

• pgBouncer – poolning på varje enskild databas

• F5 – poolning för TCP mellan de olika databaserna (hårdvara)

• Repmgr – hantering av noder

Mål:

- Ökad prestanda

- Tillgänglihet

- Möjligöra uppdateringar / uppgraderingar

pgPointCloud

• Punktmolns lösning för PostGIS

– Lagring av enskilda punkter extremt ineffektivt

• I drift 2014(?)

• Ca 650 miljarder punkter

• Exporterar / importerar LAS

• Sömlösa in-/ut-checkningar

• Spatiella operationer

• De flesta tjänster går mot ett genererat grid på fil. Ej mot databas

Byte från Geoserver till Mapserver

• Krav: Byta WMS-plattform och göra detta transparent föranvändare

• Mapserver och Geoserver var inte helt kompatibla

– Geoserver hade en “snällare” tolkning av anropen

– Mapserver var strikt och retunerade felmeddelanden dåparametrar utelämnades

– Olika utseende på capabilities

SAL

Vilken

användareVad

efterfrågades

Tidpunkt

Vilken tjänst

Hur mycket

data

Leveranstid

Kostnad

Befintlig

Produkt

Proxy

SAL

Klienter

Ny

Produkt

Uttag unika

anropstyper

TestsvitMisslyckade

anropAnpassa

Anrop per timme

Levererade objekt

Datamängd per dag

Svarstid per användare

Att ge tillbaka

• Vi är dåliga/omogna på att publicera källkod som open source

• Men vi har produktionssatta system och berättar om dem påkonferenser

• Vi diskuterar problem och lösningar på forum / mailinglistor

• Vi delar med oss av våra konfigurationer och exempelkod för attanvända våra tjänster

Öppna data

• Tids nog… Frågan är inte OM utan HUR

• Finansiering

– Kostnad ca 100 miljoner om året

– Varav en stor del från andra myndigheter/kommuner

• Komplext data, behöver förenklas

• Bygga infrastruktur för självbetjäning

• Licensiering

• Googla!

Tack för att ni lyssnade!

Recommended