MAPSERVER VS. MAPSERVER

MapServer vs. Mapserver

Jáchym Čepický
Department of geoinformatics

Faculty of Forestry and Wood Technology, Mendel University of Agriculture and Forestry in
Brno

E-mail: jachym.cepicky@centrum.cz

David Procházka
Department of Informatics

Faculty of Business and Economics, Mendel University of Agriculture and Forestry in Brno
E-mail: xproch17@pef.mendelu.cz

Jitka Machalová
Department of Informatics

Faculty of Business and Economics, Mendel University of Agriculture and Forestry in Brno
E-mail: machalov@mendelu.cz

Kĺıčová slova: WMS, MapServer, ArcIMS

Abstrakt

M̊užeme ř́ıci, že mapy prož́ıvaj́ı d́ıky moderńım technologíım svou renesanci. Dı́ky aplikaćım,
jako je Google Maps1 či Seznam-Mapy2 mohou uživatelé śıtě náhle pracovat s geoinformacemi
zp̊usobem, na jaký doposud nebyli zvykĺı - a tento nový zp̊usob je bav́ı.

Pro vytvořeńı obrázku mapy, který je bud’ zobrazen v GISu nebo v okně prohĺı̌zeče je potřeba
mı́t stroj odpov́ıdaj́ıćıho výkonu a programové vybaveńı schopné takový obrázek vytvořit.

Tento článek se snaž́ı pomoci nalézt odpověd’ na otázku “Jaký mapový server je pro má data
nejvhodněǰśı?“.

Mapové servery

Mapové servery jsou programy generuj́ıćı požadovanou mapu jako obrázek na základě požadavk̊u
klientských programů. Výsledný obrázek předávaj́ı webovému serveru, a ten pak zpět kli-
entskému programu. Primárńı funkćı mapového serveru je nač́ıst data z r̊uzných zdroj̊u a
jejich spojeńı dohromady do výsledného obrázku [1].

Na ,,data“ poskytovaná mapovými servery lze přistupovat bud’ ze specializovaných programů
- Geografických informačńıch systémů - a nebo na př́ıklad z klientských aplikaćı napsaných
pro webové prohĺıžeče. Lze předpokládat, že uživatele obou typ̊u těchto programů zaj́ımá
kromě vzhledu výsledného obrázku předevš́ım rychlost s jakou se tento obrázek objev́ı u nich
na obrazovce.

1
http://maps.google.com

2
http://mapy.seznam.cz

Geinformatics FCE CTU 2006 101

http://maps.google.com
http://mapy.seznam.cz


MAPSERVER VS. MAPSERVER

Správce takových server̊u zase zaj́ımá zátěž, které je vystaven stroj, na němž jsou uložena
data a na němž prob́ıhá vykreslováńı výsledných obrázk̊u, at’ už z hlediska zat́ıžeńı disk̊u, tak
z hlediska zátěže procesoru.

Komunikace mezi klienty a mapovými servery může prob́ıhat bud’ pomoćı proprietárńıho roz-
hrańı a nebo přes rozhrańı standardńı. Standardem v př́ıpadě mapových server̊u je tzv. služba
WMS3 (Web Mapping Service), definovaná konsorciem OGC4 (Open Geospatial Consorcium).

Web Mapping Service

OGC je mezinárodńı standardizačńı sdružeńı, zabývaj́ıćı se předevš́ım standardy v oblasti
geografických informačńıch systémů, jejich výměnných formát̊u a podobně. Mezi standardy
definované touto organizaćı patř́ı mimo jiné WMS (Web Mapping Service), WFS (Web Feature
Service), WCS (Web Coverage Service), GML (Geography Markup Language) a daľśı.

Web Mapping Service5 je definovaná v dokumentu OGC 06-042 [2], který popisuje komunikaci
mezi mapovým serverem a klientskou aplikaćı. Mezi dotazy, které muśı takový server být
schopen spracovat patř́ı mimo jiné

� GetCapabilities, vrát́ı popis dostupných dat na mapovém serveru, jejich formát̊u,
geografické projekce a daľśı informace

� GetMap, který vrát́ı výsledný obrázek - mapu podle zadaných vstupńıch parametr̊u.

Protože právě WMS je rozhrańı, na jehož základě komunikuje většina programů stahuj́ıćıch z
mapových server̊u data (ArcGIS6, QGIS7, Udig8, GRASS9, UMN MapServer10, ...), zaměřili
jsme se v tomto testu právě na toto rozhrańı.

Test

K vlastńımu testu byl použit server HP Proliant ML 350T03 (http://indica.mendelu.cz11),
s nainstalovaným operačńım systémem MS Windows 2003 SP1. Vybavený je dvěma 73GB
SCSI disky v konfiguraci RAID-1, 2GB pamět́ı, procesorem Intel Xeon 3 3.06GHz (32b).
Důvod pro zvoleńı tohoto operačńıho systému byl, že server se použ́ıván i pro běh licenčńıho
manažeru pro produkty ESRI, který je pouze pro MS Windows. Jako webový server byl, na
základě doporučeńı firmy ESRI, zvolen Apache 2.0 s nadstavbou Tomcat 5.0 a JRE 1.4.2.

3
http://en.wikipedia.org/wiki/Web Map Service

4
http://opengeospatial.org

5
http://en.wikipedia.org/wiki/Web Map Service

6
http://www.esri.com/software/arcgis/

7
http://qgis.org

8
http://udig.refractions.net/confluence/display/UDIG/Home

9
http://grass.itc.it

10
http://mapserver.gis.umn.edu

11
http://indica.mendelu.cz

Geinformatics FCE CTU 2006 102

http://en.wikipedia.org/wiki/Web%5C_Map%5C_Service
http://opengeospatial.org
http://en.wikipedia.org/wiki/Web%5C_Map%5C_Service
http://www.esri.com/software/arcgis/
http://qgis.org
http://udig.refractions.net/confluence/display/UDIG/Home
http://grass.itc.it
http://mapserver.gis.umn.edu
http://indica.mendelu.cz


MAPSERVER VS. MAPSERVER

Použitá data

K testu byla použita data u oblasti školńıho lesńıho podniku Křtiny - ,,Masaryk̊uv les“.
Územı́, na kterém byl test prováděn je ohraničeno souřadnicemi 16d35’30.12“E 49d13’5.52”N
a 16d48’44.64“E 49d21’18.72”N (WGS84). Pro test byly použity vrstvy:

� Letecké sńımky - 50 leteckých sńımk̊u v infra-červeném spektru v rozlǐseńı 0.5 m, jejichž
barevná paleta byla redukována na 256 barevných odst́ın̊u. Pr̊uměrná velikost jednoho
rastru je 1.89 MB (formát TIFF + TFW)

� Digitálńı model terénu - Jednotná rastrová mapa v rozlǐseńı 5 m (formát TIFF + TFW)

� Mapa využit́ı p̊udy - vektorová mapa ve formátu ESRI Shapefile, obsahuj́ıćı 32488 liníı
a 11647 ploch rozdělených do 13 kategoríı. Servery byly nastaveny tak, aby se mapová
vrstva vykreslovala bez popisk̊u s pouze vybarvenými plochami.

� Typologická mapa - vektorová mapa ve formátu ESRI Shapefile, obsahuj́ıćı 14731 liníı
a 5282 ploch rozdělených do 133 kategoríı. Mapová vrstva byla nastavena tak, aby
se plochy vykreslily pomoćı šraf (rastrový obrázek velikosti 2x2 pixely) s popiskami
jednotlivých kategoríı.

Od p̊uvodńıho záměru, testovat data v zobrazeńı S-JTSK jsme upustili z d̊uvodu problémů
s t́ımto zobrazeńım v knihovně PROJ.4 (kterou využ́ıvá UMN MapServer ) na operačńım
systému MS Windows a problémů při konfiguraci ArcIMS. Data tak byla pomoćı nástroj̊u
gdalwarp a ogr2ogr převedena do zobrazeńı Lat/Long (referenčńı elipsoid WGS84).

Pro UMN MapServer byly ještě letecké sńımky opatřeny souborem obsahuj́ıćım ,,mapu“ jed-
notlivých leteckých sńımk̊u - tile index.

Použité mapové servery

University Of Minnesota MapServer12 (současný název je pouhé MapServer ) je asi nej-
rozš́ı̌reněǰśı Open Source a Free Software GIS program. Je vyv́ıjen a udržován početnou ko-
munitou uživatel̊u. Lze jej spouštět bud’ jako CGI aplikaci nebo pomoćı rozhrańı MapScript
zapracovat do r̊uzných programovaćıch jazyk̊u. Pro účely testu byl použit předkompilovaný
MapServer verze 4.8.1, stažený ze stránek projektu, který byl spouštěn jako CGI.

Druhým použitým mapovým serverem je ArcIMS13 firmy ESRI. Nativńım formátem pro
komunikaci serveru je ArcXML. Pro testy bylo použito ArcIMS verze 9.1 SP1, ve které inte-
grován WMS connector – nadstavba napsaná v jazyku Java, která umožňuje publikovat data
ve formátu WMS. WMS connector přistupuje k mapových službám běž́ıćım na serveru a de
facto pro ně vytvář́ı WMS rozhrańı.

Vlastńı test

Vlastńı test byl proveden skriptem k tomuto účelu vytvořeným. Skript byl napsán v progra-
movaćım jazyce Python. K měřeńı času potřebného k vytvořeńı obrázku s mapou byl využit

12
http://mapserver.gis.umn.edu/

13
http://www.esri.com/software/arcgis/arcims/index.html

Geinformatics FCE CTU 2006 103

http://mapserver.gis.umn.edu/
http://www.esri.com/software/arcgis/arcims/index.html


MAPSERVER VS. MAPSERVER

modul timeit s funkćı repeat.

Tato funkce14 potřebuje ke svému běhu dva parametry:

� Počet opakováńı tohoto testu

� Počet voláńı testované funkce vrámci jednoho testu.

Obě hodnoty byly nastaveny na 10. Funkce vraćı č́ıselné pole, obsahuj́ıćı počty sekund potřebné
k provedeńı každého testu (v našem př́ıpadě pole o deseti prvćıch).

Výsledná č́ısla jsou tedy počty sekund potřebných k vytvořeńı, stažeńı a uložeńı 10 obrázk̊u
s mapami.

Nelze ř́ıci, že se jedná o počet sekund potřebných k vytvořeńı obrázku. Celkový čas je kromě
parametr̊u na straně serveru závislý na prostupnosti śıtě, rychlosti ukládáńı souboru na straně
klienta a dobou potřebnou k vykonáńı samostatné funkce.

Funkce save file dostane jako sv̊uj parametry vždy URI, ze kterého má stahovat potřebná
data. Ještě před t́ım, než započne se stahováńım dat, jsou hraničńı souřadnice upraveny o
náhodnou hodnotu. Ćılem této úpravy bylo zamezit nač́ıtáńı odpověd́ı z cache na straně
serveru.

[...]
t = timeit.Timer("""mapserverVsMapserver.save_file(

"%s",
verbose=%d,
bbox="%s",
mapserv="%s"
)""" %\
(URI,verbose,bbox,mapserv),
"import mapserverVsMapserver")

times = t.repeat(10,10)
[...]

number = 0
def save_file(uri, verbose=0, bbox=None, mapserv=""):

# bbox randomization
newBox = ""
rand = random.random()/100-0.005
for cord in bbox.split(","):

newBox += str(float(cord)+rand)+","
newBox = newBox[:-1]
uri += "&BBOX=%s" % (newBox)
global number
number += 1
if verbose == 3:

print number

14
http://diveintopython.org/performance tuning/timeit.html

Geinformatics FCE CTU 2006 104

http://diveintopython.org/performance%5C_tuning/timeit.html


MAPSERVER VS. MAPSERVER

if verbose > 3:
print number, uri

map = urllib.urlopen(uri)
input = open(’map-%s-%03d.png’ % (mapserv,number),’wb’)
input.write(map.read())
input.close()
return

Testovány byly následuj́ıćı varianty:

� ,,Jednoduchý“ rastrový soubor celého územı́ (digitálńı model terénu)

� ,,Jednoduchý“ rastrový soubor celého územı́ (digitálńı model terénu) - výřez územı́

� ,,Náročná“ vektorová mapa celého územı́, včetně rastrových textur a popisk̊u (typolo-
gická mapa)

� ,,Náročná“ vektorová mapa celého územı́, včetně rastrových textur a popisk̊u (typolo-
gická mapa) - výřez územı́

� ,,Náročný“ rastrový soubor celého územı́ - letecké sńımky

� ,,Náročný“ rastrový soubor celého územı́ - letecké sńımky - výřez územı́

� Kombinace ,,náročného“ rastru s ,,náročnou“ vektorovou mapou na celém územı́ - le-
tecké sńımky + typologická mapa

� Kombinace ,,náročného“ rastru s ,,náročnou“ vektorovou mapou na celém územı́ - le-
tecké sńımky + typologická mapa - výřez územı́

� ,,Jednoduchá“ vektorová mapa celého územı́ (mapa využit́ı p̊udy)

� ,,Jednoduchá“ vektorová mapa celého územı́ (mapa využit́ı p̊udy) - výřez územı́.

Celé územı́ bylo ohraničeno (výchoźımi) souřadnicemi 16d35’30.12“E 49d13’5.52”N a 16d48’44.64“E
49d21’18.72”N. Výřez pak 16d42’7.128“E 49d17’14.388”N a 16d42’39.996“E 49d17’35.412”N.

Obrázky byly stahovány ve formátu PNG o velikosti 400×400 pixel̊u.

Výsledky

Sekvenčńı dotazy z jednoho klienta na server

Tyto testy popisuj́ı řady sekvenčńıch dotaz̊u z jednoho klienta na mapový server. Pro kladeńı
dotaz̊u na mapový server ArcIMS jsou použity porty 80 a 8080. Pokud je dotaz položen přes
port 80, převezme jej webový server Apache, ten jej předá Tomcatu a následně se zavolá
samotný WMS connector (který źıská data z běž́ıćı mapové služby ArcIMS ). Pokud je dotaz
položen přes port 8080, prob́ıhá komunikace př́ımo s nádstavbou Tomcat a je tedy ušetřen
čas komunikace s web serverem.

Geinformatics FCE CTU 2006 105



MAPSERVER VS. MAPSERVER

dmt dmt
(de-
tail)

typo–
logie

typo–
logie
(de-
tail)

ortho ortho
(de-
tail)

ortho
+
typo-
logie

ortho
+
typo-
logie
(de-
tail)

land–
use

land–
use
(de-
tail)

ArcIMS
(port
8080)

7,52 5,61 14,73 5,82 27,23 8,88 34,59 8,62 37,90 6,38

ArcIMS
(port 80)

14,51 7,89 21,37 8,38 48,61 26,27 50,15 23,17 41,03 8,10

MapServer 4,38 3,28 32,38 3,00 20,65 4,66 46,37 4,85 6,55 3,28

Tabulka 1: Srovnáńı rychlosti vykreslováńı r̊uzných typ̊u vrstev servery

Obrázek 1: Jak rychle je daná vrstva zpracována r̊uznými servery (větš́ı čas znamená horš́ı
výsledek)

Sekvenčńı dotazy ze serveru na server

Tyto hodnoty popisuj́ı dotazy pokládané ze stejného poč́ıtače, jako je ten, na kterém je in-
stalován mapový server. Porovnáńım s předchoźımi hodnotami źıskáme vliv komunikace po
śıti na výsledné časy.

Geinformatics FCE CTU 2006 106



MAPSERVER VS. MAPSERVER

Obrázek 2: Jak rychle dokáž́ı servery zpracovávat jednotlivé vrstvy

dmt dmt
(de-
tail)

typo–
logie

typo–
logie
(de-
tail)

ortho ortho
(de-
tail)

ortho
+
typo–
logie

ortho
+
typo–
logie
(de-
tail)

land–
use

land–
use
(de-
tail)

ArcIMS
(port
8080)

3,65 2,89 12,74 2,95 24,43 5,63 31,80 5,78 35,52 2,83

ArcIMS
(port 80)

12,84 3,64 19,10 5,17 49,37 28,20 51,50 22,85 38,82 4,27

MapServer 2,39 1,67 31,20 1,53 17,17 2,98 44,76 3,39 4,50 1,21

Tabulka 2: Srovnáńı čas̊u nutných odpovědi při kladeńı dotaz̊u pouze v rámci serveru
(neprob́ıhá komunikace po śıti)

Geinformatics FCE CTU 2006 107



MAPSERVER VS. MAPSERVER

Obrázek 3: Jak rychle je daná vrstva zpracována r̊uznými servery

Obrázek 4: Jak rychle dokáž́ı servery zpracovávat jednotlivé vrstvy

Porovnáńı sekvenčńıch dotaz̊u

Nı́že uvedená tabulka a graf shrnuj́ı rozd́ıly mezi dotazy klient-server a server-server. Je patrné,
že zpožděńı při dotazech přes poč́ıtačovou śıt’ je ve většině př́ıpad̊u téměř konstantńı. T́ımto
testem se nav́ıc vzájemně ověřili i naměřené hodnoty. Je patrné, že při opakovaném měřeńı
dosahujeme obdobných výsledk̊u. Hodnoty bez č́ısla 2 jsou naměřené při kladeńı ze samotného
serveru. Hodnoty s č́ıslem 2 (např. ArcIMS (port 80) 2) jsou naměřeny při kladeńı dotaz̊u z
klienta na server.

Geinformatics FCE CTU 2006 108



MAPSERVER VS. MAPSERVER

dmt typologie ortho ortho + ty-
pologie

landuse

ArcIMS
(port 80)

12,84 19,10 49,37 51,50 38,82

ArcIMS
(port 80) 2

14,51 21,37 48,61 50,15 41,03

ArcIMS
(port 8080)

3,65 12,74 24,43 31,80 35,52

ArcIMS
(port 8080)
2

7,52 14,73 27,23 34,59 37,90

MapServer 2,39 31,20 17,17 44,76 4,50
MapServer
2

4,38 32,38 20,65 46,37 6,55

Tabulka 3: Srovnáńı vlivu komunikace po śıti na dobu nutnou k odpovědi

Obrázek 5: Porovnáńı dotazu z klient-server a ze server-server

Porovnáńı sekvenčńıch a paralelńıch dotaz̊u

Následuj́ıćı tabulka srovnává délky odpověd́ı v př́ıpadě kladeńı dotaz̊u z jednoho PC, sa-
motného serveru a paralelně z 10 r̊uzných PC. Zobrazená naměřená hodnota pro 10 PC je
pr̊uměrem naměřených hodnot ze všech PC (rozd́ıly mezi hodnotami z PC byly ve všech
uvedených př́ıpadech pod 10%). Položky označené “Single” popisuj́ı dotazy server-server. Od
testovańı ArcIMS přes port 80 bylo pro paralelńı zátež bylo upuštěno, protože je z předchoźıch
výsledk̊u zcela evidentńı, že se pro takovéto nasazeńı nehod́ı.

Geinformatics FCE CTU 2006 109



MAPSERVER VS. MAPSERVER

dmt typologie ortho ortho + typologie
Single ArcIMS
(port 8080)

3,65 12,74 24,43 31,80

Single ArcIMS
(port 80)

12,84 19,10 49,37 51,50

Single Mapserver 2,39 31,20 17,17 44,76
1xPC ArcIMS
(port 8080)

7,52 14,73 27,23 34,59

1xPC ArcIMS
(port 80)

14,51 21,37 48,61 50,15

1xPC Mapserver 4,38 32,38 20,65 46,37
10xPC ArcIMS
(port 8080)

16,98 80,90 187,68 250,05

10xPC Mapser-
ver

18,31 242,06 83,68 287,84

Tabulka 4: Srovnáńı vlivu sekvenčńıho a paralelńıho kladeńı dotaz̊u

Obrázek 6: Porovnáńı sériového a paralelńıho kladeńı dotaz̊u

Závěr

Vyvozovat závěry z naměřených výsledk̊u je vždy problematické. Do značné mı́ry zálež́ı na
úhlu pohledu a interpretaci. Nav́ıc každý test může být napadnut z hlediska ne zcela objek-
tivńı metodiky měřeńı, použitých prostředk̊u nebo konfiguraci daného produktu. Primárńım
ćılem tohoto článku proto bylo poskytnout výtah z námi źıskaných dat a popsat podmı́nky,
za kterých byla tato data naměřena. Na základě zde zmı́něných výsledk̊u lze bez újmy na
objektivitě ř́ıci:

Geinformatics FCE CTU 2006 110



MAPSERVER VS. MAPSERVER

� Jak se dalo předpokládat, je markantńı rozd́ıl mezi rychlost́ı zpracováńı požadavku u
produktu ArcIMS při kladeńı dotaz̊u přes port 80 a port 8080. V př́ıpadech, kdy je
webový server Apache vypuštěn a dotaz je položen př́ımo Tomcatu (standardně port
8080), je požadavek vyř́ızen často i v polovičńı době. Pro nasazeńı s vysokou zátěž́ı
serveru je tedy velmi vhodné zvolit tuto variantu.

� Otevřený projekt MapServeru je pro poskytováńı mapových služeb minimálně kon-
kurenceschopných řešeńım komerčńımu produktu ArcIMS. Jak je patrné z výsledk̊u
slabým mı́stem MapServeru je mapováńı v souborech uložených textur do vektorové
mapy (vrstva typologie). Při práci s rastry i vektorovými podlady však dosahuje velmi
zaj́ımavých výsledk̊u. Relativně ńızký výkon ArcIMS je pochopitelný, pokud vezmeme
v potaz fakt, že WMS connector je napsán v Javě a nemůže tedy dosáhnout takové
efektivity, jako kdyby byl předkompilován pro určitou platformu. Tedy výkon WMS
connectoru je do značné mı́ry dán i výkonem Tomcatu.

� Horš́ı výsledky při zpracováńı rastrových map u obou řešeńı by mohly být teoreticky
vylepšeny vybudováńım pyramid (u produktu ArcIMS např. uložeńım rastru do Ar-
cSDE15).

� Sledováńı zátěže serveru v pr̊uběhu test̊u potvrdilo předpoklad, že zat́ımco při zpra-
cováńı rozsáhlých rastrových dat je limitńım faktorem rychlost disku, při zpracováńı
vektorových dat je limitńım faktorem rychlost procesoru.

Bylo by bezesporu zaj́ımavé, porovnat i daľśı známé a v praxi často použ́ıvané mapové servery,
zejména GeoServer16, DeeGree17, nově uvolněný produkt MapGuide18 či český TopoL Internet
Server19. Při daľśım testováńı hodláme rovněž porovnat rychlosti zpracováńı dat v nativńıch
formátech jednotlivých řešeńı.

Reference

1. Mitchell, Tyler (2005): Web Mapping Illustrated, O’Reilly Media, Inc., Sebastopol.

2. Beaujardiere, Jeff (2006): OpenGIS(r) Web Map Server Implementation Specification,
Open Geospatial Consortium Inc., OGC(r) 06-042, Version 1.3.0,
http://www.opengeospatial.org

15
http://www.esri.com/software/arcgis/arcsde/

16
http://docs.codehaus.org/display/GEOS/Home

17
http://www.deegree.org/

18
http://www.autodesk.com/mapguide

19
http://topol.cz/?doc=2400

Geinformatics FCE CTU 2006 111

http://www.esri.com/software/arcgis/arcsde/
http://www.esri.com/software/arcgis/arcsde/
http://docs.codehaus.org/display/GEOS/Home
http://www.deegree.org/
http://www.autodesk.com/mapguide
http://topol.cz/%3Fdoc%3D2400
http://topol.cz/%3Fdoc%3D2400
http://www.opengeospatial.org