Index: branches/PublicaMundi_David-devel/docs/services/debug.rst
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/debug.rst	(revision 659)
+++ branches/PublicaMundi_David-devel/docs/services/debug.rst	(revision 659)
@@ -0,0 +1,92 @@
+.. _services-debug:
+
+Debugging ZOO Services
+=========================
+
+Several methods can be used in order to debug :ref:`services_index`. The most common solutions are web or command line.
+
+Web
+----
+
+Any problem can be checked in the Apache server log file when using http WPS requests.
+
+On Unix, the log files is usually located in ``/var/log/apache2`` and
+the relevant one is named *error_log*. A simple way to read this file is to use the ``tail`` command,
+as it allows to see the file updates for each request ::
+
+  tail -f /var/log/apache2/error_log
+
+If the log is not clear enough, you still have the possibility to add
+more debug information to your source code, writing to standard errors.
+
+Python
+********
+Using Python, you can for example do this:
+
+.. code-block:: python
+
+  import sys
+  
+  #add this line when you want see an own message
+  sys.stderr.write("My message")
+
+.. _web_javascript:
+
+Javascript
+************
+
+Using JavaScript, you can use ``alert`` to print a string to standard error, for example:
+
+.. code-block:: javascript
+
+  // add this line when you want to see own message
+  alert('My message')
+  // you can debug value of inputs, outputs or conf
+  alert(inputs["S"]["value"])
+
+.. note:: If you try to pass an object it will only return ``[object Object]``
+
+Command line
+--------------
+
+:ref:`kernel_index` (*zoo_loader.cgi*) can also be used from command line. This is really useful for debugging services in a deeper way, for example:.
+
+.. code-block:: bash
+
+  # in order to use it you have to copy test_service.py and HelloPy.zcfg from
+  # the example services
+  ./zoo_loader.cgi "service=wps&version=1.0.0&request=execute&identifier=HelloPy&datainputs=a=your name&responsedocument=Result"
+
+Working this way you can use the standard debug system of the actual programming language used
+to develop your service.
+
+GDB
+*****
+From command line you can use also the command line tool `GDB <http://www.gnu.org/software/gdb/>`_
+to debug ``zoo_loader.cgi``, you have to run:
+
+.. code-block:: bash
+
+  # launch zoo_loader.cgi from gdb
+  gdb zoo_loader.cgi
+  # now run your request
+  run "service=wps&version=1.0.0&request=execute&identifier=HelloPy&datainputs=a=your name&responsedocument=Result"
+
+At this point you can ask help at the `ZOO mailing list <http://lists.osgeo.org/cgi-bin/mailman/listinfo/zoo-discuss>`_
+copying the result of the command.
+
+Python
+**********
+For Python, you can use ``pdb``, more info at http://docs.python.org/2/library/pdb.html
+
+.. code-block:: python
+
+  import pdb
+  
+  # add this line when you want investigate your code in more detail
+  pdb.set_trace()
+
+Javascript
+************
+
+You can use ``alert`` also to print in the console, more info in the :ref:`web_javascript` web section
Index: branches/PublicaMundi_David-devel/docs/services/debug.txt
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/debug.txt	(revision 506)
+++ 	(revision )
@@ -1,97 +1,0 @@
-.. _services-debug:
-
-How To Debug ZOO Services
-=========================
-
-:Authors: Luca Delucchi
-:Last Updated: $Date: 2013-03-27 00:06:12 +0100 (Wed, 27 Mar 2013) $
-
-There are different ways to debug your services, the most used solutions are via web
-or via command line.
-
-Web
-----
-
-Using the web request you can see any problem in the log file of Apache.
-
-On Unix system the log file is usually in ``/var/log/apache2`` and the relevant file
-is ``error_log``. A simple way to read the file is to use the ``tail`` command,
-it permits to see the update of the file for each request ::
-
-  tail -f /var/log/apache2/error_log
-
-If the log is not clear enough you can add some more debug information to your code. You have to write
-to standard error.
-
-Python
-********
-Using Python, you can for example do this
-
-.. code-block:: python
-
-  import sys
-  
-  #add this line when you want see an own message
-  sys.stderr.write("My message")
-
-.. _web_javascript:
-
-Javascript
-************
-
-You can user ``alert`` to print a string to standard error:
-
-.. code-block:: javascript
-
-  // add this line when you want see an own message
-  alert('My message')
-  // you can debug value of inputs, outputs or conf
-  alert(inputs["S"]["value"])
-
-.. note:: If you try to pass an object it will only return ``[object Object]``
-
-Command line
---------------
-
-It is possible to use the ZOO kernel ``zoo_loader.cgi`` also from command line.
-This is really useful to debug in a deeper way your service:
-
-.. code-block:: bash
-
-  # in order to use it you have to copy test_service.py and HelloPy.zcfg from
-  # the example services
-  ./zoo_loader.cgi "service=wps&version=1.0.0&request=execute&identifier=HelloPy&datainputs=a=your name&responsedocument=Result"
-
-Working this way you can use the standard debug system of the actual programming language used
-to develop your service.
-
-GDB
-*****
-From command line you can use also the command line tool `GDB <http://www.gnu.org/software/gdb/>`_
-to debug ``zoo_loader.cgi``, you have to run:
-
-.. code-block:: bash
-
-  # launch zoo_loader.cgi from gdb
-  gdb zoo_loader.cgi
-  # now run your request
-  run "service=wps&version=1.0.0&request=execute&identifier=HelloPy&datainputs=a=your name&responsedocument=Result"
-
-At this point you can ask help at the `ZOO mailing list <http://lists.osgeo.org/cgi-bin/mailman/listinfo/zoo-discuss>`_
-copying the result of the command.
-
-Python
-**********
-For Python, you can use ``pdb``, more info at http://docs.python.org/2/library/pdb.html
-
-.. code-block:: python
-
-  import pdb
-  
-  # add this line when you want investigate your code in more detail
-  pdb.set_trace()
-
-Javascript
-************
-
-You can use ``alert`` also to print in the console, more info in the :ref:`web_javascript` web section
Index: branches/PublicaMundi_David-devel/docs/services/examples.txt
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/examples.txt	(revision 506)
+++ 	(revision )
@@ -1,45 +1,0 @@
-.. _services-examples:
-
-Service Examples
-================
-
-:Authors: Nicolas Bozon, Gérald Fenoy, Jeff McKenna
-:Last Updated: $Date$
-
-ZOO Services are quite easy to create once you have installed the ZOO Kernel and have 
-chosen code (in the language of your choice) to turn into a ZOO service. Here are some 
-HelloWorlds with links to their corresponding ``.zcfg`` files.
-
-.. contents:: Table of Contents
-    :depth: 3
-    :backlinks: top
-
-GDAL ZOO Service
-----------------
-
-The GDAL ZOO Service is based on  GDAL source code and copyright. This ZOO Service 
-aims to provide some basic raster processing operations to your ZOO Kernel installation. 
-Learn more and read documentation on the official `GDAL website <http://www.gdal.org/>`__.
-
-Implemented functions
-*********************
-
-Gdal_Grid
-    creates regular grid from the scattered data
-
-
-Gdal_Translate
-    converts raster data between different formats
-
-
-OGR ZOO Service
----------------
-
-The OGR ZOO Service is based on  OGR source code and copyright. This ZOO Service aims 
-to provide some basic vector spatial operations to your ZOO Kernel installation. 
-Learn more and read documentation on the official `OGR website <http://www.gdal.org/ogr/index.html>`__.
-
-Implemented functions
-*********************
-
-Base_Vect_Ops
Index: branches/PublicaMundi_David-devel/docs/services/howtos.rst
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/howtos.rst	(revision 659)
+++ branches/PublicaMundi_David-devel/docs/services/howtos.rst	(revision 659)
@@ -0,0 +1,327 @@
+.. _services-create:
+
+Create your own ZOO-Services
+=========================
+
+:ref:`services_index` are quite easy to create once you have installed the ZOO Kernel and have 
+chosen code (in the language of your choice) to turn into a ZOO service. Here are some 
+HelloWorlds in Python, PHP, Java  and JavaScript with links to their corresponding 
+``.zcfg`` files.
+
+
+General information
+----------------------
+
+The function of the process for each programming language take three arguments: the main
+configuration, inputs and outputs.
+
+.. note:: The service must return **3** if the process run successfully
+	  
+.. note:: The service must return **4** if the process ended with an error
+
+Python
+------
+
+You'll find here information needed to deploy your own Python Services Provider.
+
+Python ZCFG requirements
+************************
+
+.. Note:: For each Service provided by your ZOO Python Services Provider, the ZCFG File 
+          must be named the same as the Python module function name (also the case of
+          characters is important).
+
+The ZCFG file should contain the following :
+
+
+serviceType
+    Python 
+serviceProvider
+    The name of the Python module to use as a ZOO Service Provider. For instance, if your
+    script, located in the same directory as your ZOO Kernel, was named ``my_module.py`` then
+    you should use ``my_module`` (the Python module name) for the serviceProvider value in ZCFG file.
+
+Python Data Structure used
+**************************
+The three parameters of the function are passed to the Python module as dictionaries.
+
+Following you'll find an example for each parameters
+
+Main configuration
+^^^^^^^^^^^^^^^^^^^^^
+Main configuration contains several informations, some of them are really useful to develop your service.
+Following an example ::
+
+  {
+  'main': {'lang': 'en-UK',
+	   'language': 'en-US',
+	   'encoding': 'utf-8',
+	   'dataPath': '/var/www/tmp',
+	   'tmpPath': '/var/www/tmp',
+	   'version': '1.0.0',
+	   'mapserverAddress': 'http://localhost/cgi-bin/mapserv',
+	   'isSoap': 'false',
+	   'tmpUrl': 'http://localhost/tmp/',
+	   'serverAddress': 'http://localhost/zoo'
+	  },
+  'identification': {'keywords': 'WPS,GIS',
+		     'abstract': 'WPS services for testing ZOO',
+		     'fees': 'None',
+		     'accessConstraints': 'none',
+		     'title': 'testing services'
+		    },
+  'lenv': {'status': '0',
+	   'soap': 'false',
+	   'cwd': '/usr/lib/cgi-bin',
+	   'sid': '24709'
+	  },
+  'env': {'DISPLAY': 'localhost:0'},
+  'provider': {'addressCountry': 'it',
+	       'positionName': 'Developer',
+	       'providerName': 'Name of provider',
+	       'addressAdministrativeArea': 'False',
+	       'phoneVoice': 'False',
+	       'addressCity': 'City',
+	       'providerSite': 'http://www.your.site',
+	       'addressPostalCode': '38122',
+	       'role': 'Developer',
+	       'addressDeliveryPoint': 'False',
+	       'phoneFacsimile': 'False', 
+	       'addressElectronicMailAddress': 'your@email.com',
+	       'individualName': 'Your Name'
+	      }
+  }
+
+Inputs
+^^^^^^^^^^^^
+The inputs are somethings like this ::
+
+  {
+  'variable_name': {'minOccurs': '1',
+		    'DataType': 'string',
+		    'value': 'this_is_the_value',
+		    'maxOccurs': '1',
+		    'inRequest': 'true'
+		   }
+  }
+
+The access to the value you have to require for the ``value`` parameter, something like this ::
+
+  yourVariable = inputs['variable_name']['value']
+
+Outputs
+^^^^^^^^^^^^^
+The outputs data as a structure really similar to the inputs one ::
+
+  {
+  'result': {'DataType': 'string',
+	     'inRequest': 'true',
+	    }
+  }
+
+There is no ``'value'`` parameter before you assign it ::
+
+  inputs['result']['value'] = yourOutputDataVariable
+
+The return statement has to be an integer: corresponding to the service status code.
+
+To add a message for the wrong result you can add the massage to ``conf["lenv"]["message"]``,
+for example:
+
+.. code-block:: python
+
+  conf["lenv"]["message"] = 'Your module return an error'
+
+Sample ZOO Python Services Provider
+***********************************
+
+The following code represents a simple ZOO Python Services Provider which provides only one 
+Service, the HelloPy one.
+
+.. code-block:: python
+
+  import zoo
+  import sys
+  def HelloPy(conf,inputs,outputs):
+     outputs["Result"]["value"]="Hello "+inputs["a"]["value"]+" from Python World !"
+     return zoo.SERVICE_SUCCEEDED
+
+PHP
+---
+
+ZOO-API
+*******
+
+The ZOO-API for the PHP language is automatically available from your
+service code. Tthe following functions are defined in the ZOO-API:
+
+int zoo_SERVICE_SUCCEEDED()
+    return the value of SERVICE_SUCCEEDED
+int zoo_SERVICE_FAILED()
+    return the value of SERVICE_FAILED
+string zoo_Translate(string a)
+    return the translated string (using the "zoo-service" `textdomain
+    <http://www.gnu.org/software/libc/manual/html_node/Locating-gettext-catalog.html#index-textdomain>`__)
+
+void zoo_UpdateStatus(Array conf,string message,int pourcent)
+    update the status of the running service
+
+PHP ZCFG requirements
+**********************************
+
+The ZCFG file should contain the following :
+
+serviceType
+    PHP 
+serviceProvider
+    The name of the php script (ie. service.php) to use as a ZOO Service Provider.
+
+PHP Data Structure used
+********************************
+
+The three parameters are passed to the PHP function as 
+`Arrays <php.net/manual/language.types.array.php>`__.
+
+Sample ZOO PHP Services Provider
+******************************************
+
+.. code-block:: php
+
+  <?
+  function HelloPHP(&$main_conf,&$inputs,&$outputs){
+     $tmp="Hello ".$inputs[S][value]." from PHP world !";
+     $outputs["Result"]["value"]=zoo_Translate($tmp);
+     return zoo_SERVICE_SUCCEEDED();
+  }
+  ?>
+
+Java
+----
+
+Specifically for the Java support, you may add the following two
+sections to your ``main.cfg`` file:
+
+:[javaxx]:
+   This section is used to pass -XX:* parameters to the JVM  created by the
+   ZOO-Kernel to handle your ZOO-Service (see `ref. 1
+   <http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#BehavioralOptions>`__
+   or `ref. 2
+   <http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#PerformanceTuning>`__
+   for sample available). 
+   For each map ``a = b`` available in the ``[javaxx]`` section, the
+   option ``-XX:a=b`` will be passed to the JVM. In case of a map ``a =
+   minus`` (respectively ``a=plus``) then the option ``-XX:-a``
+   (respectivelly ``-XX:+a``) will be passed.
+:[javax]:
+   The section is used to pass -X* options to the JVM (see
+   `ref. <http://docs.oracle.com/cd/E22289_01/html/821-1274/configuring-the-default-jvm-and-java-arguments.html>`__). For
+   each map ``a = b`` available in the ``[javax]`` section, the option
+   ``-Xab`` will be passed to the JVM (ie. set ``mx=2G`` to pass
+   ``-Xmx2G``).
+
+ZOO-API
+*******
+
+Before you build your first ZOO-Service implemented in Java, it is
+recommended that you first build the ZOO class of the Java ZOO-API.
+
+.. Note:: You should build ZOO-Kernel prior to follow this instructions.
+
+To build the ZOO.class of the ZOO-API for Java, use the following
+command:
+
+.. code-block:: guess
+
+  cd zoo-api/java
+  make
+  cp ZOO.class libZOO.so /usr/lib/cgi-bin
+
+.. Note:: running the previous commands will require that both
+          ``javac`` and ``javah`` are in your PATH.
+
+Java ZCFG requirements
+**********************************
+
+.. Note:: For each Service provided by your ZOO Java Services Provider
+          (your corresponding Java class), the ZCFG File should have
+          the name of the Java public method corresponding to the
+          service (case-sensitive).
+
+The ZCFG file should contain the following :
+
+serviceType
+    Java 
+serviceProvider
+    The name of the Java class to use as a ZOO Service Provider. For instance, if your
+    java class, located in the same directory as your ZOO-Kernel, was
+    named ``HelloJava.class`` then you should use ``HelloJava``.
+
+Java Data Structure used
+********************************
+
+The three parameters are passed to the Java function as 
+`java.util.HashMap <http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html>`__.
+
+Sample ZOO Java Services Provider
+******************************************
+
+.. code-block:: java
+
+  import java.util.*;
+  public class HelloJava {
+    public static int HelloWorldJava(HashMap conf,HashMap inputs, HashMap outputs) {
+       HashMap hm1 = new HashMap();
+       hm1.put("dataType","string");
+       HashMap tmp=(HashMap)(inputs.get("S"));
+       java.lang.String v=tmp.get("value").toString();
+       hm1.put("value","Hello "+v+" from JAVA WOrld !");
+       outputs.put("Result",hm1);
+       System.err.println("Hello from JAVA WOrld !");
+       return ZOO.SERVICE_SUCCEEDED;
+    }
+  }
+
+Javascript
+----------
+
+ZOO API
+*********
+
+If you need to use :ref:`ZOO API <api>` in your service, you have first to copy ``zoo-api.js``
+and ``zoo-proj4js.js`` where your services are located (for example in Unix system probably in
+``/usr/lib/cgi-bin/``
+
+Javascript ZCFG requirements
+**********************************
+
+.. Note:: For each Service provided by your ZOO Javascript Services Provider, the ZCFG File 
+          must be named the same as the Javascript function name (also the case of
+          characters is important).
+
+The ZCFG file should contain the following :
+
+serviceType
+    JS 
+serviceProvider
+    The name of the JavaScript file to use as a ZOO Service Provider. For instance, if your
+    script, located in the same directory as your ZOO Kernel, was named ``my_module.js`` then
+    you should use ``my_module.js``.
+
+
+Javascript Data Structure used
+********************************
+
+The three parameters of the function are passed to the JavaScript function as Object.
+
+Sample ZOO Javascript Services Provider
+******************************************
+
+.. code-block:: javascript
+
+  function hellojs(conf,inputs,outputs){
+     outputs=new Array();
+     outputs={};
+     outputs["result"]["value"]="Hello "+inputs["S"]["value"]+" from JS World !";
+     return Array(3,outputs);
+  }
+
Index: branches/PublicaMundi_David-devel/docs/services/howtos.txt
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/howtos.txt	(revision 506)
+++ 	(revision )
@@ -1,227 +1,0 @@
-.. _services-howtos:
-
-How To Setup ZOO Services
-=========================
-
-:Authors: Nicolas Bozon, Gérald Fenoy, Jeff McKenna, Luca Delucchi
-:Last Updated: $Date$
-
-ZOO Services are quite easy to create once you have installed the ZOO Kernel and have 
-chosen code (in the language of your choice) to turn into a ZOO service. Here are some 
-HelloWorlds in Python, PHP, Java  and JavaScript with links to their corresponding 
-``.zcfg`` files.
-
-.. contents:: Table of Contents
-    :depth: 3
-    :backlinks: top
-
-Common informations
-----------------------
-
-The function of the process for each programming language take three arguments: the main
-configuration, inputs and outputs.
-
-.. Note:: The service has to **return 3 if the process run successfully instead it 
-	  return 4** if the process end with an error.
-
-Python
-------
-
-You'll find here information needed to deploy your own Python Services Provider.
-
-Python ZCFG requirements
-************************
-
-.. Note:: For each Service provided by your ZOO Python Services Provider, the ZCFG File 
-          must be named the same as the Python module function name (also the case of
-          characters is important).
-
-The ZCFG file should contain the following :
-
-
-serviceType
-    Python 
-serviceProvider
-    The name of the Python module to use as a ZOO Service Provider. For instance, if your
-    script, located in the same directory as your ZOO Kernel, was named ``my_module.py`` then
-    you should use ``my_module`` (the Python module name) for the serviceProvider value in ZCFG file.
-
-Python Data Structure used
-**************************
-The three parameters of the function are passed to the Python module as dictionaries.
-
-Following you'll find an example for each parameters
-
-Main configuration
-^^^^^^^^^^^^^^^^^^^^^
-Main configuration contains several informations, some of them are really useful to develop your service.
-Following an example ::
-
-  {
-  'main': {'lang': 'en-UK',
-	   'language': 'en-US',
-	   'encoding': 'utf-8',
-	   'dataPath': '/var/www/tmp',
-	   'tmpPath': '/var/www/tmp',
-	   'version': '1.0.0',
-	   'mapserverAddress': 'http://localhost/cgi-bin/mapserv',
-	   'isSoap': 'false',
-	   'tmpUrl': 'http://localhost/tmp/',
-	   'serverAddress': 'http://localhost/zoo'
-	  },
-  'identification': {'keywords': 'WPS,GIS',
-		     'abstract': 'WPS services for testing ZOO',
-		     'fees': 'None',
-		     'accessConstraints': 'none',
-		     'title': 'testing services'
-		    },
-  'lenv': {'status': '0',
-	   'soap': 'false',
-	   'cwd': '/usr/lib/cgi-bin',
-	   'sid': '24709'
-	  },
-  'env': {'DISPLAY': 'localhost:0'},
-  'provider': {'addressCountry': 'it',
-	       'positionName': 'Developer',
-	       'providerName': 'Name of provider',
-	       'addressAdministrativeArea': 'False',
-	       'phoneVoice': 'False',
-	       'addressCity': 'City',
-	       'providerSite': 'http://www.your.site',
-	       'addressPostalCode': '38122',
-	       'role': 'Developer',
-	       'addressDeliveryPoint': 'False',
-	       'phoneFacsimile': 'False', 
-	       'addressElectronicMailAddress': 'your@email.com',
-	       'individualName': 'Your Name'
-	      }
-  }
-
-Inputs
-^^^^^^^^^^^^
-The inputs are somethings like this ::
-
-  {
-  'variable_name': {'minOccurs': '1',
-		    'DataType': 'string',
-		    'value': 'this_is_the_value',
-		    'maxOccurs': '1',
-		    'inRequest': 'true'
-		   }
-  }
-
-The access to the value you have to require for the ``value`` parameter, something like this ::
-
-  yourVariable = inputs['variable_name']['value']
-
-Outputs
-^^^^^^^^^^^^^
-The outputs data as a structure really similar to the inputs one ::
-
-  {
-  'result': {'DataType': 'string',
-	     'inRequest': 'true',
-	    }
-  }
-
-There is no ``'value'`` parameter before you assign it ::
-
-  inputs['result']['value'] = yourOutputDataVariable
-
-The return statement has to be an integer: corresponding to the service status code.
-
-To add a message for the wrong result you can add the massage to ``conf["lenv"]["message"]``,
-for example:
-
-.. code-block:: python
-
-  conf["lenv"]["message"] = 'Your module return an error'
-
-Sample ZOO Python Services Provider
-***********************************
-
-The following code represents a simple ZOO Python Services Provider which provides only one 
-Service, the HelloPy one.
-
-.. code-block:: python
-
-  import sys
-  def HelloPy(conf,inputs,outputs):
-     outputs["Result"]["value"]="Hello "+inputs["a"]["value"]+" from Python World !"
-     return 3
-
-PHP
----
-
-.. code-block:: php
-
-  <?
-  function HelloPHP(&$main_conf,&$inputs,&$outputs){
-     $outputs["Result"]["value"]="Hello ".$inputs[S][value]." from PHP world !";
-     return 3;
-  }
-  ?>
-
-Java
-----
-
-.. code-block:: java
-
-  import java.util.*;
-  public class HelloJava {
-    public static int HelloWorldJava(HashMap conf,HashMap inputs, HashMap outputs) {
-       HashMap hm1 = new HashMap();
-       hm1.put("dataType","string");
-       HashMap tmp=(HashMap)(inputs.get("S"));
-       java.lang.String v=tmp.get("value").toString();
-       hm1.put("value","Hello "+v+" from JAVA WOrld !");
-       outputs.put("Result",hm1);
-       System.err.println("Hello from JAVA WOrld !");
-       return 3;
-    }
-  }
-
-Javascript
-----------
-
-ZOO API
-*********
-
-If you need to use :ref:`ZOO API <api>` in your service, you have first to copy ``zoo-api.js``
-and ``zoo-proj4js.js`` where your services are located (for example in Unix system probably in
-``/usr/lib/cgi-bin/``
-
-Javascript ZCFG requirements
-**********************************
-
-.. Note:: For each Service provided by your ZOO Javascript Services Provider, the ZCFG File 
-          must be named the same as the Javascript function name (also the case of
-          characters is important).
-
-The ZCFG file should contain the following :
-
-serviceType
-    JS 
-serviceProvider
-    The name of the JavaScript file to use as a ZOO Service Provider. For instance, if your
-    script, located in the same directory as your ZOO Kernel, was named ``my_module.js`` then
-    you should use ``my_module.js``.
-
-
-Javascript Data Structure used
-********************************
-
-The three parameters of the function are passed to the JavaScript function as Object.
-
-Sample ZOO Javascript Services Provider
-******************************************
-
-.. code-block:: javascript
-
-  function hellojs(conf,inputs,outputs){
-     outputs=new Array();
-     outputs={};
-     outputs["result"]["value"]="Hello "+inputs["S"]["value"]+" from JS World !";
-     return Array(3,outputs);
-  }
-
Index: branches/PublicaMundi_David-devel/docs/services/index.rst
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/index.rst	(revision 659)
+++ branches/PublicaMundi_David-devel/docs/services/index.rst	(revision 659)
@@ -0,0 +1,20 @@
+.. _services_index:
+
+ZOO-Services 
+==========
+
+This section will guide you for creating your own WPS
+Services using the `ZOO-Project <http://zoo-project.org>`__
+platform. It also gives usefull information for taking advantage of the ready-to-use
+**ZOO-Services** which are available in the ZOO-Project svn.
+
+.. toctree::
+   :maxdepth: 2
+   
+   what
+   zcfg-reference
+   process-profiles
+   howtos
+   status
+   debug
+   zoo-services
Index: branches/PublicaMundi_David-devel/docs/services/index.txt
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/index.txt	(revision 506)
+++ 	(revision )
@@ -1,16 +1,0 @@
-.. _services:
-
-ZOO Services Documentation
-==========================
-
-The following sections will assist you with ZOO Services:
-
-.. toctree::
-   :maxdepth: 2
-   
-   introduction
-   zcfg-reference
-   howtos
-   status
-   debug
-   examples
Index: branches/PublicaMundi_David-devel/docs/services/introduction.txt
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/introduction.txt	(revision 506)
+++ 	(revision )
@@ -1,30 +1,0 @@
-.. _services-intro:
-
-Introduction
-============
-
-ZOO Services are example Web services which work with the ZOO :ref:`Kernel <kernel-introduction>`. 
-They are based on various existing Open Source libraries and tend to provide simple Web processing 
-functions such as GIS format conversion, GIS file reprojection, basic spatial operations, 
-basic raster operations...
-
-The available ZOO Services are under development and come without any warranty. They are based 
-on existing code and prove that the :ref:`ZOO Kernel <kernel-introduction>` works with many different 
-codes and languages (please have a look to the ZOO demos!). The ZOO Project team wants to encourage 
-people to use the ZOO Services as a functional basis for Web processing, but above all to provide a 
-source of inspiration to the community for creating new ZOO Services.
-
-What is a ZOO Service?
-----------------------
-
-A ZOO Service is a couple composed of:
-
-- The code you want to turn into a standardized Web service
-- A configuration file (.zcfg) which describes this Web service 
-
-Learn more on configuring ZOO services by reading the :ref:`.zcfg Reference <services-zcfg>`.
-
-Example ZOO Services
---------------------
-
-See the ZOO Services :ref:`examples page <services-examples>`.
Index: branches/PublicaMundi_David-devel/docs/services/process-profiles.rst
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/process-profiles.rst	(revision 659)
+++ branches/PublicaMundi_David-devel/docs/services/process-profiles.rst	(revision 659)
@@ -0,0 +1,172 @@
+.. _process-profiles:
+    
+Process profiles registry
+================
+
+WPS Services belonging to the same Services provider often share the
+same inputs and outputs. In such a case, every :ref:`ZCFG
+<services-zcfg>` file would contain the same metadata information and
+this may be a waste of time to write them all.
+
+:ref:`ZOO-Kernel <kernel_index>` is able to handle metadata inheritance from `rev. 607 <http://www.zoo-project.org/trac/changeset/607>`__, and this solves the issue of writing many ZCFG with same input and output. A registry can be loaded (before any other ZCFG files) and contain a set of Process Profiles organized in hierarchic levels according to the following rules:
+
+  * *Concept*: The higher level in the hierarchy. *Concepts* are basic text files containing an abstract description of a WPS Service.
+  * *Generic*: A *Generic* profile can make reference to *Concepts*. It defines inputs and outputs without data format or maximum size limitation.
+  * *Implementation*: An *Implementation* profile can inherit from a
+    generic profile and make reference to concepts. It contains all
+    the metadata information about a particular WPS Service (see
+    :ref:`ZCFG reference <services-zcfg>` for more information).
+
+Both *Generic* and *Implementation* process profiles are created  from :ref:`ZCFG <services-zcfg>` files and stored in the registry sub-directories
+according to their level (*Concept*, *Generic* or *Implementation*).
+
+To activate the registry, you have to add a ``registry`` key to the
+``[main]`` section of your ``main.cfg`` file, and set its value to the
+directory path used to store the profile ZCFG files.
+
+
+Generic Process Profile
+-----------------------
+
+A Generic Process Profile is a ZCFG file located in the ``generic``
+sub-directory, it defines `main metadata information
+<zcfg-reference.html#main-metadata-information>`__, inputs and outputs
+name, basic metadata and multiplicity. It can make reference to a
+concept by defining a ``concept`` key in the `main metadata
+information <zcfg-reference.html#main-metadata-information>`__ part.
+
+You can find below the `GO.zcfg` file, a typical Generic Process
+Profile for Generic Geographic Operation, taking one InputPolygon
+input parameter and returning a result named Result, it make reference
+to the ``GOC`` concept:
+
+.. code-block:: none
+   :linenos:
+   
+   [GO]
+    Title = Geographic Operation
+    Abstract = Geographic Operation on exactly one input, returning one output
+    concept = GOC
+    level = generic
+    statusSupported = true
+    storeSupported = true
+    <DataInputs>
+     [InputPolygon]
+      Title = the geographic data
+      Abstract = the geographic data to run geographipc operation
+      minOccurs = 1
+      maxOccurs = 1
+    </DataInputs>
+    <DataOutputs>
+     [Result]
+      Title = the resulting data
+      Abstract = the resulting data after processing the operation
+    </DataOutputs>  
+
+
+.. Note:: if you need to reference more than one concept, you should
+    separate their names with a comma (ie. concept = GO,GB),
+
+Process Implementation Profile
+------------------------------
+
+A Process Implementation Profile is similar to a `ZCFG file
+<zcfg-reference.html>`__ located in the `implementation`
+sub-directory, it defines (or inherit from its parent) all the
+properties of a `Generic Process Profile <#generic-process-profile>`__
+and specify `Data Format <zcfg-reference.html#type-of-data-nodes>`__
+for both inputs and outputs. It can make reference to a concept by
+defining a ``concept`` key in the `main metadata information
+<zcfg-reference.html#main-metadata-information>`__ part.
+
+You can find below the `VectorOperation.zcfg` file, a typical Process
+Implementation Profile for Vector Geographic Operation, it inherit
+from the `GP generic profile <#generic-process-profile>`__:
+
+.. code-block:: none
+   :linenos:
+   
+   [VectorOperation]
+    Title = Vector Geographic Operation
+    Abstract = Apply a Vector Geographic Operation on a features collection and return the resulting features collection
+    extend = GO
+    level = profile
+    <DataInputs>
+     [InputPolygon]
+      Title = the vector data
+      Abstract = the vector data to run geographic operation
+      <ComplexData>
+       <Default>
+        mimeType = text/xml
+        encoding = UTF-8
+        schema = http://fooa/gml/3.1.0/polygon.xsd
+       </Default>
+       <Supported>
+        mimeType = application/json
+        encoding = UTF-8
+        extension = js
+       </Supported>
+    </DataInputs>
+    <DataOutputs>
+     [Result]
+      Title = the resulting data
+      Abstract = the resulting geographic data after processing the operation
+      <ComplexData>
+       <Default>
+        mimeType = text/xml
+        encoding = UTF-8
+        schema = http://fooa/gml/3.1.0/polygon.xsd
+       </Default>
+       <Supported>
+        mimeType = application/json
+        encoding = UTF-8
+        extension = js
+       </Supported>
+      </ComplexData>
+    </DataOutputs>  
+
+
+ZCFG inheritance
+----------------------------------
+
+For the ZCFG files at the service level, you can inherit the metadata
+from a Process Implementation Profile available in the registry. As
+before, you simply need to add a ``extend`` key refering the ZCFG you
+want to inherit from and a ``level`` key taking the `ìmplementation``
+value to your main metadata informations.
+
+So, for example, the original `ConvexHull.zcfg
+<http://www.zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/ogr/base-vect-ops/cgi-env/ConvexHull.zcfg?rev=491>`__
+may be rewritten as:
+
+.. code-block:: none
+   :linenos:
+   
+   [ConvexHull]
+    Title = Compute convex hull.
+    Abstract = Return a feature collection that represents the convex hull of each geometry from the input collection.
+    serviceProvider = ogr_service.zo
+    serviceType = C
+    extend = VectorOperation
+    level = implementation
+
+Now, suppose that your service is able to return the result in KML
+format, then you may write the following:
+
+.. code-block:: none
+   :linenos:
+   
+   [ConvexHull]
+    Title = Compute convex hull.
+    Abstract = Return a feature collection that represents the convex hull of each geometry from the input collection.
+    serviceProvider = ogr_service.zo
+    serviceType = C
+    extend = VectorOperation
+    level = implementation
+    <DataOutputs>
+     [Result]
+        <Supported>
+         mimeType = application/vnd.google-earth.kml+xml
+         encoding = utf-8
+        </Supported>
+    </DataOutputs>
Index: branches/PublicaMundi_David-devel/docs/services/status.rst
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/status.rst	(revision 659)
+++ branches/PublicaMundi_David-devel/docs/services/status.rst	(revision 659)
@@ -0,0 +1,47 @@
+.. _services-status:
+
+ZOO Status Service
+===============================
+
+The ZOO-Status Service is a `ZOO-Project <http://zoo-project.org>`__
+utility allowing to get the status of a running WPS Service.
+
+Description
+-----------------------------
+
+It returns the stage of completion of the ongoing Service in percentage
+(%). The ZOO-Status Service is usefull to monitor :ref:`services_index`. It can
+also be used to animate WPS progress bars from client-side applications.
+
+Installation
+-----------------------------
+
+To install the ``ZOO Status Service`` you have to move in 
+``/path/to/zoo/source/zoo-services/utils/status/`` and compile the source
+running the ``make`` command.
+If no errors are returned during compilation you can copy the content of ``cgi-env``
+to ``/usr/lib/cgi-bin/`` or where you have your ``zoo_loader.cgi`` working with this
+command (you need administration right):
+
+::
+
+   cp /path/to/zoo/source/zoo-services/utils/status/cgi-env/*{zcfg,zo,py} /usr/lib/cgi-bin
+
+With this command you copy the code to permit to ``ZOO Status Service`` and some
+example processes about how it works.
+
+Now you have to add these two lines to ``main.cfg`` :
+
+::
+
+  rewriteUrl=call
+  dataPath=/var/www/data
+
+Here you define the path where the service is able to find the xsl file, specified in the dataPath
+parameter. You also tell the ZOO Kernel that you want to use the `rewriteUrl <../kernel/install-debian.html#rewrite-rule-configuration>`_.
+
+The last operation is to copy the ``updateStatus.xsl`` to ``dataPath`` directory as follow:
+
+::
+
+   cp /path/to/zoo/source/zoo-services/utils/status/cgi-env/*{xsl} /var/www/data
Index: branches/PublicaMundi_David-devel/docs/services/status.txt
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/status.txt	(revision 506)
+++ 	(revision )
@@ -1,43 +1,0 @@
-.. _services-status:
-
-How To Use ZOO Status Service
-===============================
-
-:Authors: Luca Delucchi
-:Last Updated: $Date: 2013-03-27 00:06:12 +0100 (Wed, 27 Mar 2013) $
-
-*ZOO Status Service* is a utility of ZOO-Project to return the
-completion percent of your service.
-
-Install ZOO Status Service
------------------------------
-
-To install the ``ZOO Status Service`` you have to move in 
-``/path/to/zoo/source/zoo-services/utils/status/`` and compile the source
-running the ``make`` command.
-If no errors are returned during compilation you can copy the content of ``cgi-env``
-to ``/usr/lib/cgi-bin/`` or where you have your ``zoo_loader.cgi`` working with this
-command (you need administration right):
-
-::
-
-   cp /path/to/zoo/source/zoo-services/utils/status/cgi-env/*{zcfg,zo,py} /usr/lib/cgi-bin
-
-With this command you copy the code to permit to ``ZOO Status Service`` and some
-example processes about how it works.
-
-Now you have to add these two lines to ``main.cfg`` :
-
-::
-
-  rewriteUrl=call
-  dataPath=/var/www/data
-
-Here you define the path where the service is able to find the xsl file, specified in the dataPath
-parameter. You also tell the ZOO Kernel that you want to use the `rewriteUrl <../kernel/install-debian.html#rewrite-rule-configuration>`_.
-
-The last operation is to copy the ``updateStatus.xsl`` to ``dataPath`` directory as follow:
-
-::
-
-   cp /path/to/zoo/source/zoo-services/utils/status/cgi-env/*{xsl} /var/www/data
Index: branches/PublicaMundi_David-devel/docs/services/what.rst
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/what.rst	(revision 659)
+++ branches/PublicaMundi_David-devel/docs/services/what.rst	(revision 659)
@@ -0,0 +1,27 @@
+.. _services-what:
+
+What are ZOO-Services ?
+=================
+
+ZOO-Services are WPS compliant Web Services working with :ref:`ZOO-Kernel <kernel_index>`, the `ZOO-Project <http://zoo-project.org>`_ WPS server.
+
+What is a ZOO-Service?
+----------------------
+
+A ZOO Service is a couple composed of:
+
+- Source code you want to create or reuse as WPS Service
+- A :ref:`configuration file<services-zcfg>` (.zcfg) which describes this WPS Service
+
+Learn how to  :ref:`create your own <services-create>` and how to
+configure ZOO-Services according to the :ref:`ZCFG Reference <services-zcfg>`.
+
+Available ZOO-Services
+--------------------
+
+`ZOO-Project <http://zoo-project.org>`_ includes ready-to-use WPS Services based on reliable open source libraries such as `GDAL <http://gdal.org>`_, `GRASS GIS <http://grass.osgeoorg>`_, `OrfeoToolbox <http://orfeo-toolbox.org>`_ and `CGAL <http://gcal.org>`_. The so-called ZOO-Services aim at reusing existing geospatial algorithms through standard WPS, with no or minor modification of the involved software or library source codes. 
+
+Available ZOO-Services provide a number of significant examples to
+build your own.
+
+
Index: branches/PublicaMundi_David-devel/docs/services/zcfg-reference.rst
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/zcfg-reference.rst	(revision 659)
+++ branches/PublicaMundi_David-devel/docs/services/zcfg-reference.rst	(revision 659)
@@ -0,0 +1,300 @@
+.. _services-zcfg:
+    
+ZOO-Service configuration file
+=========================================  
+
+The ZOO-Service configuration file (.zcfg) describes a
+WPS service. It provides metadata information on a particular WPS
+Service and it is parsed by ZOO-Kernel when *DescribeProcess* and
+*Execute* request are sent.
+
+The ZOO-Service configuration file is divided into three distinct sections :
+
+ * Main Metadata information
+ * List of Inputs metadata information (optional since `rev. 469 <http://zoo-project.org/trac/changeset/469>`__)
+ * List of Outputs metadata information
+
+.. warning:: The ZOO-Service configuration file is case sensitive.
+
+.. note:: There are many example ZCFG files in the ``cgi-env`` directory of the `ZOO-Project svn <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services>`__.
+
+
+Main section
+-------------------------
+
+The fist part of the ZOO-Service configuration file is the ``main`` section,
+which contains general metadata information on the related WPS
+Service.
+
+Note that the "name of your service" between brackets on the first line has to be the exact same name 
+as the function you defined in your services provider code. In most cases, this name is also the name 
+of the ZCFG file without the "``.zcfg``" extension.
+
+An example of the ``main`` section  is given bellow as reference.
+
+.. code-block:: none
+   :linenos:
+
+   [Name of WPS Service]
+   Title = Title of the WPS Service
+   Abstract = Description of the WPS Service
+   processVersion = Version number of the WPS Service
+   storeSupported = true/false
+   statusSupported = true/false
+   serviceType = Pprogramming language used to implement the service (C|Fortran|Python|Java|PHP|Ruby|Javascript)
+   serviceProvider = Name of the Services provider (shared library|Python Module|Java Class|PHP Script|JavaScript Script)
+   <MetaData>
+     title = Metadata title of the WPS Service
+   </MetaData>
+
+.. warning::  'Name of WPS Service' must be the exact same name as the function defined in the WPS Service source code.
+
+.. note:: An ``extend`` parameter may be used for the `Process profile registry <process-profiles.html>`__.
+
+List of Inputs
+--------------
+
+The second part of the ZOO-Service configuration file is the ``<DataInputs>``
+section which lists the supported inputs. Each input is defined as :
+
+ * Name (between brackets as for the name of the service before)
+ * Various medata properties (``Title``, ``Abstract``, ``minOccurs``, ``maxOccurs`` and, in case of ComplexData, the optional ``maximumMegabytes``)
+ * :ref:`Type Of Data Node  <typeDataNodes>` 
+
+A typical list of inputs (``<DataInputs>``) looks like the following:
+
+.. code-block:: none
+   :linenos:
+   
+   <DataInputs>
+     [Name of the first input]
+       Title = Title of the first input
+       Abstract = Abstract describing the first input
+       minOccurs = Minimum occurence of the first input
+       maxOccurs = Maximum occurence of the first input
+       <Type Of Data Node />
+     [Name of the second input]
+       Title = Title of the second input
+       Abstract = Abstract describing the second input
+       minOccurs = Minimum occurence of the second input
+       maxOccurs = Maximum occurence of the second input
+       <Type Of Data Node />
+   </DataInputs>
+   
+.. note:: A ``<MetaData>`` node can also be added, as in the main metadata information.
+
+List of Outputs
+---------------
+
+The third part of the ZOO Service configuration file is the ``<DataOutputs>``
+section, which lists the supported outputs and is is very similar to a
+list of inputs.
+
+A typical list of outputs (``<DataOutputs>``) looks like the
+following:
+
+.. code-block:: none
+   :linenos:
+   
+   <DataOutputs>
+     [Name of the output]
+       Title = Title of the output
+       Abstract = Description of the output
+       <Type Of Data Node />
+   </DataOutputs>
+
+.. _typeDataNodes:
+
+Type Of Data Nodes
+------------------
+
+The *Type Of Data Nodes* describes data types for inputs and
+outputs. There are three different types which are described in this
+section.
+ * :ref:`LiteralData <LiteralData>`
+ * :ref:`BoundingBoxData <BoundingBoxData>`
+ * :ref:`ComplexData <ComplexData>`
+
+ .. warning:: Every *BoundingBoxData* and *ComplexData* must have at least one ``<Default>`` node (even empty like ``<Default />``)
+
+.. _LiteralData:
+
+LiteralData node
+****************
+
+A ``<LiteralData>`` node contains:
+
+- one (optional) ``AllowedValues`` key containing all value allowed for this input
+- one (optional) ``range`` properties containing the range (``[``, ``]``)
+- one (optional) ``rangeMin`` (``rangeMax``) properties containing the minimum (maximum) value of this range
+- one (optional) ``rangeSpacing`` properties containing the regular distance or spacing between value in this range
+- one (optional) ``rangeClosure`` properties containing the closure type (``c``, ``o``, ``oc``, ``co``)
+- one ``<Default>`` node,
+- zero or more ``<Supported>`` nodes depending on the existence or the number of supported Units Of Measure (UOM), and 
+- a ``dataType`` property. The ``dataType`` property defines the type of literal data, such as a string, an interger and so on 
+  (consult `the complete list <http://www.w3.org/TR/xmlschema-2/#built-in-datatypes>`__ of supported data types). 
+
+``<Default>`` and ``<Supported>`` nodes can contain the ``uom`` property to define which UOM has to be used for 
+this input value.
+
+For input ``<LiteralData>`` nodes, you can add the ``value`` property to the ``<Default>`` node to define a default 
+value for this input. This means that, when your Service will be run, even if the input wasn't defined, this default 
+value will be set as the current value for this input.
+
+A typical ``<LiteralData>`` node, defining a ``float`` data type using meters or degrees for its UOM, looks like the 
+following:
+
+.. code-block:: guess
+   :linenos:
+   
+   <LiteralData>
+     dataType = float
+     <Default>
+       uom = meters
+     </Default>
+     <Supported>
+       uom = feet
+     </Supported>
+   </LiteralData>
+
+
+A typical ``<LiteralData>`` node, defining a ``float`` data type which
+should take values contained in ``[0.0,100.0]``, looks like the following:
+
+.. code-block:: guess
+   :linenos:
+   
+   <LiteralData>
+     dataType = float
+     rangeMin = 0.0
+     rangeMax = 100.0
+     rangeClosure = c
+     <Default />
+   </LiteralData>
+
+Or more simply:
+
+.. code-block:: guess
+   :linenos:
+   
+   <LiteralData>
+     dataType = float
+     range = [0.0,100.0]
+     <Default />
+   </LiteralData>
+
+A typical ``<LiteralData>`` node, defining a ``string`` data type which
+support values ``hillshade``, ``slope``, ``aspect``, ``TRI``, ``TPI``
+and ``roughness``, looks like the following:
+
+.. code-block:: guess
+   :linenos:
+   
+   <LiteralData>
+     dataType = string
+     AllowedValues = hillshade,slope,aspect,TRI,TPI,roughness
+     <Default />
+   </LiteralData>
+
+Properties ``AllowedValues`` and ``range*`` can be conbined with both ``<Default>`` and
+``<Supported>`` nodes in the same was as ``<LiteralData>`` node. For
+instance, the following is supported:
+
+.. code-block:: guess
+   :linenos:
+   
+   <LiteralData>
+     dataType = int
+     <Default>
+       value = 11
+       AllowedValues = -10,-8,-7,-5,-1
+       rangeMin = 0
+       rangeMin = 100
+       rangeClosure = co
+     </Default>
+     <Supported>
+       rangeMin = 200
+       rangeMin = 600
+       rangeClosure = co
+     </Supported>
+     <Supported>
+       rangeMin = 750
+       rangeMin = 990
+       rangeClosure = co
+       rangeSpacing = 10
+     </Supported>
+   </LiteralData>
+
+.. _BoundingBoxData:
+
+BoundingBoxData node
+********************
+
+A ``<BoundingBoxData>`` node contains:
+
+- one ``<Default>`` node with a CRS property defining the default Coordinate Reference Systems (CRS), and 
+- one or more ``<Supported>`` nodes depending on the number of CRS your service supports (note that you can 
+  alternatively use a single ``<Supported>`` node with a comma-separated list of supported CRS).
+
+A typical ``<BoundingBoxData>`` node, for two supported CRS (`EPSG:4326 <http://www.epsg-registry.org/indicio/query?request=GetRepositoryItem&id=urn:ogc:def:crs:EPSG::4326>`__ 
+and `EPSG:3785 <http://www.epsg-registry.org/indicio/query?request=GetRepositoryItem&id=urn:ogc:def:crs:EPSG::3785>`__), 
+looks like the following:
+
+.. code-block:: guess
+   :linenos:
+   
+   <BoundingBoxData>
+     <Default>
+       CRS = urn:ogc:def:crs:EPSG:6.6:4326
+     </Default>
+     <Supported>
+       CRS = urn:ogc:def:crs:EPSG:6.6:4326
+     </Supported>
+     <Supported>
+       CRS = urn:ogc:def:crs:EPSG:6.6:3785
+     </Supported>
+   </BoundingBoxData>
+
+.. _ComplexData:
+
+ComplexData node
+****************
+
+A ComplexData node contains:
+
+- a ``<Default>`` node and 
+- one or more ``<Supported>`` nodes depending on the number of supported formats. A format is made up of this 
+  set of properties : ``mimeType``, ``encoding`` and optionaly ``schema``.
+
+For output ComplexData nodes, you can add the ``extension`` property to define what extension to use to name 
+the file when storing the result is required. Obviously, you'll have to add the ``extension`` property to each 
+supported format (for the ``<Default>`` and ``<Supported>`` nodes). 
+
+You can also add the ``asReference`` property to the ``<Default>`` node to define if the output should be 
+stored on server side per default. 
+
+.. Note:: the client can always modify this behavior by setting ``asReference`` attribute to ``true`` or ``false`` 
+          for this output in the request ``ResponseDocument`` parameter.
+
+You can see below a sample ComplexData node for default ``application/json`` and ``text/xml`` (encoded in UTF-8 
+or base64) mimeTypes support:
+
+.. code-block:: guess
+   :linenos:
+   
+   <ComplexData>
+     <Default>
+       mimeType = application/json
+       encoding = UTF-8
+     </Default>
+     <Supported>
+       mimeType = text/xml
+       encoding = base64
+       schema = http://fooa/gml/3.1.0/polygon.xsd
+     </Supported>
+     <Supported>
+       mimeType = text/xml
+       encoding = UTF-8
+       schema = http://fooa/gml/3.1.0/polygon.xsd
+     </Supported>
+   </ComplexData>
Index: branches/PublicaMundi_David-devel/docs/services/zcfg-reference.txt
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/zcfg-reference.txt	(revision 506)
+++ 	(revision )
@@ -1,305 +1,0 @@
-.. _services-zcfg:
-    
-ZCFG : the ZOO Service Configuration File
-=========================================  
-
-:Authors: Nicolas Bozon, Gérald Fenoy, Jeff McKenna
-:Last Updated: $Date$ 
-
-.. contents:: Table of Contents
-    :depth: 3
-    :backlinks: top
-
-The ZOO Service configuration file (.zcfg) describes the service and will be parsed by 
-the ZOO Kernel. We will describe here what such a file contains. 
-You can also take a look at the existing examples of ZCFG files in the ``cgi-env`` directory 
-of each services available in the `ZOO-Project SVN source tree <http://zoo-project.org/trac/browser/trunk/zoo-services>`__.
-
-A ZOO Configuration file is divided into three distinct sections :
-
-1. Main Metadata information
-2. List of Inputs metadata information (optional since `rev. 469 <http://zoo-project.org/trac/changeset/469>`__)
-3. List of Outputs metadata information
-
-.. Note:: The ZOO Service Configuration File is case sensitive.
-
-Main Metadata Information
--------------------------
-
-The fist part in a ZOO Configuration file contains the metadata information relative to the service. 
-Note that the "name of your service" between brackets on the first line has to be the exact same name 
-as the function you defined in your services provider code. In most cases, this name is also the name 
-of the ZCFG file without the "``.zcfg``" extension.
-
-You can see below a description of the main metadata information:
-
-.. code-block:: none
-   :linenos:
-
-   [Name of your service]
-   Title = Title of your service
-   Abstract = Description of your service
-   processVersion = Version number of your service
-   storeSupported = true/false
-   statusSupported = true/false
-   serviceType = the programming language used to implement the service (C/Fortran/Python/Java/PHP/Javascript)
-   serviceProvider = name of your services provider (shared library/Python Module/Java Class/PHP Script/JavaScript script)
-   <MetaData>
-     title = Metadata title of your service
-   </MetaData>
-
-List of Inputs
---------------
-
-The list of inputs contains metadata information of each supported input, and they are grouped using a ``<DataInputs>`` node.
-
-Each input is defined as :
-
--  a name (between brackets as for the name of the service before)
-- various medata properties (``Title``, ``Abstract``, ``minOccurs``, ``maxOccurs`` and, in case of ComplexData, the optional ``maximumMegabytes``)
-- a Type Of Data node (:ref:`description <typeDataNodes>`)
-
-A typical list of inputs (``<DataInputs>``) look like the following:
-
-.. code-block:: none
-   :linenos:
-   
-   <DataInputs>
-     [Name of the first input]
-       Title = Title of the first input
-       Abstract = Abstract describing the first input
-       minOccurs = Minimum occurence of the first input
-       maxOccurs = Maximum occurence of the first input
-       <Type Of Data Node />
-     [Name of the second input]
-       Title = Title of the second input
-       Abstract = Abstract describing the second input
-       minOccurs = Minimum occurence of the second input
-       maxOccurs = Maximum occurence of the second input
-       <Type Of Data Node />
-   </DataInputs>
-   
-.. Note:: you can add ``<MetaData>`` node as in the main metadata information.
-
-List of Outputs
----------------
-
-The list of outputs is very similar to a list of inputs except it is specified as a ``<DataOutputs>`` node.
-
-A typical ``<DataOutputs>`` node looks like the following:
-
-.. code-block:: none
-   :linenos:
-   
-   <DataOutputs>
-     [Name of the output]
-       Title = Title of the output
-       Abstract = Description of the output
-       <Type Of Data Node />
-   </DataOutputs>
-
-.. _typeDataNodes:
-
-Type Of Data Nodes
-------------------
-
-In the beginning of this ZCFG introduction, we spoke about "Type Of Data Nodes" to describe the data type of inputs and outputs.
-
-You can define your data as:
-
-- :ref:`LiteralData <LiteralData>`
-- :ref:`BoundingBoxData <BoundingBoxData>`
-- :ref:`ComplexData <ComplexData>`
-
-Except for ``LiteralData``, each *Type Of Data* node must have at least one ``<Default>`` node. Even 
-if empty, it **has to be present**. So, something
-like the following should be present in your ZCFG file:
-
-.. code-block:: guess
-   :linenos:
-
-   <Default />
-
-Otherwise, ZOO-Kernel won't be able to parse your ZCFG correctly.
-
-.. _LiteralData:
-
-LiteralData node
-****************
-
-A ``<LiteralData>`` node contains:
-
-- one (optional) ``AllowedValues`` key containing all value allowed for this input
-- one (optional) ``range`` properties containing the range (``[``, ``]``)
-- one (optional) ``rangeMin`` (``rangeMax``) properties containing the minimum (maximum) value of this range
-- one (optional) ``rangeSpacing`` properties containing the regular distance or spacing between value in this range
-- one (optional) ``rangeClosure`` properties containing the closure type (``c``, ``o``, ``oc``, ``co``)
-- one ``<Default>`` node,
-- zero or more ``<Supported>`` nodes depending on the existence or the number of supported Units Of Measure (UOM), and 
-- a ``dataType`` property. The ``dataType`` property defines the type of literal data, such as a string, an interger and so on 
-  (consult `the complete list <http://www.w3.org/TR/xmlschema-2/#built-in-datatypes>`__ of supported data types). 
-
-``<Default>`` and ``<Supported>`` nodes can contain the ``uom`` property to define which UOM has to be used for 
-this input value.
-
-For input ``<LiteralData>`` nodes, you can add the ``value`` property to the ``<Default>`` node to define a default 
-value for this input. This means that, when your Service will be run, even if the input wasn't defined, this default 
-value will be set as the current value for this input.
-
-A typical ``<LiteralData>`` node, defining a ``float`` data type using meters or degrees for its UOM, looks like the 
-following:
-
-.. code-block:: guess
-   :linenos:
-   
-   <LiteralData>
-     dataType = float
-     <Default>
-       uom = meters
-     </Default>
-     <Supported>
-       uom = feet
-     </Supported>
-   </LiteralData>
-
-
-A typical ``<LiteralData>`` node, defining a ``float`` data type which
-should take values contained in ``[0.0,100.0]``, looks like the following:
-
-.. code-block:: guess
-   :linenos:
-   
-   <LiteralData>
-     dataType = float
-     rangeMin = 0.0
-     rangeMax = 100.0
-     rangeClosure = c
-     <Default />
-   </LiteralData>
-
-Or more simply:
-
-.. code-block:: guess
-   :linenos:
-   
-   <LiteralData>
-     dataType = float
-     range = [0.0,100.0]
-     <Default />
-   </LiteralData>
-
-A typical ``<LiteralData>`` node, defining a ``string`` data type which
-support values ``hillshade``, ``slope``, ``aspect``, ``TRI``, ``TPI``
-and ``roughness``, looks like the following:
-
-.. code-block:: guess
-   :linenos:
-   
-   <LiteralData>
-     dataType = string
-     AllowedValues = hillshade,slope,aspect,TRI,TPI,roughness
-     <Default />
-   </LiteralData>
-
-Properties ``AllowedValues`` and ``range*`` can be conbined with both ``<Default>`` and
-``<Supported>`` nodes in the same was as ``<LiteralData>`` node. For
-instance, the following is supported:
-
-.. code-block:: guess
-   :linenos:
-   
-   <LiteralData>
-     dataType = int
-     <Default>
-       value = 11
-       AllowedValues = -10,-8,-7,-5,-1
-       rangeMin = 0
-       rangeMin = 100
-       rangeClosure = co
-     </Default>
-     <Supported>
-       rangeMin = 200
-       rangeMin = 600
-       rangeClosure = co
-     </Supported>
-     <Supported>
-       rangeMin = 750
-       rangeMin = 990
-       rangeClosure = co
-       rangeSpacing = 10
-     </Supported>
-   </LiteralData>
-
-.. _BoundingBoxData:
-
-BoundingBoxData node
-********************
-
-A ``<BoundingBoxData>`` node contains:
-
-- one ``<Default>`` node with a CRS property defining the default Coordinate Reference Systems (CRS), and 
-- one or more ``<Supported>`` nodes depending on the number of CRS your service supports (note that you can 
-  alternatively use a single ``<Supported>`` node with a comma-separated list of supported CRS).
-
-A typical ``<BoundingBoxData>`` node, for two supported CRS (`EPSG:4326 <http://www.epsg-registry.org/indicio/query?request=GetRepositoryItem&id=urn:ogc:def:crs:EPSG::4326>`__ 
-and `EPSG:3785 <http://www.epsg-registry.org/indicio/query?request=GetRepositoryItem&id=urn:ogc:def:crs:EPSG::3785>`__), 
-looks like the following:
-
-.. code-block:: guess
-   :linenos:
-   
-   <BoundingBoxData>
-     <Default>
-       CRS = urn:ogc:def:crs:EPSG:6.6:4326
-     </Default>
-     <Supported>
-       CRS = urn:ogc:def:crs:EPSG:6.6:4326
-     </Supported>
-     <Supported>
-       CRS = urn:ogc:def:crs:EPSG:6.6:3785
-     </Supported>
-   </BoundingBoxData>
-
-.. _ComplexData:
-
-ComplexData node
-****************
-
-A ComplexData node contains:
-
-- a ``<Default>`` node and 
-- one or more ``<Supported>`` nodes depending on the number of supported formats. A format is made up of this 
-  set of properties : ``mimeType``, ``encoding`` and optionaly ``schema``.
-
-For output ComplexData nodes, you can add the ``extension`` property to define what extension to use to name 
-the file when storing the result is required. Obviously, you'll have to add the ``extension`` property to each 
-supported format (for the ``<Default>`` and ``<Supported>`` nodes). 
-
-You can also add the ``asReference`` property to the ``<Default>`` node to define if the output should be 
-stored on server side per default. 
-
-.. Note:: the client can always modify this behavior by setting ``asReference`` attribute to ``true`` or ``false`` 
-          for this output in the request ``ResponseDocument`` parameter.
-
-You can see below a sample ComplexData node for default ``application/json`` and ``text/xml`` (encoded in UTF-8 
-or base64) mimeTypes support:
-
-.. code-block:: guess
-   :linenos:
-   
-   <ComplexData>
-     <Default>
-       mimeType = application/json
-       encoding = UTF-8
-     </Default>
-     <Supported>
-       mimeType = text/xml
-       encoding = base64
-       schema = http://fooa/gml/3.1.0/polygon.xsd
-     </Supported>
-     <Supported>
-       mimeType = text/xml
-       encoding = UTF-8
-       schema = http://fooa/gml/3.1.0/polygon.xsd
-     </Supported>
-   </ComplexData>
Index: branches/PublicaMundi_David-devel/docs/services/zoo-services.rst
===================================================================
--- branches/PublicaMundi_David-devel/docs/services/zoo-services.rst	(revision 659)
+++ branches/PublicaMundi_David-devel/docs/services/zoo-services.rst	(revision 659)
@@ -0,0 +1,115 @@
+.. _services-available:
+
+Available ZOO-Services
+================
+
+`ZOO-Project <http://zoo-project.org>`__ includes some ready-to-use WPS Services based on reliable open source libraries such as such as `GDAL <http://gdal.org>`_, `CGAL <http://gcal.org>`_, `GRASS GIS <http://grass.osgeo.org>`_, `OrfeoToolbox <http://orfeo-toolbox.org>`__ and `SAGA GIS <https://www.orfeo-toolbox.org>`__.
+
+:ref:`services_index` are either developed in C/Python (with minor modifications with respect to the orginal software source code) and stored in the  ``zoo-services`` `svn <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services>`__ directory or automatically generated using some of :ref:`kernel_index` configuration options. 
+
+
+Based on GDAL 
+------------------------
+
+.. note:: 
+
+  |gdal| `GDAL <http://gdal.org>`__ is the Geospatial Data Abstraction
+  Library. Learn more on official `website <http://gdal.org>`__.
+ 
+
+.. |gdal| image:: ../_static/gdal.png
+       :height: 110px
+       :width: 100px
+       :scale: 45%
+       :alt: GDAL logo
+
+
+..   csv-table:: 
+
+    Name,Description,Language
+    `Gdal_Contour <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/gdal/contour>`__,Builds vector contour lines from a raster elevation model,C
+    `Gdal_Grid <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/gdal/grid>`__,Creates regular raster grid from the scattered data read from an OGR datasource,C
+    `Gdal_Dem <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/gdal/dem>`__,Provides tools to analyze raster elevation model,C
+    `Gdal_Ndvi <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/gdal/ndvi>`__,Computes Normalized Difference Vegetation Index on a raster file,Python
+    `Gdal_Profile <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/gdal/profile>`__,Fetches XYZ values of a raster DEM along a linestring,C
+    `Gdal_Translate <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/gdal/translate>`__,Converts raster data between different formats,C
+    `Gdal_Warp <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/gdal/translate>`__,Mosaic/Reproject/Warp a raster image,C
+    `Ogr2Ogr <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/ogr/ogr2ogr/>`__,Converts vector data from one format to another,C
+    `Base-vect-ops <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/ogr/base-vect-ops>`__,Provides tools for single and multiple geometries vector-based spatial analysis ,C
+    `Base-vect-ops <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/ogr/base-vect-ops-py>`__,Provides tools for single and multiple geometries vector-based spatial analysis ,Python
+    
+Based on CGAL
+------------------------
+
+.. note:: 
+
+  |cgal| `CGAL <http://gdal.org>`__ is the Computational Geometry Algorithms Library. Learn more on official `website <http://cgal.org>`__.
+ 
+
+.. |cgal| image:: ../_static/cgal.png
+       :height: 110px
+       :width: 112px
+       :scale: 45%
+       :alt: CGAL logo
+
+..   csv-table:: 
+
+    Name,Description,Language
+    `Cgal_Delaunay <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/cgal/delaunay.c>`__,Computes the edges of Delaunay triangulation for a set of data points,C
+    `Ggal_Voronoi <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-services/cgal/voronoi.c>`__,Computes the edges of Voronoi diagram for a set of data points,C
+    
+Based on GRASS GIS 
+---------------------------
+
+.. note:: 
+
+  |grass| `GRASS GIS <http://grass.osgeo.org>`__ is the Geographic Resources Analysis Support System. Learn more on official `website <http://grass.osgeo.org>`__.
+ 
+
+.. |grass| image:: ../_static/grassgis.png
+       :height: 111px
+       :width: 100px
+       :scale: 45%
+       :alt: GRASS GIS logo
+	    
+..   csv-table:: 
+
+    Name,Description,Language
+   `Raster modules (r.*) <http://grass.osgeo.org/grass70/manuals/raster.html>`__,Most of the GRASS7 vector modules are supported,C
+   `Vector modules (v.*) <http://grass.osgeo.org/grass70/manuals/vector.html>`__,Most of the GRASS7 vector modules are supported,C
+   `Imagery modules (i.*) <http://grass.osgeo.org/grass70/manuals/imagery.html>`__,Most of the GRASS7 iamgery modules are supported,C
+
+`GRASS GIS 7 <http://grass.osgeo.org>`__ modules can be used as :ref:`services_index` without any modification using the `wps-grass-bridge <https://code.google.com/p/wps-grass-bridge/>`__ library. The latter includes useful tools such as `GrassXMLtoZCFG.py <https://code.google.com/p/wps-grass-bridge/source/browse/trunk/GrassXMLtoZCFG.py>`__ and `ZOOGrassModuleStarter.py <https://code.google.com/p/wps-grass-bridge/source/browse/trunk/ZOOGrassModuleStarter.py>`__ for using the supported GRASS modules directly as ZOO-Services. A step-by-step installation guide suited for ZOO-Project is available in the `wps-grass-bridge <https://code.google.com/p/wps-grass-bridge/wiki/ZOO_WPS_Integration>`__ documentation.  
+
+    
+Based on Orfeo Toolbox 
+-----------------------
+
+.. note:: 
+
+   |otb| `Orfeo Toolbox <https://www.orfeo-toolbox.org>`__ is an open
+   source image processing library. Learn more on official `website <https://www.orfeo-toolbox.org>`__.
+ 
+
+.. |otb| image:: ../_static/orfeotoolbox.png
+       :height: 115px
+       :width: 150px
+       :scale: 40%
+       :alt: Orfeo Toolbox logo
+
+`Orfeo Toolbox <https://www.orfeo-toolbox.org>`__ `Applications <http://otbcb.readthedocs.org/en/latest/Applications.html>`__ can be used as :ref:`services_index` without any modification
+using the :ref:`kernel-orfeotoolbox`.
+
+Based on SAGA GIS
+---------------------------
+
+.. note:: 
+
+   |saga| `SAGA GIS <https://www.orfeo-toolbox.org>`__ is the System for Automated Geoscientific Analyses. Learn more on official `website <http://www.saga-gis.org/en/index.html>`__.
+ 
+
+.. |saga| image:: ../_static/sagagis.png
+       :height: 100px
+       :width: 100px
+       :scale: 45%
+       :alt: SAGA GIS logo
