Prestandatester av WMS och WFS En jämförelse av tre geospatiala servermjukvaror med öppen källkod Performance testing of WMS and WFS A comparison of three open source geospatial server software products Johan Glimmersten Fakultet: Fakulteten för hälsa, natur- och teknikvetenskap Ämne/Utbildningsprogram: Högskogeingenjörsprogrammet i lantmäteriteknik och geografisk IT Nivå/Högskolepoäng: C-uppsats 15hp Handledare: Kristina Eresund Examinator: Jan-Olov Andersson Datum: 2015-05-31 Löpnummer: 2015:5
Sammanfattning Entusiasmen kring gratismjukvaror med öppen källkod tycks ha ökat under 2000-talet då allt mer öppen källkod blivit tillgänglig på nätet. Sådana programvaror är intressanta för aktörer inom både privat och offentlig sektor då kostnader för mjukvarulicenser kan minskas. Simultant med denna utveckling har datalagring i tjänsteorienterade arkitekturer blivit vanligare. Foran Sverige är ett företag som bland annat erbjuder geografiska fjärranalysprodukter. Deras system för distribuering av karttjänster bygger idag på mjukvara med proprietär källkod som innebär höga licenskostnader, därför vill de se på möjligheterna att migrera till ett system med kostnadsfria mjukvaror. För att bidra med beslutsunderlag till Foran och andra verksamheter som ser till möjligheterna att migrera har ett antal mjukvaror för distribution av karttjänster valts ut och genomgått prestandatester. Det är också viktigt att det administrativa gränssnittet i mjukvarorna är relativt enkelt att använda. Programvaran JMeter har använts för att belastningstesta tre olika geospatiala servermjukvaror med öppen källkod vid leverans av standarderna Web Map Service (WMS) och Web Feature Service (WFS). Ett antal vanliga dataformat med varierande lagringsvolym valdes ut som testdata. QGIS server hade nästan genomgående den högsta överföringshastigheten vid test av WMS. I kontrast presterade QGIS sämst vid test av WFS med lägst överföringshastighet och tillsammans med MapServer levererades stundtals ett högt antal felaktiga responser vid 30 respektive 60 simulerade användare. GeoServer presterade mest kontinuerligt vid de olika datakällorna och hade genomgående den högsta överföringshastigheten vid test av WFS. De administrativa gränssnitten hos GeoServer och QGIS anses båda vara lätta att använda medan MapServer är betydligt svårare då karttjänstens alla parametrar definieras i ett textbaserat gränssnitt. Nyckelord: Öppen källkod, Karttjänst, WMS, WFS, Prestanda
Abstract The enthusiasm for free and open source software has increased since the year 2000 as more open source code has become available online. Such software is interesting for both public and private sector as license expenses can be significantly reduced. Along with this development, storing data in service oriented architectures has become a more common procedure. Foran Sweden is a company that provides geographical remote sensing products. Their existing system for supplying customers with map services is based on proprietary software which leads to high license expenses. Consequently, Foran Sweden aim to migrate to a system based on free and open source software. In order to provide Foran Sweden and other comparable, with sufficient material for decision making, this work will compare a number of open source geospatial server software products with emphasis on performance. It is also important that the web services are easy to manage and administrate. Apache JMeter has been used to perform the performance tests on three widely used software products that can handle the standards of Web Map Service (WMS) and Web Feature Service (WFS). A number of common data formats with varying storage size were used to test the software products. QGIS server performed best in 10 out of 12 scenarios for WMS. In contrast QGIS was the slowest while testing WFS, and together with MapServer, they generated a high number of server errors while simulating 30 and 60 users. GeoServer was the quickest and most stable software for WFS and showed good performance in all scenarios with every dataset. The administrative interfaces of GeoServer and QGIS are both easy to learn and manage while MapServer uses a text-based interface for the management of web services, which requires more effort from the administrator. Keywords: Open Source, Map Service, WMS, WFS, Performance
Förord Detta arbete har gjorts i samarbete med Foran Sverige AB där Pär Lönnerhed och Rikard Hedberg agerat handledare och varit ett bra stöd igenom hela arbetet. Därtill har Foran Sverige bistått med resurser i form av en molnserver och en klientmaskin som varit en vital del i den testmiljö som ligger till grund för resultaten. Detta vill jag tacka dem för. Kristina Eresund har varit handledare från universitetets sida och varit ett bra stöd i skrivprocessen, tack för det.
Innehållsförteckning 1. Bakgrund... 12 2. Problemformulering... 2 2.1 Frågeställningar... 3 2.2 Avgränsningar... 3 3. Teori... 3 3.1 Karttjänster och servermjukvaror... 3 3.1.1 Web Map Service... 5 3.1.2 Web Feature Service... 6 3.2 Öppen källkod... 7 3.3 Datakällor... 7 3.4 Servicekvalitet... 8 3.5 Belastningstester... 9 3.5.1 Apache JMeter... 10 4. Tidigare forskning... 10 5. Testmiljö... 11 5.1 Servermjukvaror... 12 7.2 Ingående data... 13 5.3 Konfiguration... 14 6. Metodik... 15 6.1 Administrativa gränssnitt... 15 6.2 Belastningstester... 15 6.2.1 WMS-tester... 15 6.2.2 WFS-tester... 17 7. Resultat... 18 7.1 Tester... 18 7.1.1 WMS... 18 7.1.2 WFS... 21 8. Analys... 24 8.1 WMS... 24 8.2 WFS... 24 8.3 Administrativa gränssnitt... 25 9. Diskussion... 25 10. Slutsats... 27 11. Referenser... 29
Bilaga 1... 31 Bilaga 2... 32 Bilaga 3... 33 Bilaga 4.... 35 Bilaga 5... 36 Tabellförteckning Tabell 1. Grundläggande information om de utvalda mjukvarorna.... 12 Tabell 2. Egenskaper för ingående data.... 13 Tabell 3. Tekniska egenskaper för de datorer som använts.... 14 Tabell 4. Antalet anrop från varje trådgrupp vid test av WMS.... 16 Tabell 5. Parametrar som definieras i anrop för test av WMS.... 17 Tabell 6. Antalet anrop från varje trådgrupp vid test av WFS.... 17 Tabell 7. Parametrar som definieras i anrop för test av WFS.... 18 Tabell 8. Överföringshastigheter i kb/s för de olika mjukvarorna och datamängderna.... 18 Tabell 9. Överföringshastigheter i kb/s för de olika mjukvarorna och datamängderna.... 21 Figurförteckning Figur 1. Exempel på konfiguration vid användning av klient-serverteknik.... 4 Figur 2. Överblick av konfigurationen.... 14 Figur 3. Överföringshastigheter vid hämtning PostgreSQL (PostGIS)... 19 Figur 4. Överöringshastigheter vid hämtning av Shape.... 20 Figur 5. Överföringshastigheter vid hämtning av GeoTIFF.... 20 Figur 6. Jämförelse av standardavvikelse för korrelationskoefficienter.... 21 Figur 7. Överföringshastigheter vid hämtning av Test-ID 1.... 22 Figur 8. Överföringshastigheter vid hämtning av Test-ID 2.... 22 Figur 9. Överföringshastigheter vid hämtning av Test-ID 3.... 23 Figur 10. Överföringshastigheter vid hämtning av Test-ID 4.... 23
1. Inledning Kostnadsfria applikationer med öppen källkod, så kallade Free and Open Source Software (FOSS) har under 2000-talet setts öka (Deshpande & Riehle 2008). Migration från programvara med proprietär källkod till FOSS har framförallt skett inom statliga och kommunala verksamheter. I en proposition från Sveriges Regering 2004 uppmuntras statliga och kommunala verksamheter att använda sig mer av FOSS (Regeringen 2004), då dessa har ett ansvar gentemot befolkningen för hur skattemedel används (Andersson 2014), utan att kompromissa med funktionalitet. Intresset för öppen källkod finns även inom den privata sektorn där minskade kostnader för licenser är en bidragande orsak. Dock är det mycket viktigt för en leverantör av ett system, vid övergång till FOSS, att användarna kan garanteras likvärdig stabilitet och prestanda som i det tidigare systemet. Samtidigt med den ökade användningen av FOSS så har utvecklingen inom informationsteknik gjort att datalagring i så kallade tjänsteorienterade arkitekturer blivit allt vanligare (Friis-Christensen 2006; Sahlin 2008). Detta inkluderar geografisk information som allt mer tillhandahålls i form av karttjänster. Karttjänsterna möjliggör åtkomst till data via webben och gör på så vis informationen mer lättillgänglig. Web Map Service (WMS) och Web Feature Service (WFS) är två av de vanligaste standarderna för leverans av geografisk information på webben. De är utvecklade av den icke vinstdrivande organisationen Open Geospatial Consortium (OGC) som består av ett hundratal aktörer inom branschen för geografiska informationssystem (GIS). OGC arbetar för att möjliggöra samverkan och skapa interoperabilitet mellan olika leverantörer och användare av geografisk information (OGC 2015). Vid användning av ett system baserad på proprietär källkod riskerar användaren att låsa sig till en leverantör. För att ett enhetligt system ska fungera så begränsar ibland leverantörer användares möjlighet att arbeta med andra programvaror än leverantörens (Andersson 2014). Det finns vissa risker med att migrera från en lösning baserad på proprietär källkod till en byggd på öppen källkod. Dessa risker kan inbegripa att: - Det oftast saknas garantier för att systemet ska fungera i just den avsedda verksamheten. 1
- Det ofta saknas supportgaranti. För att kunna upprätthålla kvaliteten gentemot användare av det nya systemet krävs noggranna undersökningar och tester innan migration. Foran Sverige är ett företag som erbjuder tjänster inom skogliga och biologiska analyser samt en rad GIS- och fjärranalysprodukter. De kartprodukter som erbjuds publiceras i ett webbaserat GIS med hjälp av karttjänster. Detta gör att kunderna får åtkomst till informationen och kan dessutom redigera och göra utsökningar i data via det grafiska användargränssnittet. Forans nuvarande lösning för publicering av karttjänster bygger på proprietär programvara i form av ESRI-produkter. Foran vill nu undersöka möjligheterna att migrera till ett system baserat på FOSS. För Foran är det av största vikt att behålla funktionaliteten som möjliggör för kunderna att redigera och söka i data. Därför kommer detta arbete att fokusera på tjänsterna WMS och WFS. Standarden WMS används endast för visualisering av kartdata medan WFS tillåter redigering och utsökning av specifika objekt eller delmängder från den publicerade datamängden. Förutom krav på bibehållen funktionalitet och prestanda vid övergång till FOSS, finns även krav på att en lösning baserad på FOSS ska vara lika stabil som den nuvarande lösningen. Den programvara som idag används av Foran för publicering av karttjänster är användarvänlig gentemot den som administrerar tjänsterna, då det finns en bra relation mellan servermjukvara och skrivbordsprogramvara. Det är viktigt att den nya programvaran också är lätt att lära sig och lätt att använda vid hantering av karttjänster. 2. Problemformulering Syftet med detta arbete är att bidra med beslutsunderlag till Foran som ser till möjligheterna att migrera från en proprietär lösning för distribuering av karttjänster till en lösning baserad på FOSS. Det svåra vid byte av mjukvarusystem är att rätt mjukvara väljs, att kunna garantera fortsatt stabila tjänster till sina kunder samt att administration av tjänsterna kan ske effektivt. Tester och jämförelser av ett antal spatiala servermjukvaror under kategorin FOSS kommer genomföras. Varje programvaras prestanda och stabilitet ska undersökas vid distribuering av tjänstetyperna WFS och WMS. Kvantifiering av stabilitet och prestanda kommer ske enligt ramverket för servicekvalitet, från engelskans Quality of Service (QoS). Därtill kommer 2
tillvägagångssätt för hantering av karttjänster i de olika mjukvarorna jämföras då det är viktigt för administratören att på ett effektivt sätt skapa och uppdatera karttjänster. 2.1 Frågeställningar Frågeställningarna som ligger till grund för arbetet är följande: Vilken av de utvalda mjukvarorna för skapande av karttjänster under kategorin FOSS har bäst prestanda, och kapacitet och vid distribuering av WMS respektive WFS? Finns det betydande skillnader i hur administrering av karttjänster går till i de utvalda mjukvarorna? Finns det skillnader i prestanda och stabilitet mellan de utvalda datamängderna vid leverans av WMS respektive WFS? 2.2 Avgränsningar I denna studie kommer endast tre servermjukvaror att testas och jämföras. Dessa är noga utvalda och grundar sig på hur använda och utvecklade de är och ryktet de har i branschen. Användarvänligheten i mjukvarorna kommer bedömas utifrån ett GIS- och informationsteknikmässigt perspektiv. Därav kommer det förutsättas att målgruppen besitter grundläggande kunskap inom GIS och informationsteknik. På grund av begränsade resurser i form av hårdvara och ekonomi, kommer testerna endast att utföras på Windows-baserade operativsystem. 3. Teori 3.1 Karttjänster och servermjukvaror The Open Geospatial Consortium (OGC) är en internationell organisation som utvecklar standarder för geografiska data på webben. Organisationen består av 507 (OGC 2015) företag, statliga myndigheter och universitet som alla bidrar till utvecklingen av standardiserade webbtjänster (Reed 2011 refererad i Bauer 2012). OGC-standarder främjar interoperabilitet mellan system genom att göra standarderna webbaserade och på så sätt oberoende av plattform och programmeringsspråk (Giuliani et al. 2013). Exempel på tjänster som har standardiserats inom OGC är WMS och WFS. Data från en OGC-webbtjänst hämtas genom ett anrop enligt protokollet HTTP (Hypertext Transfer Protocol), en vanlig webbadress 3
(Giuliani et al. 2013) och gör därmed data tillgänglig för enheter med uppkoppling till internet. Dessa enheter kan utgöras av en webbläsare alternativt en skrivbordsprogramvara. Ett system som tillhandahåller OGC-webbtjänster bygger på klient-serverteknik (Bauer 2012). Klienten är den som använder tjänsten och servern är den del som tilldelar klienten information. När klienten gör ett HTTP-anrop till servern så hämtar den geografiska servermjukvaran de data som efterfrågats, därefter översätts informationen till det önskade formatet och skickas sedan till klienten (Figur 1). Figur 1. Exempel på konfiguration vid användning av klient-serverteknik. Servermjukvaror som används för tillhandahållande av karttjänster har funktioner för hantering av lägesbundna data. De använder sig av konventionella servermjukvaror såsom Jetty, Lighthttpd och Apache med bakomliggande funktionalitet för geografiska data (Agrawal & Gupta 2014). Det finns funktionalitet för att läsa och skriva i både raster- och vektorformat, SQL-frågor till spatiala databaser (Ballatore et al. 2011), rasteroptimering etc. Vidare så finns det vissa modifikationer som kan göras för att öka prestandan hos en servermjukavara vid flera simultana användare. Common Gateway Interface (CGI) är ett protokoll och en viktig komponent i webbservermjukvaror som möjliggör kommunikation med andra program på samma dator. Med hjälp av CGI kan webbservermjukvaran använda klientens parametrar för att uthämta önskad information ur andra programvaror, exempelvis 4
databaser (Gundavaram 1996). När en webbserver hämtar information från en databas startas en process i operativsystemet. När informationen har hämtats bryts kopplingen mellan webbservern och databasprogrammet och processerna avslutas. Fast CGI är en utveckling av CGI-protokollet som möjliggör för webbserver och andra program att bevara kopplingen för datautbyte och därmed hålla processerna igång som bakgrundsprocesser. Detta gör att nya kopplingar och processer inte behöver skapas för varje anrop som görs, vilket kan förbättra prestandan, i synnerhet vid flertalet simultana användare (Warmerdam & Butler 2008). 3.1.1 Web Map Service Web Map Service (WMS) är en internationell OGC-standard som via ett HTTP-gränssnitt genererar och utdelar georefererade bilder som klienten kan använda för visualisering (OGC 2006). HTTP-anropet kan ta en rad parametrar där klienten bland annat kan definiera vilken geografisk utsträckning som ska hämtas och vilken upplösning och format som de returnerade bilderna ska ha. Nedan följer ett HTTP-anrop som hämtar ett raster som innehåller skogens höjd ( skogshojd ) i formatet PNG med en definierad upplösning för ett specifikt geografiskt område. Utöver PNG kan även andra bildformat såsom JPEG, GIF och TIFF efterfrågas. Anrop för att hämta en bild över ett definierat geografiskt område: http://<serveradress>/geoserver/test_postgis/wms? service=wms &version=1.1.0 &request=getmap &layers=test_postgis:skogshojd &bbox=563000.0,6610500.0,563500.0,6611000.0 &width=2000 &height=2000 &srs=epsg:32632 &format=image/png Metadata för tjänsten kan hämtas genom att använda parametern GetCapabilities istället för GetMap. Metadata innehåller information om vilka lager som finns i tjänsten samt dess egenskaper. Anrop för att hämta metadata: http://<serveradress>/geoserver/test_postgis/wms? service=wms &version=1.1.0 &request=getcapabilities 5
WMS är den standard som används mest frekvent i kartapplikationer och är enligt Bauer (2012), väl utvecklad och beprövad. Det finns inte möjlighet att ställa avancerade frågor eller editera WMS-tjänster från klientsidan men det är en ypperlig tjänst för att visualisera geografiska datamängder. 3.1.2 Web Feature Service Web Feature Service (WFS) är en internationell OGC-standard som på samma sätt som WMS-tjänster anropas genom ett HTTP-gränssnitt. Skillnaden är att servermjukvaran här utdelar kod som beskriver de spatiala data som efterfrågats med koordinater för varje brytpunkt. Det vanligaste formatet är Geography Markup Language (GML) (OGC 2002) som även det är en OGC-standard för att beskriva lägesbundna data, baserad på Extensible Markup Language (XML). Version 1.0.0 av WFS använder GML version 2 och de senare, 1.1.0 och 2.0.0 använder GML version 3. Skillnaden mellan GML-versionerna ligger främst i en utökad uppsättning parametrar och diverse funktioner såsom topologiska relationer. Vidare kan format såsom JSON, Shape och CSV kan också utdelas av vissa servermjukvaror såsom GeoServer (GeoServer 2015). WFS-tjänster tillåter klienten att formulera frågor och hämta ut specifika objekt. Detta görs med ett filter och formuleras i HTTP-anropet. Dessutom finns det möjlighet att använda Web Feature Service Transaction (WFS-T) som möjliggör för klienten att redigera, addera och radera objekt och därefter spara ändringarna (OGC 2002). Det finns vissa problem med publicering av stora WFS-tjänster då stora mängder data måste utbytas mellan klient och server. Det finns några olika lösningar på problemet. "Chunked transfer encoding" är en teknik som gör att data hämtas i mindre bitar (Swaminathan & Wei 2011). Istället för att klienten gör ett anrop som hämtar 20 000 objekt så kan tjugo anrop göras där 1000 objekt hämtas åt gången. En annan lösning är att WFS-data börjar hämtas vid en viss skala. Dessa tekniker kan kombineras med varandra och med generalisering av geometrier i form av aggregering av objekt vid mindre skalor. Nedan följer ett exempel på ett WFS-anrop med ett filter som möjliggör för användare att endast hämta ut specifika objekt eller delmängder av de data som finns en datamängd. Servermjukvaran svarar med det givna formatet GML version 3, därefter kan klientens 6
programvara rendera de vektordata som erhållits. Exempel på ett WFS-anrop med filter: http://<serveradress>/geoserver/wfs? SERVICE=WFS &VERSION=1.1.0 &TYPENAME=test_postgis:bestand_f_subset &REQUEST=GetFeature &outputformat=gml3 &FILTER=<Filter><PropertyIsEqualTo><PropertyName>best_delnr</Propert yname><literal>2</literal></propertyisequalto></filter> 3.2 Öppen källkod Richard Stallman införde 1984 en ny programvarulicens kallad GNU General Public License (GNU GPL) (Henley & Kemp 2008). Denna licens skapades då han med många andra ansåg att proprietär källkod begränsade användningen och utvecklingen av mjukvaror. De programvaror som licensieras under GPL ska vara fritt tillgängliga, det vill säga källkod ska finnas tillgänglig och mjukvara ska kunna kopieras, modifieras och spridas fritt (GNU 2007). 1988 upprättades Open Source Iniative (OSI) där definitionen av öppen källkod som används idag formades. Definitionen finns i sin helhet på http://www.opencource.org och innefattar bland annat: Fri spridning: Mjukvaran ska kunna kopieras och spridas utan extra kostnad. Källkod: Källkod för mjukvaran ska finnas fritt tillgänglig. Modifikationer: Modifikationer av mjukvara ska vara tillåtet. Dessutom ska modifikationerna kunna använda samma licens som originalkoden. Respekt för utvecklarens kod: Originalkod från den mjukvara som modifierats ska finnas tillgänglig för att skilja inofficiella versioner från den mjukvara som modifieringen härstammar från. Diskriminering: Licensen får inte diskriminera vare sig personer, grupper eller verksamhetsområden. 3.3 Datakällor Vid distribution av karttjänster med hjälp av WMS och WFS, används servermjukvaran som ett filter där datakällans information översätts till något som klienten kan läsa. Generellt sett 7
finns det två sätt att lagra data, i en databas eller på fil. Det vanligaste sättet att lagra stora mängder geografisk information är i databaser. En databas är en samling digitala data som modellerar verkligheten där all information lagras i tabeller (Padron-McCarthy 2005). Fördelen med databaser är att klienter enkelt kan hämta data genom att formulera frågor. Frågorna formuleras i programspråket Structured Query Language (SQL) som är ett standardiserat frågespråk utvecklat för att hantera data i en relationsdatabas. Andra fördelar med att lagra data i en databas är att flera användare kan redigera och hämta data samtidigt. Detta skiljer sig från att lagra data i filer. Filer kan finnas i olika format, det vill säga att data i filen lagras på olika sätt beroende ändamålet och vilka programvaror som ska läsa filen. Detta ger både för- och nackdelar då formatet kan modifieras till önskat användningsområde men också skapa problem med interoperabilitet. Dessutom är det svårare att gardera sig mot redundans och strukturella fel om flera filer ska lagras då det inte finns möjlighet att relatera filerna till varandra på ett bra sätt. Information från filer kan oftast inte editeras av flera användare samtidigt då programvaror låser filerna när de används. 3.4 Servicekvalitet Ett av webbtjänstleverantörers mål är att ge användarna en så bra upplevelse som möjligt av tjänsten. Tjänsten ska inte bara vara grafiskt tillfredställande utan dessutom stabil och snabb. Leverantören kan försäkra sig om detta genom att utföra belastningstester på webbtjänsten innan lansering eller innan en uppdatering. Det finns vissa svårigheter med att bedöma användarens upplevelse av en tjänst då upplevelsen dels beror på serverns prestanda men självklart också användarens egen program- och hårdvara samt uppkoppling. Vid belastningstester förväntas begränsningar upptäckas i webbtjänsten, eventuella flaskhalsar och andra problem. En tjänst kan inte vara snabbare än sin långsammaste komponent, därför är det viktigt för webbtjänstleverantörer att upptäcka begränsningar i tjänsten så att rätt delar av systemet uppgraderas om tjänsten skulle komma att belastas hårdare. Quality of Service (QoS) är ett ramverk med mätbara variabler som utgör en webbtjänsts kvalitet (Simonis & Sliwinski 2005). Detta ramverk förenklar bedömningen av en tjänsts prestanda då kvantitativa attribut är lätta att jämföra och förstå (Giuliani et al. 2013). EUdirektivet INSPIRE använder detta ramverk för att beskriva de krav som tjänster under direktivet måste förhålla sig till (EU 2009). Prestanda är ett av attributen i ramverket. Prestanda beskriver hur lång tid det tar för användaren att erhålla ett svar på sitt anrop (Giuliani et al. 2013). Attributet kan även mätas genom att mäta hämtad datavolym under en 8
viss tid och därmed erhålla ett värde av formen datavolym per tidsenhet. En tjänsts kapacitet beskriver hur många användare som simultant kan anropa servern utan att tjänstens prestanda försämras (EU 2009). Detta görs genom att mäta tjänstens prestanda och förekomst av felaktiga responser vid ett ökande antal simulerade användare. Vid det användarantal där de båda variablerna försämras eller inte förändras finns tjänstens maximala kapacitet. Förekomst av felaktiga responser anger hur stor andel av en mängd anrop som ger felmeddelande från tjänsten (Horak et al. 2009). 3.5 Belastningstester Ett bra belastningstest måste återspegla verkligheten. Det är därför viktigt att den programvara som används för testning, testprogramvaran, beter sig så likt en vanlig användare som möjligt. Testprogramvaran anropar servern med ett HTTP (Hypertext Transfer Protocol)-anrop precis på samma sätt som en användare. Programvaran tar emot den efterfrågade informationen och registrerar de mätbara attributen. Dock är det viktigt att observera att testprogramvaror i regel inte behandlar den information som mottas från servern som en vanlig användare hade gjort. Vid testning av karttjänster används i regel principen Black Box Testing där den som utför testerna ser servermjukvaran som en svart och sluten låda utan insyn. Detta betyder att mjukvaran inte betraktas såsom utvecklaren ser den, utan som en användare hade betraktat den. Därmed återspeglar testerna verkligheten på ett bra sätt och dessutom är det lättare att upptäcka buggar och begränsningar. White Box Testning är det motsatta där den som utför testerna känner till eller har full insyn i källkoden till den programvara som ska testas och kan på så vis testa programvaran utifrån detta (Horak et al. 2009). Under de årliga eventen FOSS4G (Free and Open Source for Geospatial), arrangerat av organisationen OSGeo har det utförts prestandatester på olika servermjukvaror som kan hantera WMS (FOSS4G 2013). En genomtänkt metodik har använts men dessvärre är svagheten med dessa tester är att det inte finns någon utförlig sammanställd dokumentation kring dem, således är det vanskligt att använda resultaten i ett akademiskt arbete. Med det sagt så framgick det av de senaste testen 2011 att GeoServer presterade bäst vid hantering av WMS (FOSS4G 2011). I många av testerna som utförts så uppmärksammas specifika begränsningar i mjukvarorna och på så sätt får utvecklarna en bra indikation på vad som behöver förbättras. 9
3.5.1 Apache JMeter Apache JMeter är en gratismjukvara med öppen källkod som utför prestandatester mot både statiska och dynamiska källor, det vill säga FTP servrar, databaser, applikationer skrivna i PHP, Java, ASP.NET etc. (Apache JMeter 2015). Ett grafiskt användargränssnitt finns tillgängligt och gör det enkelt att skapa så kallade testplaner. En testplan innehåller en eller flera trådgrupper som utför HTTP-anrop. En trådgrupp utgörs av ett definierat antal simulerade användare, så kallade trådar som alla anropar servern samtidigt. På så sätt kan prestandan mätas vid olika belastningsnivåer och vidare kan begränsande komponenter i systemet urskiljas. Trådgrupperna körs sekventiellt och möjliggör för körning av flertalet tester i samma testplan. Det är viktigt att känna till att JMeter inte är en webbläsare, således hanterar programmet inte responsen från servern utan tar endast emot den kod som annars klientens programvara hade behandlat. Detta gör att endast tjänstens prestanda mäts och programmet bortser följaktligen från klientens kapacitet att bearbeta den erhållna informationen. 4. Tidigare forskning En del forskning har gjorts kring WMS, dess prestanda och kvalitet främst enligt INSPIREdirektivet. Horak et al. (2009) utförde tester på geoportaler skapade under INSPIRE direktivet, men utan att testa någon specifik mjukvaras prestanda. Giuliani et al. (2013) genomförde en studie där prestanda för WFS och Web Coverage Service (WCS) testades. För att utföra testerna användes Apache JMeter med testplaner från WMStesterna som utförts vid FOSS4G-eventen. Testplanerna modifierades för att kunna användas i WFS-testerna. Prestatandan hos ArcGIS Server och GeoServer jämfördes och resultaten visade att GeoServer kan leverera data upp till tre gånger snabbare vid leverans av WFS. Även formatet på datakällor testades, där resultaten pekade på att ESRI file geodatabase vara det snabbaste formatet, tätt följt av både Shape och PostgreSQL. Bauer (2012) och Giuliani et al. (2013) är båda överens om att det inte bara är storleken på datamängden som avgör prestanda, utan också antalet objekt. Dessutom fungerar både GeoServer och ArcGIS server bra redan out of the box, alltså utan att göra några specifika mjukvaruinställningar efter installation. 10
Bauer (2012) studerade WFS-tjänsters robusthet genom prestandatester hos ett antal servermjukvaror och skrivbordsprogramvaror. Genomförandet av studien gick ut på att mäta tider för att erhålla hela datamängder där anropen gjordes med ett Python-skript. Det visade sig att GeoServer är snabbast tätt följd av MapServer som båda visar sig betydligt snabbare än ArcGIS server vid leverans av WFS. Vidare visade testerna också att mängden metadata inte spelar någon roll, däremot har mängden attribut en betydande påverkan på responstiderna. Bauers tester ska tas med viss reservation för fel då servermjukvarorna var installerade på olika datorer med olika hårdvarukonfigurationer. Friis-Christensen et al. (2006) studerade möjligheterna till användning av en serviceinriktad arkitektur som ska underlätta utvecklandet av applikationer och dessutom göra data mer tillgängligt. Slutsatserna av studien visade att WFS inte var särskilt lämpligt för många tillämpningar då stora datamängder måste utbytas mellan klient och server, dock önskar de vidare forskning inom området. Ballatore et al. (2011) utförde en kvantitativ studie där användare och utvecklare av geospatiala programvaror för webbpublicering fick svara på en enkät där huvuddelen av frågorna hade med användarvänlighet att göra. Variabler för användarvänlighet såsom dokumentation, inlärningskurva och support från community utforskades. Vidare fick respondenterna frågor kring upplevd stabilitet, standarder och prestanda. Resultaten av enkätundersökningen pekade på klar fördel för PostgreSQL med tillägget PostGIS gentemot MySQL. Totalt sett så ansågs enligt testerna MapServer tätt följd av GeoServer som den generellt bästa lösningen för publicering av karttjänster, främst på grund av dess upplevda prestanda. 5. Testmiljö För att besvara de frågor som ställts i frågeställningen så kommer tre kostnadsfria geografiska servermjukvaror med öppen källkod genomgå belastningstester vid distribution av WMS och WFS. Varje servermjukvara kommer att testas med flera olika datamängder för att undersöka prestandaskillnader vid användning av olika dataformat, storlekar på datamängder etc. 11
5.1 Servermjukvaror De spatiala servermjukvaror som valts ut i denna studie är några av de mest använda med öppen källkod. Urvalet grundar sig främst på ryktet de olika mjukvarorna har i branschen. Tabell 1 innehåller grundläggande information om de servermjukvaror som ska undersökas. Tabell 1. Grundläggande information om de utvalda mjukvarorna. Kategori GeoServer MapServer QGIS Server Webbsida http://geoserver.org http://mapserver.org http://qgis.org/en/site Plattformar Linux, Windows, Mac OS X Linux, Windows, Mac OS X Licens GNU GPL Egen GNU GPL Linux, Windows, Mac OS X Gränssnitt Grafiskt Text Grafiskt (QGIS desktop) Antal utvecklare 107 56 50* Senast stabila version 2.7.0 (2015/03/21) 6.4.1 (2014-01-02) 2.8.1 (n/a)* Webbserver Jetty Apache m.fl. Apache, Lighttpd m.fl. Implementeringsspråk Java C / C++ C++ WMS version** 1.3.0 1.3.0 1.3.0 WFS version** 2.0.0 2.0.0 1.0.0 * Avser Quantum GIS project som QGIS server är en del av. ** Avser senast stödda versionen. GeoServer är ett Java-program och är därför beroende av att java finns installerat i det system som ska användas. Utvecklarna rekommenderar Java 7 som också används i denna studie. Konfigurationen som använts i detta arbete baseras på en 64-bitars version av java som enligt Pumphrey (2008) försämrar prestandan hos GeoServer, dock bara med ett fåtal procent. Vidare finns det vissa modifikationer som kan göras med de olika programvarorna för att öka dess prestanda. Både QGIS server och MapServer kan användas med FastCGI. QGIS använder protokollet redan från början medan vissa modifikationer behöver göras för att få det att fungera i MapServer, vilka har gjorts i detta arbete. Detta gör att mjukvarornas prestanda förbättras vilket bekräftats av Giuliani et al. (2013). Samtliga mjukvaror finns tillgängliga som 32-bitarsversioner, dock är det bara QGIS som har en 64-bitarsversion som kommer användas i denna studie. 12
7.2 Ingående data Valet av indata vid belastningstester av karttjänster är av stor betydelse. Olika typer av datakällor testas så att en god uppfattning kan fås om den övergripande prestandan av en servermjukvaras kapacitet att bearbeta information från olika källor. Vektordata som använts i studien beskriver bestånd av skog i södra Norge och rasterdata beskriver skogshöjd också detta i södra Norge. Ett antal vanliga dataformat har valts ut där varje datamängd används för att testa en parameter, se Tabell 2. All ingående data är projicerad i WGS 84 med det geodetiska datumet UTM Zone 32N. Likt Giuliani et al. (2013) så har ett basfall använts som testparametrarna utgår ifrån, se Tabell 2. Vektorformatet testas uteslutande med objekttyp polygon då datavolymen och komplexiteten hos ett GML-dokument endast beror på hur många brytpunkter, objekt och attribut en datamängd innehåller. Varje brytpunkt i en polygon, linje eller punkt blir en koordinat i det svar servern ger vid ett WFS-anrop, därför behöver objekttypen i sig inte vara av betydelse för hur snabbt servermjukvaran kan leverera data. Tabell 2. Egenskaper för ingående data. Namn Test - ID Objekttyp Dataformat Bestånd 1 Polygon PostgreSQL (PostGIS) Bestånd med data Bestånd (Delmängd) Bestånd som Shape (Delmängd) 2 Polygon PostgreSQL (PostGIS) 3 Polygon PostgreSQL (PostGIS) Antal Objekt Antal brytpunkter Datavolym (mb) Antal attribut 30405 4494940 55 14 - Testad parameter 30300 4499260 64 75 Fler attribut 4933 867810 10 14 Färre objekt 4 Polygon Shape 4933 867810 15 14 Shapeformat Skogshöjd 5 Raster GeoTIFF - - 1562 4* GeoTIFFformat * Avser bildens bitdjup med kanalerna Röd, Grön, Blå och Alpha. Tabellerna som finns i databassystemet kan indexeras och på så vis prestera bättre när information ska hämtas. Dock uppkommer problem med indexerade tabeller när tabellerna ska editeras och processen kan försinkas (Padron-McCarthy 2005). Index har inte skapats för tabellerna i denna studie då WFS och WFS-T ofta används simultant. 13
5.3 Konfiguration I Tabell 3 beskrivs egenskaperna för den konfiguration som ligger till grund för testerna. Endast två datorer används där den ena maskinen innehåller data och servermjukvaror, den andra är klienten där testprogramvaran körs. Det är viktigt att ha uppsikt över hur mycket de olika hårdvarukomponenterna arbetar vid olika belastningar då det finns en möjlighet att detektera den komponent som begränsar tjänstens prestanda. Apache JMeter används för att utföra prestandatester mot servern i de olika testscenariona. Figur 2 visar konfigurationen i sin helhet. Tabell 3. Tekniska egenskaper för de datorer som använts. Maskin Uppkoppling CPU Primärminne Sekundärminne OS Servermjukvara och datakällor 1 Gbit 4x Intel Xeon E5-2670 v2 2.6 GHz (Ivy Bridge) Klient 100 Mbit Intel(R) Core(TM) i5-4250u CPU @ 1.30GHz 1.90GHz 15 GB 2 x 40 GB Solid State Drive 16 GB 120 GB Solid State Drive Windows Server 2012 R2 Standard (64 bit) Windows Ultimate 7 N SP1 (64 bit) Figur 2. Överblick av konfigurationen. 14
6. Metodik 6.1 Administrativa gränssnitt Installation av programvaror och uppsättning av de karttjänster som använts i studien har gjorts av författaren själv. Detta gör att en uppfattning erhålls om hur användarvändliga och anpassningsbara de olika mjukvarorna är, dels vid skapande och ajourhållning av karttjänster men också vid installationen av dem. 6.2 Belastningstester För att garantera korrekt statistisk data så har alla tester utförts minst två gånger. Apache JMeter har använts för att utföra testerna och genom det grafiska gränssnittet har testplaner byggts upp. Testerna för WMS delas upp i nio olika testplaner där varje servermjukvara testas med varje datamängd. WFS-testerna delas in i tre testplaner, en för varje servermjukvara. Varje servermjukavara och datakälla testas sekventiellt med 1, 10, 30 samt 60 simultana användare. Prestanda och förekomst av felaktiga responser kommer att mätas. Prestandan kommer att mätas i nedladdad datavolym per tidsenhet som kilobyte per sekund. Detta gör att eventuella storleksskillnader i GML-dokumenten från de olika servermjukvarorna kan förbises då dessa ska vara av samma storlek men inte alltid är det. Detta beror på att servermjukvarorna kan utlämna information av olika detaljeringsgrad. Exempelvis vilken precision som ska användas för koordinater eller hur mycket metadata som används. Detta går att ställa in genom att konfigurera mjukvarans inställningar, men för att eliminera denna risk så används enheten kilobyte per sekund. Förekomst av fel kommer att mätas som andel felaktiga responser per trådgrupp. 6.2.1 WMS-tester Testplanen som använts för WMS-testerna är samma som FOSS4G använt i sina WMS-tester men med vissa modifikationer för att planen ska kunna användas med studiens ingående data. Testplanerna från FOSS4G finns fritt tillgängliga för nedladdning på deras hemsida. I denna studie har WMS version 1.3.0 testats då det är den senaste versionen, dessutom stöder samtliga av de utvalda mjukvarorna versionen. 15
Test-ID 3,4 och 5 (Se Tabell 2) används vid testerna för att undersöka mjukvarornas skillnader i överföringshastighet och stabilitet för de olika formaten. Varje simulerad användare gör 50 anrop. Antalet anrop för varje trådgrupp kan ses i Tabell 4. De parametrar som definieras i anropen redovisas i Tabell 5. Samtliga data hämtas med samma projektion som originaldata vilket medför att servern inte behöver beräkna parametrar för omprojicering. PNG (Portable Network Graphics) är ett bildformat som tillåter transparens och har därför använts vid testerna. Transparens är oftast nödvändigt om data från flera olika källor ska användas, dessutom ger PNG-formatet bilder av god kvalitet med överkomlig datastorlek. Gällande parametrar för utsträckning och bildstorlek så har 72 värden av respektive parameter slumpmässigt genererats och använts sekventiellt i de olika anropen. De slumpade värdena är samma vid alla tester. Bildernas höjd och bredd slumpas mellan 64 och 512 pixlar. För att generera slumpmässiga koordinater för bildens utsträckning på marken så väljs ett område för varje lager ut, där hela utsträckningen alltid kommer innehålla data. För Test-ID 5 används rastrets utsträckning på 5x5 km då rastret är rektangulärt. För vektordata väljs ett område på ca 15x10 km eftersom utsträckningen för objekten i datamängden inte är rektangulär. Den maximala utsträckningen för rastret Test-ID 5 kan därför bli 5x5 km och 15x10 km för vektordata. Den minimala utsträckningen för de båda datamängderna är 0,1x0,1 km. Tabell 4. Antalet anrop från varje trådgrupp vid test av WMS. Antal trådar (Trådgrupper) Antal anrop 1 50 10 500 30 1500 60 3000 Totalt 5050 16
Tabell 5. Parametrar som definieras i anrop för test av WMS. Parameter Beskrivning Värde Service Vilken typ av tjänst som ska hämtas. WMS Request Vilken typ av data som ska hämtas. GetMap Version Vilken version av tjänsten som ska hämtas. 1.3.0 SRS Vilken projektion som ska användas. EPSG:32632 Format Vilket format som ska hämtas. Image/png Layers Transparent Vilken eller vilka datamängder som ska användas. Anger om bilden ska få vara transparent eller inte. Varierar True Bbox Områdets verkliga utsträckning. Varierar Height Bildens höjd i pixlar. Varierar mellan 64 till 512 Width Bildens bredd i pixlar. Varierar mellan 64 till 512 6.2.2 WFS-tester De testplaner som använts vid testerna av WFS har skapats från grunden. Antalet anrop som görs av varje simulerad användare är 10, vidare information redovisas i Tabell 6. WFSversion 1.0.0 har använts då QGIS server inte stöder de senare versionerna. Skillnaderna mellan versionerna ligger främst i det att 1.0.0 använder GML version 2 och de senare använder GML version 3. Skillnaderna i versioner behöver nödvändigtvis inte betyda att prestandan förändras. De parametrar som definierats i anropen redovisas i Tabell 7. De data som använts för att testa WFS är Test-ID 1, 2, 3 och 4. Parametern MaxFeatures sätts till 1000 för Test-ID 1 och 2 och 500 för Test-ID 3 och 4. Detta gör att teknikerna för hämtning av WFS som nämnts i avsnitt 6.1.2 efterliknas. Tabell 6. Antalet anrop från varje trådgrupp vid test av WFS. Antal trådar Antal anrop 1 10 10 100 30 300 60 600 Totalt 1010 17
Tabell 7. Parametrar som definieras i anrop för test av WFS. Parameter Beskrivning Värde Service Vilken typ av tjänst som ska hämtas. WFS Request Vilken typ av data som ska hämtas. GetFeature Version Vilken version av tjänsten som ska hämtas 1.0.0 SrsName Vilken projektion som ska användas EPSG:32632 Typename Vilken datamängd som ska hämtas Varierar MaxFeatures Maximalt antal objekt som efterfrågas. Varierar mellan 1000 och 500 7. Resultat 7.1 Tester Studien syftar till att jämföra prestandan hos olika servermjukvaror, därför kommer testresultaten huvudsakligen presenteras i jämförande form uppdelade i de olika datamängderna. Enheten som ligger till grund för jämförelserna är kilobyte per sekund där 1 kb/s är lika med 0.8 kbit/s vilket medför, som nämnts i avsnitt 5.4, att vissa felfaktorer utesluts. 7.1.1 WMS Tabell 8 visar testresultat i form av överföringshastigheter för respektive servermjukvara och datamängd. Figur 3, 4 och 5 visar testresultaten i jämförande diagram för mjukvarorna vid olika scenarion. Tabell 8. Överföringshastigheter i kb/s för de olika mjukvarorna och datamängderna. Antal trådar PostgreSQL (Test-ID 3) Shape (Test-ID 4) GeoTIFF (Test-ID 5) QGIS GS MS QGIS GS MS QGIS GS MS 1 218 113 183 233 116 187 232 323 164 10 1799 1094 1321 2231 1083 1329 1604 2441 717 30 2862 1593 2489 3759 1121 1844 2764 2312 764 60 2798 1523 2383 3796 1426 2412 2784 2032 745 Figur 6 innehåller standardavvikelser mellan korrelationskoefficienterna för de olika datamängderna. Korrelationskoefficienten anger styrkan av ett samband mellan två variabler 18
kb/s som representeras av en punktmängd. Om korrelationskoefficienterna är likvärdiga vid hämtning av olika datamängder så är troligen också formen på linjerna likvärdiga, följaktligen är detta ett mått på mjukvarornas kontinuitet vid leverans av olika data. Den maximala kapaciteten för mjukvarorna kan urskiljas i Figur 3, 4 och 5 där linjerna planar ut. Detta indikerar att den långsammaste delen i konfigurationen nått maximal belastning. För att utöka dessa resultat har även QGIS 32-bitars version testats då det är den version som kan laddas ned utan att behöva ladda ned en extern webbservermjukvara. En jämförelse mellan QGIS 32- och 64-bitarsversion finns i Bilaga 2. Efter att ett misstag uppmärksammats i testerna där olika värden på parametern transparent använts gjordes ytterligare tester för att undersöka om resultatet påverkas. Dessa redovisas i Bilaga 5. Överföringshastighet - PostgreSQL (Test-ID 3) QGIS Geoserver Mapserver 3500 3000 2500 2000 1500 1000 500 0 1 10 30 60 Antal trådar Figur 3. Överföringshastigheter vid hämtning PostgreSQL (PostGIS). 19
kb/s kb/s Överföringshastighet - Shapefil (Test-ID 4) QGIS Geoserver Mapserver 4000 3500 3000 2500 2000 1500 1000 500 0 1 10 30 60 Antal trådar Figur 4. Överöringshastigheter vid hämtning av Shape. Överföringshastighet - GeoTIFF (Test-ID 5) QGIS Geoserver Mapserver 3000 2500 2000 1500 1000 500 0 1 10 30 60 Antal trådar Figur 5. Överföringshastigheter vid hämtning av GeoTIFF. 20
0.14 0.12 0.1 0.08 0.06 0.04 0.02 0 Standardavvikelse för korrelationskoefficienter QGIS GS MS Figur 6. Jämförelse av standardavvikelse för korrelationskoefficienter. 7.1.2 WFS Tabell 9 visar överföringshastigheterna för de olika mjukvarorna vid leverans av WFS från olika datakällor. Figur 7, 8 och 9 visar jämförande diagram innehållande överföringshastigheter samt andelen felaktiga responser för respektive server och respektive datakälla. Det är viktigt att nämna att testerna har gjorts lokalt på serverdatorn. Detta då klientdatorns uppkopplingshastighet på 100 Mbit/s blev en oönskad flaskhals redan vid 10 simulerade användare. Bilaga 3 åskådliggör begränsningen där både GeoServer och MapServers maximala kapacitet är ca 12 000 kb/s vilket är ca 100 Mbit/s. Detta gör att JMeter belastar samma processor som servermjukvaran, vilket kan innebära försämrade testresultat. Datorns processer och processernas belastning hölls under uppsyn vid testerna och visade att JMeter använder ca 5 % av processorn och skiljer sig inte beroende på vilken mjukvara som testas. Tabell 9. Överföringshastigheter i kb/s för de olika mjukvarorna och datamängderna. Antal trådar Test-ID 1 Test-ID 2 Test-ID 3 Test-ID 4 QGIS GS MS QGIS GS MS QGIS GS MS QGIS GS MS 1 2289 14562 13817 2823 20339 16317 2079 15737 13846 2203 19272 16364 10 4988 31693 29189 6094 39671 16279 4341 33480 27639 4696 42570 15144 30 5110 33474 29709 6153 40998 32022 4655 33425 19848 5075 43736 32967 60 5108 33436 29656 6160 40899 32725 4621 33598 28295 5004 43338 27212 21
kb/s Andel fel (%) kb/s Andel fel (%) Överföringshastighet och andel felaktiga responser - Test-ID 1 QGIS Fel GS Fel MS Fel QGIS GS MS 40000 35000 30000 25000 20000 15000 10000 5000 0 1 10 30 60 Antal trådar 20 18 16 14 12 10 8 6 4 2 0 Figur 7. Överföringshastigheter vid hämtning av Test-ID 1. Överföringshastighet och andel felaktiga responser - Test-ID 2 QGIS Felandel GS Felandel MS Felandel QGIS GS MS 45000 40000 35000 30000 25000 20000 15000 10000 5000 0 1 10 30 60 Antal trådar 20 18 16 14 12 10 8 6 4 2 0 Figur 8. Överföringshastigheter vid hämtning av Test-ID 2. 22
kb/s Andel fel (%) kb/s Andel fel (%) Överföringshastighet och andel felaktiga responser - Test-ID 3 GIS Felandel GS Felandel MS Felandel QGIS GS MS 40000 35000 30000 25000 20000 15000 10000 5000 12.0 10.0 8.0 6.0 4.0 2.0 0 1 10 30 60 Antal trådar 0.0 Figur 9. Överföringshastigheter vid hämtning av Test-ID 3. Överföringshastighet och andel felaktiga responser - Test-ID 4 GIS Felandel GS Felandel MS Felandel QGIS GS MS 50000 45000 40000 35000 30000 25000 20000 15000 10000 5000 0 1 10 30 60 Antal trådar 7.0 6.0 5.0 4.0 3.0 2.0 1.0 0.0 Figur 10. Överföringshastigheter vid hämtning av Test-ID 4. 23
8. Analys 8.1 WMS Inga felaktiga responser har observerats i testerna vilket tyder på att alla mjukvaror är väl utvecklade för distribuering av karttjänster enligt WMS-standarden. QGIS är tillsynes den mjukvara som prestandamässigt är bäst på att leverera WMS-data. Överföringshastigheten är snabbast hos QGIS i alla fall förutom vid test av GeoTIFF vid en och tio användare. Dessutom är det den mjukvara som har den mest kontinuerliga överföringshastigheten vid testning av olika datakällor, vilket bekräftas i diagrammen för överföringshastigheter samt i Figur 6. Hastigheterna för MapServer och GeoServer skiljer sig mer mellan de olika datakällorna vilket pekar på att de inte är lika mångsidiga med hänseende på dataformat. MapServer visar tecken på långsam hantering av GeoTIFF då den är betydligt långsammare än de två andra mjukvarorna vid test av Test-ID 5. Vid observationer av CPU-användning under testerna visade det sig i samtliga fall att det är processorn hos serverdatorn som är den begränsande komponenten. Att de olika mjukvarorna har olika kapacitet kan bero på hur effektivt de använder processorns beräkningskapacitet. 8.2 WFS GeoServer är den mjukvara som presterar bäst i samtliga tester. Den har högst hastighet för alla de testade datamängderna och för alla trådgrupper, dessutom gavs inga felaktiga responser i något av fallen. Maximal kapacitet nås vid tio användare för både GeoServer och QGIS. MapServer är något långsammare än GeoServer men snabbare än QGIS i samtliga fall. MapServer är mer varierande i hastighet mellan trådgrupperna och den maximala kapaciteten visar sig bara stabil för Test-ID 1. QGIS är betydligt långsammare än de andra mjukvarorna och ser inte ut att kunna leverera data snabbare än 6160 kb/s. En överslagsräkning med generalisering ger att 60 användare tilldelas 103 kb/s vardera vilket gör att exempelvis Test- ID 2 tar 621 sekunder för användaren att ta emot. I kontrast skulle det ta 93 sekunder för GeoServer där 682 kb/s kan utnyttjas av var och en av de 60 användarna. Vidare så gavs det flertalet felaktiga responser från både MapServer och QGIS. Upp till 18,7 % felaktiga responser vid 60 användare och 13,3 % vid 30 användare vid test av QGIS. Samma siffror för MapServer är 10,7 % vid 60 användare och 4,0 % vid 30 användare. I verkligheten gör detta att användaren inte erhåller den data som efterfrågas och blir därmed 24
tvungen att utföra sitt anrop på nytt. Andelen fel som uppstår tycks vara oförutsägbart då siffrorna i de två test som gjorts för varje mjukvara varierar. Testresultaten från MapServer skiljer sig från de andra mjukvarorna då överföringshastigheten för Test-ID 2, 3 och 4 förändras på ett säreget sätt mellan de olika trådgrupperna. Ytterligare tester gjordes för att detektera orsaken av problemet. Det visade sig att JMeter ibland stannar upp efter ett antal anrop för att erhålla en respons vilket gör att enstaka anrop tar betydligt längre tid att genomföra. Detta gäller endast för vid testerna av MapServer och pekar därmed på problem i antingen mjukvaran eller installationen. Test-ID 4 är i 10 fall av 12 snabbare än Test-ID 3. Detta tyder på att data lagrad i Shape-filer kan levereras snabbare än data som lagras i databasen PostgreSQL. Därtill levereras data från Test-ID 2 i 11 av 12 fall snabbare än Test-ID 3. Detta skulle kunna bero på att mer data skickas med i varje anrop och därmed skulle tiden för själva anropen göra betydande skillnad. Ytterligare tester utfördes för att få en förståelse för hur antalet objekt i varje anrop påverkar överföringshastigheten av data. Bilaga 4 visar skillnaderna i överföringshastighet vid olika värden av parametern maxfeatures. Dessa värden pekar på att mer efterfrågad data i varje anrop leder till ökad överföringshastighet. 8.3 Administrativa gränssnitt Det finns betydande skillnader i de administrativa gränssnitten. GeoServer och QGIS har båda grafiska användargränssnitt men är ändå olika i det att GeoServer är webbläsarbaserat och QGIS använder skrivbordsprogramvaran för administrering av karttjänster. Dessa är relativt enkla att hantera och lära sig. Då de inte tar emot felaktig input från användare så är det svårt för administratören att skapa tjänster som inte fungerar. MapServer använder ett textbaserat gränssnitt där karttjänstens alla parametrar definieras i en textfil. Det textbaserade gränssnittet kräver mer av administratören i form av inlärning, men också noggrannhet då all input måste motsvara tillåten syntax. 9. Diskussion Tidigare prestandatester av QGIS server som gjorts vid FOSS4G-evenemangen har resulterat i undermålig prestanda vid leverans av WMS. Av resultaten i denna studie att döma så har 25