What is ZOO-Kernel ?

ZOO-Kernel is the heart of the ZOO-Project WPS platform. It is a WPS compliant implementation written in C language which provides a powerful and extensible WPS server.

ZOO-Kernel is an extensible WPS server that makes your system more powerful. It provides a full-featured processing engine which runs on Linux, Mac OSX ™ and Windows ™ operating systems. ZOO-Kernel is a CGI program which works on common web servers (namely Apache or IIS ™). It can be seamlessly integrated to new or existing web platforms.

ZOO-Kernel lets you process geospatial or non geospatial data using well formed WPS requests. The WPS server is able to manage and chain WPS Services (see ZOO-Services for examples) by loading dynamic libraries and source code written in different programming languages.

First class WPS server

Simple

The ZOO-Kernel rely on simple principles and tends to ease the implementation of new services by sharing similar data structures for every supported programming languages. The ZOO-Kernel is responsible to parse the requests it receives and return the corresponding WPS response.

In case of an Execute request, the ZOO-Kernel stores informations in a basic KVP data structure for the programming language used to implement the service, dynamically load the Service Provider defined in the zcfg file and run a specific function corresponding to the service, passing three arguments. Once the function return, ZOO-Kernel knows if the service run succeessfuly or failed by checking the returned value. In the case it succeeded, the ZOO-Kernel then parse the third arguments containing the result and produce the output in the desired format.

Compliant

ZOO-Kernel implements and complies with the WPS 1.0.0 and the WPS 2.0.0 standards edited by the Open Geospatial Consortium. It is able to perform the WPS operations defined in the OpenGIS ® specification, such as:

  • GetCapablities: Returns service-level metadata information.It provides the list of available processing services.

  • DescribeProcess: Returns a description of a process, including its supported input and output.

  • Execute: Launches computation and returns the output produced by a particular process.

  • GetStatus: only available in WPS 2.0.0, it lets the client fetch the ongoing status of a running service.

  • GetResult: only available in WPS 2.0.0, it lets the client fetch the final result of a running service.

  • Dismiss: only available in WPS 2.0.0, it lets the client ask the server to stop a running service and remove any file it created.

ZOO-Kernel compliancy and performances can be tested using the following tools:

Polyglot

ZOO-Kernel is a polyglot. The software is written in a valid form of multiple programming languages, which performs the same operations independent of the programming language used to compile or interpret it. The supported programming languages are listed bellow:

Language

ServiceProvider

DataStructure

Return

C / C++

Shared Library

maps* M

integer

Java

Class File

HashMap

integer

C#

Class File

ZMaps

integer

Python

Module File

Dictionary

integer

PHP

Script File

Array

integer

Perl

Script File

integer

Ruby

Script File

Hash

integer

Fortran

Shared Library

CHARACTER*(1024) M(10,30)

integer

R

Script file

R List

integer

JavaScript

Script file

Object or Array

Object/Array

Node.js

Script file

Object

Integer