source: branches/branch-1.7/docs/kernel/what.rst @ 942

Last change on this file since 942 was 942, checked in by djay, 6 years ago

Tag the 1.7.0 release.

  • Property svn:keywords set to Date Author
  • Property svn:mime-type set to text/plain
File size: 5.0 KB
Line 
1.. kernel-what:
2
3.. include:: <xhtml1-lat1.txt>
4.. include:: <xhtml1-symbol.txt>
5
6What is ZOO-Kernel ?
7====================
8
9ZOO-Kernel is the heart of the `ZOO-Project <http://zoo-project.org>`_ WPS platform. It is a WPS compliant implementation written in C language which provides a powerful and extensible WPS server.
10
11ZOO-Kernel is an extensible WPS server that makes your system more
12powerful. It provides a full-featured processing engine which runs on
13Linux, Mac OSX |trade| and Windows |trade| operating
14systems. ZOO-Kernel is a CGI program which works on common web servers
15(namely `Apache <http://httpd.apache.org/>`_ or `IIS
16<http://www.iis.net/>`_ |trade|). It can be seamlessly integrated to
17new or existing web platforms.
18
19ZOO-Kernel lets you process geospatial or non geospatial data using
20well formed WPS requests. The WPS server is able to manage and chain
21WPS Services (see ZOO-Services for examples) by loading dynamic
22libraries and source code written in different programming languages. 
23
24First class WPS server
25-----------------------
26
27Simple
28......
29
30The ZOO-Kernel rely on simple principles and tends to ease the
31implementation of new services by sharing similar data structures for
32every supported programming languages. The ZOO-Kernel is responsible
33to parse the requests it receives and return the corresponding WPS
34response.
35
36In case of an *Execute* request, the ZOO-Kernel stores informations in
37a basic KVP data structure for the programming language used to
38implement the service, dynamically load the Service Provider defined
39in the zcfg file and run a specific function corresponding to the
40service, passing three arguments. Once the function return, ZOO-Kernel
41knows if the service run succeessfuly or failed by checking the
42returned value. In the case it succeeded, the ZOO-Kernel then parse
43the third arguments containing the result and produce the output in
44the desired format.
45
46
47
48Compliant
49........................................................
50
51ZOO-Kernel implements and complies with the `WPS 1.0.0
52<http://www.opengeospatial.org/standards/wps/>`_ and the `WPS 2.0.0
53<http://www.opengeospatial.org/standards/wps/>`_ standards edited by
54the `Open Geospatial Consortium <http://www.opengeospatial.org/>`_. It
55is able to perform the WPS operations defined in the OpenGIS |reg|
56specification, such as:
57
58* **GetCapablities**: Returns service-level metadata information.It
59  provides the list of available processing services.
60* **DescribeProcess**: Returns a description of a process, including
61  its supported input and output.
62* **Execute**:  Launches computation and returns the output produced
63  by a particular process.
64* **GetStatus**:  only available in WPS 2.0.0, it lets the client fetch
65  the ongoing status of a running service.
66* **GetResult**: only available in WPS 2.0.0, it lets the client fetch
67  the final result of a running service.
68* **Dismiss**: only available in WPS 2.0.0, it lets the client ask
69  the server to stop a running service and remove any file it created.
70
71ZOO-Kernel compliancy and performances can be tested using the
72following tools:
73 * `cptesting <https://github.com/WPS-Benchmarking/cptesting>`_
74 * WPS Test Suite provided by the `OGC compliancy program <http://cite.opengeospatial.org/>`_
75 * XML responses validity can also be simply tested using `XMLint <http://xmlsoft.org/xmllint.html/>`_.
76
77Polyglot
78........................................................
79
80ZOO-Kernel is a **polyglot**. The software is written in a valid form
81of multiple programming languages, which performs the same operations
82independent of the programming language used to compile or interpret
83it. The supported programming languages are listed bellow:
84
85============ =================== ========================= ============
86**Language** **ServiceProvider** **DataStructure**         **Return**
87------------ ------------------- ------------------------- ------------
88C / C++      Shared Library      maps* M                   integer
89Java         Class File          `HashMap`_                integer
90C#           Class File          `ZMaps`_                  integer
91Python       Module File         `Dictionary`_             integer
92PHP          Script File         `Array`_                  integer
93Perl         Script File                                   integer
94Ruby         Script File         `Hash`_                   integer
95Fortran      Shared Library      CHARACTER*(1024) M(10,30) integer
96R            Script file         `R List`_                 integer
97JavaScript   Script file         `Object`_ or Array        Object/Array
98============ =================== ========================= ============
99
100.. _`HashMap`: http://download.oracle.com/javase/6/docs/api/java/util/HashMap.html
101.. _`dictionary`: http://docs.python.org/tutorial/datastructures.html#dictionaries
102.. _`Array`: http://php.net/manual/language.types.array.php
103.. _`Object`: http://www.json.org/
104.. _`Hash`: http://ruby-doc.org/core-2.2.0/Hash.html
105.. _`ZMaps`: https://docs.microsoft.com/fr-fr/dotnet/api/system.collections.generic.dictionary-2?view=netframework-4.8
106.. _`R List`: https://cran.r-project.org/doc/manuals/r-release/R-lang.html#List-objects
107
Note: See TracBrowser for help on using the repository browser.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png