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