Slide 1

Slide 1 text

EVALUATION OF WPS FRAMEWORKS! Ebrahim Poorazizi! Andrew Hunter! ! Geomatics Eng., University of Calgary! gisciencegroup.ucalgary.ca!

Slide 2

Slide 2 text

OUTLINE! §  Introduction ! §  Web Processing Service! §  WPS Servers! §  Methodology! §  Experimental Results! §  Lessons Learned! §  Discussion and Conclusions! 2!

Slide 3

Slide 3 text

INTRODUCTION! 3! Created by tagxedo.com!

Slide 4

Slide 4 text

INTRODUCTION! 4! How FAST is it?! Is it EASY-TO-USE?! Images courtesy: © funcom.com, iconbug.com, tagxedo.com!

Slide 5

Slide 5 text

INTRODUCTION! 5! Spatial Web Services Evaluations:! §  Web Map Service {Horák, J. et al. (2009), Kalbere, P. (2010), FOSS4G Shootout}! §  Sensor Observation Service {Tamayo, A. et al. (2011), Poorazizi, M.E. et al. (2012)}! §  Web Processing Service {Scholten, M. et al. (2006), Michaelis, C. and Ames, D. (2009), FOSS4G Shootout}! What have been done so far:! §  Focused on influential performance issues, the WPS protocol and its specification, and compliance and interoperability testing!

Slide 6

Slide 6 text

INTRODUCTION! 6! Images courtesy: © iconfinder.com! What needs to be done:! §  Evaluating WPS functionality and performance! Why it should be done:! §  To identify the strengths and weaknesses of each system! §  To improve WPS servers to meet both application user and developer requirements!

Slide 7

Slide 7 text

WEB PROCESSING SERVICE! 7! GET POST SOAP GetCapabilities DescribeProcess Execute  A web service interface to standardize the way that (spatial) algorithms are made available on the Internet!

Slide 8

Slide 8 text

WPS SERVERS! 8! ! 52°North! Deegree! GeoServer! PyWPS! Zoo! Organization! 52°North GmbH! OSGeo! OSGeo! Intevation GmbH! OSGeo! Development Platform! Java! Java! Java! Python! C/C++! License! GNU GPL v. 2! LPGL! GNU GPL v. 2! GNU GPL v. 2! MIT/X-11 style! Supported Libraries! JTS! GeoTools! SEXTANTE! R! GRASS! ArcGIS! SEXTANTE! JTS! GeoTools! GRASS! GDAL! R! GRASS! GEOS! GDAL! N a t i v e l y S u p p o r t e d Development Languages! Java! Java! Java! Python! C/C++! Fortran! Java! Python! PHP! Perl! JavaScript! Service ! Servlet! Servlet! Servlet! CGI! CGI! DCP Request! GET/POST/SOAP! GET/POST/SOAP! GET/POST! GET/POST/SOAP! GET/POST!

Slide 9

Slide 9 text

METHODOLOGY – CASE STUDY! 9! Images courtesy: © walkonomics.com! WalkYourPlace Transit Model à http://webmapping.ucalgary.ca/WPSClient/ ! §  Determine accessible walkable area (walkshed) using pedestrian and transit infrastructure! §  Assess walkshed using a number of quality of life and access indicators such as local crime, or shopping and recreation facilities within that area!

Slide 10

Slide 10 text

METHODOLOGY – ARCHITECTURE ! 10! Design! Implement! Release! Test! §  A bottom-up approach! §  PostGIS & Python! §  Wrapping & exposing as WPS! §  Evaluating from quantitative & qualitative views!

Slide 11

Slide 11 text

METHODOLOGY – ARCHITECTURE ! 11!

Slide 12

Slide 12 text

METHODOLOGY – ARCHITECTURE ! 12!

Slide 13

Slide 13 text

METHODOLOGY – ARCHITECTURE ! 13!

Slide 14

Slide 14 text

StartPoint=51.057,-114.066! StartTime=17:43:00! WalkingTimePeriod=15! WalkingSpeed=1.38! BusWaitingTime=10! BusRideTime=5! DistanceDecayFunction=False! METHODOLOGY – ARCHITECTURE ! 14! Walkshed WPS! WPS Input! WPS Output!

Slide 15

Slide 15 text

METHODOLOGY – ARCHITECTURE ! 15!

Slide 16

Slide 16 text

METHODOLOGY – ARCHITECTURE ! 16! Transit WPS! WPS Input! WPS Output! StartTime=17:43:00! WalkingTimePeriod=15! WalkingSpeed=1.38! BusWaitingTime=10! BusRideTime=5!

Slide 17

Slide 17 text

METHODOLOGY – ARCHITECTURE ! 17!

Slide 18

Slide 18 text

METHODOLOGY – ARCHITECTURE ! 18! Union WPS! WPS Input! WPS Output!

Slide 19

Slide 19 text

METHODOLOGY – ARCHITECTURE ! 19!

Slide 20

Slide 20 text

METHODOLOGY – ARCHITECTURE ! 20! POI WPS! WPS Input! WPS Output!

Slide 21

Slide 21 text

METHODOLOGY – ARCHITECTURE ! 21!

Slide 22

Slide 22 text

METHODOLOGY – ARCHITECTURE ! 22! Crime WPS! WPS Input! WPS Output!

Slide 23

Slide 23 text

METHODOLOGY – ARCHITECTURE ! 23!

Slide 24

Slide 24 text

METHODOLOGY – ARCHITECTURE ! 24! Aggregation WPS! WPS Input! WPS Output! StartPoint=51.057,-114.066! WalkingTimePeriod=15! DistanceDecayFunction=False!

Slide 25

Slide 25 text

SCENARIO A! ü  To assess how fast each server responds! ü  45 Execute requests, random WPS input parameters:! §  Walking Start Point! §  Walking Start Time: 5 a.m. – 12 p.m. ! §  Walking Time Period (WTP): 5 min – 20 min! §  Walking Speed: 3 km/h – 6 km/h! §  Bus Waiting Time (BWT): 0 – WTP! §  Bus Ride Time: 0 – (WTP – BWT)! §  Distance Decay Function: True/False! ! METHODOLOGY – TEST SCENARIO! 25!

Slide 26

Slide 26 text

SCENARIO B! ü  To assess the effect of increased load on each server! §  Number of concurrent requests: 2n , n = {0,…,7}! §  30 replications! §  Random WPS input parameters, like SCENARIO A! METHODOLOGY – TEST SCENARIO! 26!

Slide 27

Slide 27 text

METHODOLOGY – TEST ENVIRONMENT! §  Each WPS server was installed on a separate Virtual Machine (VM)! §  The same machine used to run the VMs and the tests! §  JMeter was used to perform the tests! 27! Hardware! Dell OptiPlex 990 (Host)! VMware (VM)! CPU! Intel Core i5 3.1 GHz! 4 Cores of 8! RAM! 8 GB! 4 GB! HDD! 500 GB! 40 GB! OS! Windows 7 Professional (64-bit)! Ubuntu 12.04 LTS (64-bit)!

Slide 28

Slide 28 text

SCENARIO A! §  Response Time: time taken for a service call to return all response bytes! §  Response Size: the quantity of data exchanged between client and server! ! EXPERIMENTAL RESULTS! 28! WPS Server! Response Time (sec.)! Response Size (kB)! 52°North! 2.784 ± 1.269! 2.448 ± 0.267! Deegree! 2.499 ± 1.259! 2.505 ± 0.267! GeoServer! 2.753 ± 1.255! 2.301 ± 0.267! PyWPS! 3.995 ± 1.661! 2.686 ± 0.269! Zoo! 2.999 ± 1.313! 2.479 ± 0.269!

Slide 29

Slide 29 text

EXPERIMENTAL RESULTS! 29! F(4,220)=1.071, p=0.372 ! F(4,220)=0.739, p=0.566 !

Slide 30

Slide 30 text

SCENARIO B! §  Response Time! §  Server Failure! §  Server Throughput! EXPERIMENTAL RESULTS! 30!

Slide 31

Slide 31 text

EXPERIMENTAL RESULTS! 31! Response Time!

Slide 32

Slide 32 text

EXPERIMENTAL RESULTS! 32! Server Failure Rate!

Slide 33

Slide 33 text

EXPERIMENTAL RESULTS! 33! Server Throughput!

Slide 34

Slide 34 text

LESSONS LEARNED! 34! 52°North! Deegree! GeoServer! PyWPS! Zoo! Installation*! Easy! Easy! Easy! Difficult! Difficult! Create new processes and Configuration* ! Easy! Medium! Easy! Difficult! Easy! Native Development Languages! One ! One ! One ! One ! Many! Quality of Documentation**! Great! Good! Great! Good! Good! Community Support! •  Many Avenues! •  Active Support! •  Many Avenues! •  Active Support! •  Many Avenues! •  Active Support! •  Few Avenues! •  Little Support! •  Many Avenues! •  Active Support! * Ranking ranges: Easy; Medium; Difficult! ** Ranking ranges: Weak; Good; Great!

Slide 35

Slide 35 text

SCENARIO A! §  Deegree returns the response package most rapidly! §  But, based on a One Way ANOVA test, there is no significant difference in response time between the WPS servers tested nor data volume returned! SCENARIO B! §  Deegree and GeoServer performed similarly; Deegree tending to perform better under high loads! §  52°North had difficulty when processing more than 16 concurrent requests, but performed more effectively under low loads! § From a qualitative perspective, compared to other WPS servers, 52°North and GeoServer seem to be the best choices! DISCUSSION! 35!

Slide 36

Slide 36 text

CONCLUSIONS! 36! §  When selecting an appropriate WPS server, it is important to consider both quantitative and qualitative metrics! §  The importance of each metric can be weighted based on different application requirements! §  A recommendation: start with an evaluation process with some basic questions:! ü  Who is the user of the system, end-user or application developer?! ü  How complex are the geoprocessing services?! ü  How should the system function, synchronous or asynchronous?! ü  What is the architecture used to design the processing workflow?! ü  What is the expected number of users?!

Slide 37

Slide 37 text

THANK YOU! ANY QUESTION?! Ebrahim Poorazizi! [email protected]! ebrahim.planyourplace.ca! Andrew Hunter! [email protected]! gisciencegroup.ucalgary.ca!