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
• ”Blackbox”
– OS
– Linux Ubuntu LTS
– Mapserver
– OneGeology – Europé
– WMS 1.3
– …
Webbfront
– PostgreSQL 8.3.8 / PostGIS 1.3.5
Kartserver
Databas
Systemarkitektur – ny plattform
• Alla maskiner körs virtualiserat
NginX
Blackbox
Reverse proxy
MapServer
Web/app server
1GE - Europe
Tomcat 6.0
sgu.se
kartvisare
…
…
Kartserver
Databas
Tomcat 6.0
GeoServer 1.7.7
PostgreSQL+PostGIS
Deegree 2.3
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
–
–
–
–
http://grinder.sourceforge.net/
2 maskiner
30 användare per maskin (60 samtidiga användare)
30 minuter
6 testscript körs parallellt i slumpvis ordning
• 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