[Zoo-discuss] ZOO-Project OGC API - Processes User Interface

Gérald Fenoy gerald.fenoy at geolabs.fr
Tue Nov 3 05:29:51 PST 2020


Hi Pablo,
Thanks for your email.

Actually, the ZOO-Project has been modified, more specifically the ZOO-Kernel, to support the OGC API - Processes ongoing specification.
So, I would answer your first question, reusing your wording, with: the ZOO-Project now supports the (Open)API[1] that the OGC provides.

For your second question I would say that OGC API - Processes is a specification from the OGC. It is a definition and not an implementation itself, like WPS 1.0.0 and 2.0 specs were. 

For years now, the ZOO-Project was able to run processes (or jobs) without a restful api. From its inception, the ZOO-Project tend to be an implementation fo the WPS specifications (1.0.0 and 2.0).
As the specifications of the OGC are moving to OpenAPI (OGC API - Maps, OGC API - Features and so on), the OGC WPS SWG is working on a new specification, trying initially to adapt the existing concepts available in WPS 2.0 specification in JSON/YAML following the OpenAPI specification, then adding new features and capabilities. This is the reason why it was initially named wps-rest-binding, showing the direct link between the new specification and the original WPS 2.0 version. Now, the ZOO-Project provides a OpenAPI and supports most of the capabilities defined in the specification you were referring to [2].

I hope it helps clarifying the situation.

Best regards,

[1] https://swagger.io/specification/
[2] https://htmlpreview.github.io/?https://github.com/opengeospatial/wps-rest-binding/blob/master/docs/18-062.html

Gerald Fenoy
Chair, ZOO-Project PSC


> Le 3 nov. 2020 à 13:57, Pablo J. Zader <pzader at gmail.com> a écrit :
> 
> Hi Gerald, 
> great job! Thank you for this.
> 
> I have a query, maybe you can clarify it for me, what is the difference between the api[1] that the ogc provides and zoo-project?
> 
> Is the ogc api just the interface or does it also run processes?
> zoo-project, runs processes but doesn't have a restfull api?
> 
> Cheers
> Pablo
> 
> [1] https://ogcapi.ogc.org/processes/ <https://ogcapi.ogc.org/processes/>
> El lun., 2 nov. 2020 a las 13:04, Gérald Fenoy (<gerald.fenoy at geolabs.fr <mailto:gerald.fenoy at geolabs.fr>>) escribió:
> Dear all,
> I am glad to present some enhancements that has been added lately on the ZOO-Project and especially the addition of a basic User Interface  (UI).
> 
> I made this UI available on this demo server [1], as said it is a really basic UI where one can browse the processes available from the /processes path [2], get detailed informations from the /process/{processId} path (i.e. using OTB.BandMath processId [3]) but also use this same page to produce the JSON Execute request to be sent to the ZOO-Kernel with OGC API - Processes activated.
> 
> Indeed, from this last part of the UI, users have an HTML form that can be used to configure the inputs, the outputs and other parameters to be sent. From this HTML form, complex data can be passed by reference only when literal input can be defined right from the corresponding field. To generated the JSON Execute request, one can click on the « Submit » button. Note that in case you did not define a required input properly, you will be prompted to fill them. 
> 
> Also, as we now get the callbacks [4] definition supported by the ZOO-Kernel, the UI is automatically defining a URL for successUri, inProgressUri and failedUri. The consequence is that the ZOO-Kernel will send the current status of the execution of a process to the defined Uris. Also, when one click on the « Submit job » button appearing in the modal, a web socket is used to get the up-to-date information about status of execution of a process. Note that the service implemented to handle this is a very trivial python code [5] using redis and a uuid generated by the ZOO-Kernel to keep track of whom the messages should be targeted to. We implemented the UI this way to illustrate how the callbacks can be used to avoid polling using the OGC API - Processes.
> 
> The UI uses the Cheetah Tempalte Engine [6] and will require that the display service [7] is installed on your server. Also, to simplify the URLs to access the OGC API - Processes I have added this .htaccess [8] sample to show how to setup the transparent invocation of the display service in case the URL ends with .html. You may notice that the rewrite rules defined in this file use the original URL to create a Xlink:href that is passed as an input to the display Service which is responsible to produce the HTML output. The display service also rely on the Cheetah template [9] which define the way data should be shown in the HTML layout. One more time, this HTML code is very basic and require improvement here and there.
> 
> Note that, by now, only the document value is acceptable for the response parameter in the JSON Execute request.
> 
> I hope you will appreciate the UI. I am more than open to any comment, enhancement request and so on.
> 
> I wish you a great day and a great week ahead.
> 
> Best regards,
> 
> 
> [1] https://demo.mapmint.com/ogc-api/index.html <https://demo.mapmint.com/ogc-api/index.html>
> [2] https://demo.mapmint.com/ogc-api/processes.html <https://demo.mapmint.com/ogc-api/processes.html>
> [3] https://demo.mapmint.com/ogc-api/processes/OTB.BandMath.html <https://demo.mapmint.com/ogc-api/processes/OTB.BandMath.html>
> [4] https://swagger.io/docs/specification/callbacks/ <https://swagger.io/docs/specification/callbacks/>
> [5] http://www.zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/utils/open-api/server/publish.py <http://www.zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/utils/open-api/server/publish.py>
> [6] https://cheetahtemplate.org/ <https://cheetahtemplate.org/>
> [7] http://www.zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/utils/open-api/cgi-env <http://www.zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/utils/open-api/cgi-env>
> [8] http://www.zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/utils/open-api/server/.htaccess <http://www.zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/utils/open-api/server/.htaccess>
> [9] http://www.zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/utils/open-api/templates/index.html <http://www.zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/utils/open-api/templates/index.html>
> Gerald Fenoy
> Chair, ZOO-Project PSC
> 
> _______________________________________________
> Zoo-discuss mailing list
> Zoo-discuss at lists.osgeo.org <mailto:Zoo-discuss at lists.osgeo.org>
> https://lists.osgeo.org/mailman/listinfo/zoo-discuss <https://lists.osgeo.org/mailman/listinfo/zoo-discuss>
> 
> -- 
> Pablo J. Zader
> Lic. en Cs. de la Computación + MSc. en Aplicaciones Espaciales de Alerta y Respuesta Temprana a Emergencias
> pablo.zader at gmail.com <mailto:pablo.zader at gmail.com> 
> 
> Universidad Nacional de Córdoba
> Av. Valpáraíso s/n Ciudad Universitaria
> 
>   <>  <http://linkedin.com/in/pablo-javier-zader-7a232125> 
> "Los Grandes Hombres hablan sobre ideas...  Los Hombres Promedio hablan sobre cosas...  Los Hombres Pequeños hablan.. de otros Hombres.
> del libro Matemática estas ahí? A. Paenza "
> _______________________________________________
> Zoo-discuss mailing list
> Zoo-discuss at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/zoo-discuss

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/zoo-discuss/attachments/20201103/d4755241/attachment-0001.html>


More information about the Zoo-discuss mailing list