1 | .. _introduction: |
---|
2 | |
---|
3 | Introduction |
---|
4 | ====================================================== |
---|
5 | |
---|
6 | .. contents:: Table of Contents |
---|
7 | :depth: 5 |
---|
8 | :backlinks: top |
---|
9 | |
---|
10 | What is ZOO ? |
---|
11 | -------------------------------------------------------------------- |
---|
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 ? |
---|
26 | -------------------------------------------------------------------- |
---|
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? |
---|
46 | -------------------------------------------------------------------- |
---|
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 : |
---|
79 | -------------------------------------------------------------------- |
---|
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 !** |
---|