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åskaligt data, 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 eller Microsoft 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 Apache Mapserver mod_fcgid
Kartplatformen Apache Mapserver mod_fcgid PostGIS
Kartplattformen Apache Mapserver mod_fcgid PostGIS GDAL
Kartplatformen Apache mod_rewrite mod_security Apache Mapserver mod_fcgid PostGIS GDAL
Kartplatformen Apache mod_rewrite mod_security Mod_auth_ldap Basic auth LDAP Apache Mapserver mod_fcgid PostGIS GDAL
Kartplatformen Apache mod_rewrite mod_security Mod_auth_ldap Basic Auth LDAP Apache Mapserver mod_fcgid CustomLog SAL (System Access Log) PostGIS GDAL
Kartplatformen Apache mod_rewrite mod_security Mod_auth_ldap Basic Auth LDAP Apache Mapserver mod_fcgid CustomLog SAL Apache Mapserver mod_fcgid CustomLog PostGIS GDAL
OpenLayers Qgis udig ArcMap Apache mod_rewrite mod_security Mod_auth_ldap Basic Auth LDAP Apache Mapserver mod_fcgid CustomLog SAL Apache Mapserver mod_fcgid CustomLog PostGIS GDAL
OpenLayers Qgis udig ArcMap Apache mod_rewrite mod_security Mod_auth_ldap Basic Auth LDAP Apache Mapserver mod_fcgid CustomLog mapcache SAL Apache Mapserver mod_fcgid CustomLog mapcache PostGIS GDAL
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 bygga in egen funktionalitet eller rätta buggar. Detta är ofta tidskrävande och svårt. Att däremot kunna köra programmet i en debugger och se vad som händer gör att vi ofta kan förstå var och varför något inte fungerar. Vet man var problemet uppstår går det ofta att komma runt det. Om något slutar fungera vid en uppgradering av programvaran kan 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 ska anvä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ör anvä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
Vilken användare Kostnad Vad efterfrågades Tidpunkt SAL Leveranstid Vilken tjänst Hur mycket data
Klienter Proxy Anpassa Misslyckade anrop Testsvit Befintlig Produkt Ny Produkt Uttag unika anropstyper SAL
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 att anvä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!