GIS och Opensource @ SGU Jonas Holmberg & Johan Olsson
Nuvarande webbplattform Webb- & applikationsserver Apache 2 & Tomcat 4.1 och 5.5 Solaris 8 Kartserver ArcIMS 9.1 / 9.2 & WMSConnector 9.1 / 9.2 Geoserver 1.7.6 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 Många beroenden mellan systemkomponenter Licenskostnader Prestanda
Enter Open Source
Operativssystem ny plattfrom Ubuntu LTS En Linuxdistribution som bygger på Debian 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 Webbfront Kartserver Databas
Applikations- & webbserver ny plattform Tomcat 6.0.x Java 1.6.x Webbgränssnitt för deploy och admin Webbfront Kartserver Databas
Webbfront www.sgu.se NginX som reverse proxy Tomcat 6.0.x som applikationsserver OpenCMS - webbpubliceringssystem Egenutvecklade webbapplikationer Kartvisare Inmatningsapplikationer såsom DGV, Brunnsarkivet mm. Webbfront Kartserver Databas
Kartserver ny plattform Tomcat 6 GeoServer 1.7.7 WMS 1.1.1 & WFS 1.1 Bra admingränssnitt Deegree 2.3 (test av WMS 1.3/WFS 1.1) Webbfront Kartserver Databas
Databasserver ny plattfrom PostgreSQL Objekt-relationsdatabas Bra administratörsgränssnitt (PGAdmin) PostGIS - spatiellt tillägg till PostgreSQL PostGIS följer OpenGIS Simple Feature for SQL complient spatial database Kan lagra punkter, linjer, polygoner, multipoint, multiline, multipolygon, geometrycollections OGC WKT (Well-Known Text) and WKB (Well-Known Binary) Webbfront Kartserver Databas
Systemarkitektur ny plattform OS Linux Ubuntu LTS Webb- & applikationsserver Tomcat 6 Kartserver Tomcat 6 GeoServer 1.7.7, WMS 1.1.1 (Deegree 2.3, WMS 1.3 /WFS 1.1) Databasserver PostgreSQL 8.3.8 / PostGIS 1.3.5 Blackbox OS Linux Ubuntu LTS Mapserver OneGeology Europé WMS 1.3 Webbfront Kartserver Databas
Systemarkitektur ny plattform Alla maskiner körs virtualiserat NginX Reverse proxy Blackbox Web/app server Tomcat 6.0 sgu.se kartvisare MapServer 1GE - Europe Kartserver Tomcat 6.0 GeoServer 1.7.7 Deegree 2.3 Databas PostgreSQL+PostGIS
Test- och produktionsmiljö Produktions- och testmiljö identiska Tre testmaskiner (prestanda och funktionalitet) webbfront kartserver databas Testmiljön kopieras för att skapa produktionsmiljön Alla maskiner i ett virtualiserat kluster Finns även en utvecklingsmiljö Webbfront Kartserver Databas
Optimering och testning Lasttestning Konfigurering av bild / rastergenerering Minnesoptimering Indexering PostgreSQL parametrar
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? The Grinder Opensource projekt Java applikation Scriptbaserad konfigurering (Python) Möjlighet att spela in script Inställningar 2 maskiner 30 användare per maskin (60 samtidiga användare) 30 minuter 6 testscript körs parallellt i slumpvis ordning http://grinder.sourceforge.net/
Testfall 6 kartvisarapplikationer GetMap (olika skalor) Zoom in Pan GetFeatureInfo Totalt 16 WMS-lager Varje script utför: Välj kartvisare Zooma in Aktivera lager GetFeatureInfo Byt kartvisare
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
Tomcat 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
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 exempel 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 Resultat Java JAI Svarstider => ca 1550 ms Native JAI Svarstider => ca 1280 ms PostgreSQL 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
Lasttest Resultat Minnesinställningar för JVM Xmx 512 Svarstider => ca 2200ms Xmx 1024 Svarstider => ca 1280 ms Xmx 1536 Svarstider => ca 1180 ms Xmx 3072 Svarstider => ca 1110 ms
Kartvisarapplikationen Egen utveckling med olika Opensource komponenter OpenLayers För WMS-tjänsterna (GetCapabilities, GetMap & GetFeatureInfo) Mapfish/GeoExt Koppling mellan lagerlistan och kartans lager Verktyg och interaktion med kartan ExtJS Layout JSP/Servlet
Kvar att göra / lösa GeoServer 2.1.x? WMS 1.3? WFS 2.0? Testa Deegree 3 WMS 1.3? Klientapplikationer Javascript intensiva klienter blir tunga, många KB Komprimera Javascript JavaScript svårt att debugga hitta testmetoder?
Erfarenheter ( ) Kostnader tid för utveckling och anpassning Gäller även kommersiella produkter Olika grad av dokumentation inom OS-projekten Support ofta hänvisad till forum av olika kvalitet Livslängd, aktivitet och uppdateringsfrekvens Kompetens behöver finnas tillgänglig Gäller även kommersiella produkter Spretighet kan uppstå vid användning av många olika produkter Gäller även kommersiella produkter
Erfarenheter (+) Gratis - inga licenskostnader Flexibelt tillgång till källkod 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, geoext.org, extjs.com, deegree.org Kompetens byggs upp Följer standarder bra
?
Extra
Open source Apache Tomcat (http://tomcat.apache.org) OSGeo GeoServer (http://geoserver.org) Deegree (http://deegree.org) Refractions Research PostGIS (http://postgis.refraction.net) PostgreSQL (http://www.postgresql.org) Ubuntu (http://ubuntu.se) Webbfront Kartserver Databas