= ZOO Project WPS implementation testing =
ZOO-PSC would like to report results of tests conducted on ZOO-Kernel WPS
implementation. Comparision of some current WPS implementation was reported in
presentation entitled "COMPLIANCE TESTING OF OPEN SOURCE SOFTWARE FOR WEB
PROCESSING SERVICES" [http://2010.foss4g.org/presentations_show.php?id=3604 link].
The presentation is based on report No. CIP-ICT-PSP-2009-3-250474 entitled “Web
Processing Service Study” for the client/project: "BRIdging SErvices, Information and
Data for Europe" (BRISEIDE) [http://www.briseide.eu/ link].
Our testing details are presented in more details below. The test with ZOO WPS are
contrary to the presentation and report mentioned above. We call upon the authors
of the presentation and report referred above to make appropriate corrections in their
presentation and report based on the results outlined below. We hope that more well
planned and coordinated implementation testing can be done in the future.
Gérald Fenoy (Chair ZOO PSC)
= ZOO Project WPS testing details =
In above mentioned report, some unusual behaviour of the ZOO Kernel was pointed out. Hence, the ZOO PSC decided to answer to this report by making his own report about ZOO Project compliancy testing using the same way as in the report.
First note about this response that we are currently preparing, we weren't able to use XMLSpy 2007 Professional version as no more Evaluation version is available, so we used the XMLSpy 2011 Professional one as we can use it for an evaluation period of 30 days.
All the following requests give documents which are valid (using XMLSpy 2011 Professional) against the used schemas.
== !GetCapabilities request ==
In the section 5.5 of the report an error was pointed out about some unexpected metadata : namely Test attribute to the Metadata node getting the "Demo" value. This was due to wrong ZCFG files of the first Services we made in the begining of the 2009 year.
The provided URL to run this test is wrong, one would use this one :
http://zoo-project.org/cgi-bin-new/zoo_loader.cgi?REQUEST=GetCapabilities&SERVICE=WPS&version=1.0.0
{{{
#!html
}}}
So for the !GetCapabilities request, the Capabilities document output by the ZOO Kernel is '''Valid'''.
== !DescribeProcess request ==
In the section 5.11 of the report we can read that the ZOO Kernel can't handle the !DescribeProcess request and output a valid !ProcessDescriptions Document. Indeed the first versions of ZOO Kernel was wrong in that, but hopefully the last one, included in OSGeoLiveDVD 4.0 returns already the valid !ProcessDescriptions document.
http://zoo-project.org/cgi-bin-new/zoo_loader.cgi?REQUEST=DescribeProcess&SERVICE=WPS&version=1.0.0&Identifier=Buffer
Using the url above we can confirm that ZOO Kernel is '''Valid''' for the !DescribeProcess request.
Note that this request is '''Valid''' also :
http://zoo-project.org/cgi-bin-new/zoo_loader.cgi?REQUEST=DescribeProcess&SERVICE=WPS&version=1.0.0&Identifier=Buffer,Boundary,Centroid,ConvexHull,Simplify,Union,Intersection,Difference,SymDifference
== Execute request ==
In the 5.13 section of the report you can get the requests for Execute as XML POST requests, as it is the mandatory method.
To use the XML POST requests provided in the report or easier by using copy/paste from this page, please follow this [http://zoo-project.org/test_services.html link] to paste in the HTML form.
=== section 5.17 (Synchronous call using asReference) ===
{{{
#!xml
Buffer
InputPolygon
Playground area
BufferDistance
Distance which people will walk to get to a playground.
10
Result
}}}
=== section 5.18.1.4 (Synchronous call with data included) ===
{{{
#!xml
Buffer
InputPolygon
Playground area
BufferDistance
Distance which people will walk to get to a playground.
10
Result
}}}
=== section 5.23 (Asynchronous call with data asReference) ===
{{{
#!xml
Buffer
InputPolygon
Playground area
BufferDistance
Distance which people will walk to get to a playground.
10
Result
}}}
Here both statusLocation file and response are '''Valid'''.
=== Section Not Found (Asynchronous call with full data included) ===
Even if it is not mentioned in the original report, you can also use the storeExecuteReponse="true" for !ResponseDocument with the asReference attribute for the Output settled to true as in the following request :
{{{
#!xml
Buffer
InputPolygon
Playground area
BufferDistance
Distance which people will walk to get to a playground.
10
Result
}}}
The resulting document and the statusLocation document are both '''Valid'''.
=== section 5.28 (!RawDataOutput test) ===
{{{
#!xml
Buffer
InputPolygon
Playground area
BufferDistance
Distance which people will walk to get to a playground.
10
Result
}}}
The result is valid in the sens that it is a JSON string representing the resulting polygon.