[686] | 1 | .. _introduction: |
---|
| 2 | |
---|
| 3 | Introduction |
---|
[715] | 4 | ====================================================== |
---|
[686] | 5 | |
---|
| 6 | .. contents:: Table of Contents |
---|
| 7 | :depth: 5 |
---|
| 8 | :backlinks: top |
---|
| 9 | |
---|
| 10 | What is ZOO ? |
---|
[715] | 11 | -------------------------------------------------------------------- |
---|
[686] | 12 | |
---|
| 13 | ZOO is a WPS (Web Processing Service) open source project recently released under a `MIT/X-11 <http://zoo-project.org/trac/wiki/Licence>`__ style license. It provides an OGC WPS compliant developer-friendly framework to create and chain WPS Web services. ZOO is made of three parts: |
---|
| 14 | |
---|
| 15 | - `ZOO Kernel <http://zoo-project.org/trac/wiki/ZooWebSite/ZooKernel/Introduction>`__ : A powerful server-side C Kernel which makes it possible to manage and chain Web services coded in different programming languages. |
---|
| 16 | - `ZOO Services <http://zoo-project.org/trac/wiki/ZooWebSite/ZooServices/Introduction>`__ : A growing suite of example Web Services based on various open source libraries. |
---|
| 17 | - `ZOO API <http://zoo-project.org/trac/wiki/ZooWebSite/ZOOAPI/Introduction>`__ : A server-side JavaScript API able to call and chain the ZOO Services, which makes the development and chaining processes easier. |
---|
| 18 | |
---|
| 19 | ZOO is designed to make the service development easier by providing a powerful system |
---|
| 20 | able to understand and execute WPS compliant queries. It supports several programming |
---|
| 21 | languages, thus allowing you to create Web Services in your favorite one and from an |
---|
| 22 | already existing code. Further information on the project is available on the |
---|
| 23 | `ZOO Project official website <http://www.zoo-project.org/>`__ . |
---|
| 24 | |
---|
| 25 | How does ZOO works ? |
---|
[715] | 26 | -------------------------------------------------------------------- |
---|
[686] | 27 | |
---|
| 28 | ZOO is based on a 'WPS Service Kernel' which constitutes the ZOO's core system |
---|
| 29 | (aka ZOO Kernel). The latter is able to load dynamic libraries and to handle them |
---|
| 30 | as on-demand Web services. The ZOO Kernel is written in C language, but supports |
---|
| 31 | several common programming languages for creating ZOO Services. |
---|
| 32 | |
---|
| 33 | A ZOO Service is a link composed of a ZOO metadata file (.zcfg) and the code for |
---|
| 34 | the corresponding implementation. The metadata file describes all the available |
---|
| 35 | functions which can be called using a WPS Exec Request, as well as the desired |
---|
| 36 | input/output. Services contain the algorithms and functions, and can now be |
---|
| 37 | implemented in C/C++, Fortran, Java, Python, Perl, PHP and JavaScript. |
---|
| 38 | |
---|
| 39 | ZOO Kernel works with Apache and can communicate with cartographic engines and |
---|
| 40 | Web mapping clients. It simply adds the WPS support to your spatial data infrastructure |
---|
| 41 | and your Web mapping application. It can use every GDAL/OGR supported formats as input |
---|
| 42 | data and create suitable vector or raster output for your cartographic engine and/or |
---|
| 43 | your web-mapping client application. |
---|
| 44 | |
---|
| 45 | What are we going to do in this workshop? |
---|
[715] | 46 | -------------------------------------------------------------------- |
---|
[686] | 47 | |
---|
| 48 | This workshop aims to present the ZOO Project and its features, and to explain its |
---|
| 49 | capabilities regarding the `OGC WPS 1.0.0 specification <http://www.opengeospatial.org/standards/wps>`__. |
---|
| 50 | The participants will learn in 3 hours how to use ZOO Kernel, how to create |
---|
| 51 | ZOO Services and their configuration files and finally how to link the created |
---|
| 52 | Service with a client-side webmapping application. A pre-compiled ZOO 1.0 version |
---|
| 53 | is provided inside OSGeoLive, the OSGeo official Live DVD. For the sack of simplicity, |
---|
| 54 | an OSGeoLive Virtual Machine image disk is already installed on your computers. |
---|
| 55 | This will be used during this workshop, so the participants won't have to compile |
---|
| 56 | and install ZOO Kernel manually. Running and testing ZOO Kernel from this OSGeoLive |
---|
| 57 | image disk is thus the first step of the workshop, and every participants should |
---|
| 58 | get a working ZOO Kernel in less than 30 minutes. |
---|
| 59 | |
---|
| 60 | Once ZOO Kernel will be tested from a Web browser using GetCapabilities requests, |
---|
| 61 | participants will be invited to create an OGR based ZOO Service Provider aiming to |
---|
| 62 | enable simple spatial operations on vector data. Participants will first have to |
---|
| 63 | choose whether they will create the service using C or Python language. Every programming |
---|
| 64 | step of the ZOO Service Provider and the related Services will be each time detailed in |
---|
| 65 | C and Python. Once the ZOO Services will be ready and callable by ZOO Kernel, participants |
---|
| 66 | will finally learn how to use its different functions from an OpenLayers simple application. |
---|
| 67 | A sample dataset was providen by Orkney and included in the OSGeoLiveDVD, data are |
---|
| 68 | available trough OGC WMS/WFS WebServices using MapServer and will be displayed on a |
---|
| 69 | simple map and used as input data by the ZOO Services. Then, some specific selection |
---|
| 70 | and execution controls will be added in the JavaScript code in order to execute single |
---|
| 71 | and multiple geometries on the displayed polygons. |
---|
| 72 | |
---|
| 73 | Once again, the whole procedure will be organized step-by-step and detailed with |
---|
| 74 | numerous code snippets and their respective explanations. The instructors will check |
---|
| 75 | the ZOO Kernel functioning on each machine and will assist you while coding. Technical |
---|
| 76 | questions are of course welcome during the workshop. |
---|
| 77 | |
---|
| 78 | Usefull tips for reading : |
---|
[715] | 79 | -------------------------------------------------------------------- |
---|
[686] | 80 | |
---|
| 81 | .. code-block:: guess |
---|
| 82 | |
---|
| 83 | this is a code block |
---|
| 84 | |
---|
| 85 | .. warning:: This is a warning message. |
---|
| 86 | |
---|
| 87 | .. note:: This is an important note. |
---|
| 88 | |
---|
| 89 | |
---|
| 90 | **Let's go !** |
---|