Sampeu: Servicing Web Map Tile Service over Web Map Service to Increase Computation Performance

Open Geospatial Consortium (OGC) has a standard for cartographic over web service; there are Web Map Service (WMS) used by MapServer, Web Feature Service (WFS), and Web Map Tile Service. There is research on comparing two cartography information between WMS and WFS, so this research extends to proposed solution by comparing WMS and WMTS computation cost and created a product called Sampeu. Sampeu has proposed a solution by creating WMTS protocol over WMS. WMTS work on the tile-ing system where the data transform from big picture to part of the Tile is. A lot of Tile making a pyramid of cartography and serving to client one by one, so the computation cost can be decreasing.


Introduction
The need to visualize maps in digital form is a necessity in the current era of Internet use where all data is distributed globally [1]. OGC has created standards for the exchange of geospatial data for use in the Internet network. Data processing speed is required to do the job. One factor of the rate of geospatial processing data is the cost of computing from the server. So this research was conducted to perform study between WMTS computing with WMS input with MapServer and MapProxy usage. So with the minimal cost of computing, the speed of data processing and geospatial analysis will be faster [2].

Related Works
Research on the performance of the WMS conducted in the field of mobile computer [3] as well as monitoring framework [1], and framework for integration with Discrete Global Grid Systems (DGGS) [4]. Models for integration of the Web Enablement Sensor module involve interconnection using XML [5] as well as its development such as MGeoSciML [6]. The model in Web Ontology Language (OWL) is also performed to illustrate the web service of OGC [7]. The creation of cache server side from WMS [8] as a form of computational efficiency. As a supporter of its infrastructure, the OGC Interoperability Program was created to communicate between users of the OGC standard [9]. OGC has also implemented using Service-Oriented Architecture (SOA) [10].
Research on the use of WMS regarding database performance has performed using LeafletJS for mobile [11]. There is a study to compare performance-servicing WMS with two databases between PostgreSQL and MongoDB. Simulating the same data set with a different database server to get the computational measurement. Different data sets accessed and tried in parallel with a 100-user simulation [12]. Research on the combined use of Navy Coastal Ocean Model (NCOM) with WMS has been done to produce a more variable layer [13]. Thus, in this study, efficiency was performed with a combination of MapServer and MapProxy usage to reduce the cost of computation.

Proposed Framework
The model proposed in this research is the provision of WMTS taken from the WMS. MapServer is chosen as a WMS provider because it is one of the popular open source applications. Then from the WMS service MapServer will be forwarded into input from Mapproxy. Mapproxy is one application to create map cache with output option that can be different from the input. In this research, the selected MapProxy output is OGC WMTS protocol.

Directory Structure
According to Figure 1, there is the main file sampeu.py, sampeu.yaml, sampeu.ini, start.sh. Sampeu.py is a python script to sync MapProxy module and function to call WSGI module from MapProxy by taking configure from sampeu.yaml. Sampeu.yaml is a file that contains OGC format configuration as input data and output data. Sampeu.ini is a server configuration based on uWSGI. Start.sh is a script to run sampeu as a server serving web service WMTS OGC. In the folder, there is a common folder, mapfile, shp, and tmp.
In the common folders ( Figure 2) contain map templates such as fonts, javascript, HTML. The mapfile folder ( Figure 3) contains a .map file which is a standard file for querying MapServer as WMSbased input. The shp folder ( Figure 4) contains a vapor shapefile file consisting of shp, dbf, shx, prj, sbn, shx, cpg, xml files. While the tmp folder ( Figure 5) as a temporary directory location that can be used either by MapServer or MapProxy.     In the tag sources: it is a WMS input from the MapServer. Inside there is also the location of the Mapfile, where the MapServer file and working directory. Service in code is the output of web service in the form of WMTS with the restful format. Python script calls this configuration. This program code calls the wsgiapp submodule of the MapProxy module in python. Then declare the application variable result from the YAML configuration read. Sampeu.ini consist of IP configuration and port to serve the web service. This file contains the module variable that calls the form variable from the sampeu.py file.
HTTP is the access address of the web service. 0.0.0.0 means we can access any IP on the server (without IP binding). 5473 is an access port of a web service. That is usually written behind IP in a browser with a colon separator (:). To run it then created a shell script with the name start.sh which contains the calling of this file by using the uWSGI module from Python already installed on the operating system.
Nohup is a feature of the operating system so that the service is still alive. This service is running on background with ampersand sign (&).

Experiment
In this experiment, we will use shapefile districts city of Indonesia to form map Indonesia. Tinting and determination of provincial and district or city limits set in the indo.map Mapfile. Provincial boundaries are displayed when the default map of Indonesia. District or city limits will appear after reaching max. 5000000 on Mapfile. The measurement aimed at monitoring the sampeu process on the activity monitor in the operating system ( Figure 6). Websites that use web service until executed in a web browser with the action of using zooming map on the Peuyeum framework. The highest usage of CPU and RAM recorded with Process ID number (PID) of the sampeu process is 22310,22311,22312. These three PID are then summed to get the total value of RAM and CPU usage (Figure 7). Highest RAM usage value of 51.8 MB. Highest CPU usage on one thread is 80.2% of 2.3GHz. So, the CPU recommendation for sampeu is 1.8446 GHz.