Opensource och SGUs webbplattform Anette Lundberg & Jonas Holmberg
Nuvarande plattform Webb- & applikationsserver Apache 2 & Tomcat 4.1 och 5.5 Solaris 8 Kartserver ArcIMS 9.1 / 9.2 & WMSConnector 9.1 / 9.2 Apache 2 & Tomcat 5.0 och 5.5 / 6.0 för Windows Windows server 2003 Databasserver Oracle 9i & ArcSDE 9.1 Solaris 8
Problem befintlig plattform Spretighet Flera olika OS Många olika versioner av applikationsservrar (Tomcat 4.x, 5.x,5.5.x) Olika versioner av Java (1.4, 1.5, 1.6) Underhåll / uppgraderingar Svårt att underhålla och uppgradera Licenskostnader Prestanda
Systemarkitektur ny plattform Webbfront Tomcat Kartvisare Namnsök. Kartserver Tomcat GeoServer Databas PostgreSQL+PostGIS
Koppling webbfront och kartserver Webbläsare Användare Kartvisare WMS-anrop och svar Webbfront GeoServer Kartserver Databas
Koppling kartserver och databas WMS-klient Användare GetMap med parametrar kartbild GeoServer Webbfront GIS-data GIS-data Kartserver Databas
WMS Web Map Service Leverera kartbilder GetCapabilites returnerar tillgängliga lager GetMap returnerar kartbild Parametrar t ex bounding box GetFeatureInfo returnerar information om en feature Webbfront Kartserver Databas
Applikations- & webbserver Tomcat En standalone server för webbapplikationer (html, servlets, JSP) Servlet container (både i webbfront och kartserver) Enkelt administratörsgränssnitt för att publicera webbtjänster Webbfront Kartserver Databas
Kartserver GeoServer Mappning mellan gis-data (featurelager) och tjänst Tjänsten WMS används i denna applikation Referensimplementation av OGCs WFS och WCS Enkelt administrationsgränssnitt för att publicera lager Webbfront Kartserver Databas
Databas PostgreSQL Objekt-relationsdatabas The worlds s most advanced open source database Finns administratörsgränssnitt 1996 som PostgreSQL men utvecklingen började redan 1985 (Michael Stonebraker) Webbfront Kartserver Databas
PostGIS PostGIS är en spatialt tillägg till PostgreSQL PostGIS följer OpenGIS Simple Feature for SQL complient spatial database Datatyper och funktioner Kan lagra punkter, linjer, polygoner, multipoint, multiline, multipolygon, geometrycollections OGC WKT (Well-Known Text) and WKB (Well-Known Binary) Webbfront Kartserver Databas
PostGIS Inte bara geometrier, utan även relationer mellan objekt De vanligaste relationerna Proximity: distance Adjacency: touching and connectivity Containment: inside/overlapping Webbfront Kartserver Databas
Operativssystem Ubuntu LTS Säkerhetspatchar och bugfixar per automatik 24 mån uppdateringsintervall med 5 års support (server) (Long Term Support) Lätt installera programvara via paketering apt-get install tomcat6 apt-get install postgresql-8.3 postgresql-client-8.3 postgresql-contrib-8.3 apt-get install postgresql-8.3-postgis En Linuxdistribution som bygger på Debian Webbfront Kartserver Databas
Test- och produktionsmiljö Produktions- och testmiljö identiska Tre testmaskiner (webbfront, kartserver, databas) (prestanda och funktionalitet) Testmiljön kopieras för att skapa produktionsmiljön Alla maskiner i ett virtualiserat kluster Finns även en utvecklingsmiljö Webbfront Kartserver Databas
Systemarkitektur ny plattform Webb- & applikationsserver Tomcat 6 (kartvisare etc.) Kartserver Tomcat 6 GeoServer 1.7.7 (WMS 1.1.1) Deegree 2.2 (WMS 1.3/WFS) Databas OS PostgreSQL 8.3.8/ PostGIS 1.3.5 Linux Ubuntu LTS Webbfront Kartserver Databas
Optimering och testning Lasttestning Konfigurering av bild / rastergenerering Minnesoptimering Indexering PostgreSQL parametrar
Lasttestning - Grinder Java Swing applikation Opensource projekt Scriptbaserad konfigurering (Python) Möjlighet att spela in script http://grinder.sourceforge.net/
Lasttestning vad? Vad ville vi testa? Prestanda vid relativt stor last För att upptäcka flaskhalsar Stabilitet i applikationen, WMS-lagren och databasen Ex. minnesluckor, fel etc.
Lasttestning vad? Vad mäter vi? Svarstider (ms) Transaktioner / sek Hur mycket som kan köras i systemet Fel i applikationerna Övrigt som övervakas (på OS nivå) vid testtillfället Processoranvändning Minnesanvändning NFS-uppslag till filsystemet
Lasttestning hur? Inställningar 2 maskiner 30 användare per maskin (60 samtidiga användare) 30 minuter 6 testscript körs parallellt i slumpvis ordning
Lasttestning hur? Testet 6 kartvisarapplikationer GetMap (i olika skalintervall) Zoom in Pan GetFeatureInfo Totalt 16 WMS-lager
Varje script utför: Välj kartvisare Zooma in Aktivera lager GetFeatureInfo Byt kartvisare
Lasttesting Geoserver/PostgreSQL JAI, Java Advanced Imaging Java JAI Native JAI Java parametrar Minnesinställningar Indexering Geometrier + filter attribut PostgreSQL parametrar
Geoserver inställningar JAI & JAI Image I/O Java Advanced Imaging Default installation använder java klassbibliotek för att generera bilder Relativt långsamt Native JAI installerat på maskinen Snabbt Finns som färdigkompilerade installationspaket för de vanligaste operativsystemen
Lasttest Java JAI Resultat av lasttest Java JAI -Xmx1024 Svarstider 1450 ms
Lasttest Native JAI Resultat av lasttest Native JAI -Xmx1024 Svarstider 1230 ms
Geoserver Java inställningar Geoserver körs på dedikerad Tomcat instans Java parametrar Optimering av JVM Minnesinställningar -Xmx 512 -Xmx 1024 -Xmx 1536 -Xmx 3072
Lasttest Xmx 512 Resultat av lasttest -Xmx 512 Svarstider 2180 ms
Lasttest Xmx 1536 Resultat av lasttest -Xmx 1536 Svarstider 1170 ms
Lasttest Xmx 3072 Resultat av lasttest -Xmx 3072 Svarstider 1110 ms
PostgreSQL inställningar Indexering Index på geometrikolumnen för alla gis-dataset Index på attribut som används av SLD för symbolisering Ex. utdrag ur SLD med filter på ett attribut för symbolisering <ogc:filter> <ogc:propertyisequalto> <ogc:propertyname>symbol</ogc:propertyname> <ogc:literal>100</ogc:literal> </ogc:propertyisequalto> </ogc:filter>
PostgreSQL parametrar shared_buffers Anger hur mycket minne databasservern använder till shared memory buffers 800MB (24MB default ) effective_cache_size Används till frågeoptimeringen (sql-frågor) 4000MB (128MB default)
Lasttest PostgreSQL Lasttest resultat Ingen skillnad i svarstider Stor skillnad i NFS-anrop till filsystemet Från > 200 000 /sek till < 40 000 /sek (nfs calls get_attr) Beror på shared_buffers och effective_cache_size parametern
Optimering kvar att testa Komprimera Javascript PostgreSQL parametrar GeoWebCache
Erfarenheter ( ) Kostnader tid för utveckling och anpassning Gäller även kommersiella produkter Olika grad av dokumentation inom OS-projekten Livslängd, aktivitet och uppdateringsfrekvens Kompetens behöver finnas tillgänglig Gäller även kommersiella produkter
Erfarenheter (+) Gratis - inga licenskostnader Det finns tillgång till kända och aktiva Opensourceprodukter Ubuntu Linux, postgresql.org, postgis.refractions.net, apache.org, geoserver.org, openlayers.org, mapfish.org, extjs.com, Kompetens byggs upp Följer standarder bra
Open source Apache Tomcat (http://tomcat.apache.org) OSGeo GeoServer (http://geoserver.org) Refractions Research PostGIS (http://postgis.refraction.net) PostgreSQL (http://www.postgresql.org) Ubuntu (http://ubuntu.se) Webbfront Kartserver Databas