Introduction

What is ZOO ?

ZOO-Project is a WPS (Web Processing Service) open source project released under a MIT/X-11 style license. It provides an OGC WPS compliant developer-friendly framework to create and chain WPS Web services. ZOO-Project provide support for both 1.0.0 and 2.0.0 versions of the WPS specifications. The ZOO-Project also support OGC API - Processes - Part 1: Core since version 1.9.0.

ZOO-Project is made of four parts:

  • ZOO-Kernel : A powerful server-side C Kernel which makes it possible to manage and chain Web services coded in different programming languages.

  • ZOO-Services : A growing suite of example Web Services based on various open source libraries.

  • ZOO-API : A server-side JavaScript API able to call and chain the ZOO Services, which makes the development and chaining processes easier and faster.

  • ZOO-Client : a JavaScript library for interacting with WPS Services from web applications.

ZOO-Project was designed to make the service creation and deployment easy, by providing a powerful system able to understand and execute WPS compliant queries. It supports ten programming languages, thus allowing you to create Web Services using the one you prefer. It also lets you use an existing code and to turn it as a WPS Service. The current supported programming languages are the following:

  • C/C++

  • Python

  • Perl

  • Java

  • Fortran

  • PHP

  • JavaScript

  • Ruby

  • C#

  • R

The ZOO-Kernel is also able to automatically load and execute application from GIS engine such as OrfeoToolBox and SAGA.

More information on the project is available on the ZOO-Project official website .

How does ZOO works ?

ZOO-Project is based on a C Kernel which is the core system (aka ZOO-Kernel). The latter is able to dynamically load libraries and to handle them as on-demand Web services.

A ZOO-Service is a link composed of a ZOO metadata file (.zcfg) and the code for the corresponding implementation. The metadata file describes the function that can be called using a WPS Execute Request, as well as the supported input/output formats. Service contains the algorithms and functions, and can be implemented using any of the supported languages.

ZOO-Kernel works as CGI through Apache and can communicate with cartographic engines and Web mapping clients. It simply adds the WPS support to your spatial data infrastructure and your webmapping applications. It can use every GDAL/OGR supported formats as input data and create suitable vector or raster output for your cartographic engine and/or your web-mapping client application.

What are we going to do in this workshop?

You will learn how to set up ZOO-Kernel and create ZOO-Services from the ZOO-Project Official Docker Compose environment. You will start with a brief overview of the configuration file and interactions with the ZOO-Kernel and ZOO-Services using the basic HTML UI and swagger-ui. You will get introduced to security settings in the OpenAPI exposed by the ZOO-Kernel that conforms to the OGC API - Processes - Part 1: Core specification. First, by applying the HTTP Basic Authentication method, then using OpenID Connect.

Usefull tips for reading

this is a code block

Warning

This is a warning message.

Note

This is an important note.

Let’s go !