Upload
others
View
0
Download
0
Embed Size (px)
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 <[email protected]>
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!