Étude comparative de serveurs open source conformes WPS : GeoServer, ZooWPS, Deegree et 52 North
description
Transcript of Étude comparative de serveurs open source conformes WPS : GeoServer, ZooWPS, Deegree et 52 North
Étude comparative de serveurs open source conformes WPS :
GeoServer, ZooWPS, Deegree et 52 North
Kaboro SAMASSE
Encadré par:-Dr. Tierry Badard-Dr. Frédéric Hubert
GMT6006 – Automne 2012
2
Plan de l’exposé
• Introduction• Objectifs• Serveur WPS• Description des serveurs• Critères de comparaison• Réalisation des tests• Tableau de synthèse• Conclusion
3
Introduction
Architecture type d’un service Web OGC. Source=http://geoconnexions.rncan.gc.ca/1022
OGC=Open Geospatial Consertium
- 483 membres (OGC,2012)
- Interopérabilité des SIG
- Spécifications des interfaces de services Web interopérables OWS (OGC Web Services)
4
Introduction
• Exemples de OGC Web Services– WMS: Web Map Service– WFS: Web Feature Service– WCS: Web Coverage Service– WPS: Web Processing Service
5
Objectifs
• Décrire les caractéristiques des serveurs GeoServer, Deegree, 52 North et ZooWPS
• Vérifier la conformité des serveurs pré-cités à la spécification OGC WPS
• Établir une grille des forces et des faiblesses dans l’utilisation du service WPS à partir de ces serveurs
6
Serveur WPS
• Rôle:– Distributeur des fonctionnalités de traitements
géospatiaux (Process)– Exemples de Process: Calcul de distance, Fonction
d’interpolation IDW, Buffer, Contour…– Possède 3 opérations• GetCapabilities• DescribeProcess• Execute
7
Serveur WPS
• Échange entre Serveur et Client WPS:
http://www.rencontres-sig-la-lettre.fr/wp-content/uploads/2012/01/R2012-WPS-Cauchy.pdf
8
Description des serveurs
• GeoServer: – Certifié conforme OGC– Implémente les services WMS, WFS, WCS et WPS
comme une extension– Développé en Java avec GeoTools
9
Description des serveurs
• Deegree:– Plateforme de service web développée en Java– JTS Topology Suite pour le WPS– Implémente WMS, WFS…
www.deegree.org
10
Description des serveurs
• 52 North:– Basé sur une plateforme Java– Possède une communauté 52 North Geoprocessing– Plug-in WPS pour uDig et JUMP– JTS Topology Suite pour les Process
11
Description des serveurs
• ZooWPS:– Projet orienté uniquement vers WPS– Composé de 3 parties:
http://zoo-project.org/
12
Critères de comparaison• Récupération et installation des serveurs • Disponibilité de documentation et de support • Type de licence • Maturité du serveur WPS• Systèmes d’exploitation supportés • Test de conformité au standard WPS • Support de plusieurs langages de programmation • Traitement asynchrone • Complexité de déploiement des traitements spatiaux • Intégration dans des applications SIG
13
Réalisation des tests
• Ordinateur utilisé:– Processeur Dual Core– Windows 7– RAM= 3Go– Disque dur = 500 Go
• Données géographiques– Linéaire: route.gml– Ponctuelle: village.gml– Surfacique: parcelle.gml
14
Réalisation des tests
• Récupération et installation des serveursGeoServer: • http://
sourceforge.net/projects/geoserver/files/GeoServer/2.2.2/geoserver-2.2.2.exe/download?use_mirror=garr
• Prérequis: JAVA6 ou plus récent
15
16
Réalisation des tests
• Récupération et installation des serveursDeegree:• http://www.deegree.org/Download• Pas de prérequis
17
18
Réalisation des tests
• Récupération et installation des serveurs52 North WPS: • http://52north.org/downloads/geoprocessing/wps• Prérequis: JAVA6 ou plus récent
19
20
Réalisation des tests
• Récupération et installation des serveursZooWPS:• http://zoo-project.org/site/Downloads• Prérequis: Autoconf, cgic, cURL, FastCGI, Flex et Bison,
libxml2, OpenSSL, Python.• Installé à partir de OsGeo Live DVD5.5
21
Réalisation des tests
• Test de conformité au standard WPS – Exigences selon le document OGC 05-007r7• http://portal.opengeospatial.org/files/?
artifact_id=24151
22
Réalisation des tests
• Test de conformité au standard WPS GeoServer:
• GetCapabilities– Requête: http://
localhost:8083/geoserver/ows?service=wps&version=1.0.0&request=GetCapabilities
– Réponse du serveur:
23
24
Réalisation des tests
• Test de conformité au standard WPS GeoServer:
• DescribeProcess– Requête: http://
localhost:8083/geoserver/ows?service=WPS&version=1.0.0&request=DescribeProcess&Identifier=JTS:buffer
– Réponse du serveur:
25
26
Réalisation des tests
• Test de conformité au standard WPS GeoServer:
• Execute– Requête et Réponse
27
28
<?xml version="1.0" encoding="UTF-8"?><wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd"> <ows:Identifier>JTS:buffer</ows:Identifier> <wps:DataInputs> <wps:Input> <ows:Identifier>geom</ows:Identifier> <wps:Data> <wps:ComplexData mimeType="text/xml; subtype=gml/3.1.1"><![CDATA[LINESTRING(-139.0542539399907 59.99968406467396, - 139.0954933825154 60.02169517499379, -139.1406646325113 60.05079987316714, -139.178418355588 60.07506760268618, -139.1990047524417 60.08827870457464)]]></wps:ComplexData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>distance</ows:Identifier> <wps:Data> <wps:LiteralData>0.1</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>capStyle</ows:Identifier> <wps:Data> <wps:LiteralData>Round</wps:LiteralData> </wps:Data> </wps:Input> </wps:DataInputs> <wps:ResponseForm> <wps:RawDataOutput mimeType="text/xml; subtype=gml/3.1.1"> <ows:Identifier>result</ows:Identifier> </wps:RawDataOutput> </wps:ResponseForm></wps:Execute>
29
30
Réalisation des tests
• Test de conformité au standard WPS Deegree:
• GetCapabilities– Requête: http://
localhost:8082/services?service=wps&version=1.0.0&request=GetCapabilities
– Réponse du serveur:
31
32
Réalisation des tests
• Test de conformité au standard WPS Deegree:
• DescribeProcess– Requête: http
://localhost:8082/services?service=wps&version=1.0.0&request=DescribeProcess&Identifier=Buffer
– Réponse du serveur:
33
34
Réalisation des tests
• Test de conformité au standard WPS Deegree:
• Execute– Requête et Réponse
35
36
<wps:Execute xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" service="WPS" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsExecute_request.xsd"> <ows:Identifier>Buffer</ows:Identifier> <wps:DataInputs> <wps:Input> <ows:Identifier>GMLInput</ows:Identifier> <wps:Reference xlink:href="http://192.168.1.161:8084/geoserver/ipr/wfs?service=WFS&version=1.1.0&request=GetFeature&TypeName=ipr:routes&Format=GML"/> </wps:Input> <wps:Input> <ows:Identifier>BufferDistance</ows:Identifier> <wps:Data> <wps:LiteralData uom="unity" dataType="double">0.1</wps:LiteralData> </wps:Data> </wps:Input> </wps:DataInputs></wps:Execute>
37
<gml:Polygon srsName="urn:x-ogc:def:crs:EPSG:4326"> <gml:exterior> <gml:LinearRing srsName="urn:x-ogc:def:crs:EPSG:4326"> <gml:posList>60.107982 -139.044783 60.134862 -139.086502 60.134920 -139.086593 60.159188 -139.124347 60.159228 -139.124409 60.172439 -139.144996 60.181359 -139.162452 60.186701 -139.181314 60.188262 -139.200855 60.185980 -139.220325 60.179943 -139.238976 60.170384 -139.256091 60.157669 -139.271012 60.142288 -139.283165 60.124831 -139.292085 60.105970 -139.297427 60.086429 -139.298988 60.066958 -139.296706 60.048308 -139.290669 60.031193 -139.281110 60.016272 -139.268395 60.004118 -139.253014 59.990943 -139.232484 59.937607 -139.149615 59.933475 -139.142580 59.911464 -139.101341 59.903973 -139.083225 59.900160 -139.063996 59.900171 -139.044392 59.904007 -139.025168 59.911520 -139.007061 59.922421 -138.990768 59.936291 -138.976915 59.952597 -138.966034 59.970713 -138.958542 59.989942 -138.954730 60.009546 -138.954741 60.028770 -138.958577 60.046877 -138.966090 60.063170 -138.976991 60.077023 -138.990861 60.087904 -139.007167 60.107982 -139.044783 </gml:posList> </gml:LinearRing> </gml:exterior></gml:Polygon>
38
Réalisation des tests
• Test de conformité au standard WPS 52North WPS:
• GetCapabilities– Requête: http://
localhost:8080/wps/WebProcessingService?Request=GetCapabilities&Service=WPS
– Réponse du serveur:
39
40
Réalisation des tests
• Test de conformité au standard WPS 52North WPS:
• DescribeProcess– Requête: http://
localhost:8080/wps/WebProcessingService?Request=DescribeProcess&Service=WPS&Version=1.0.0&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm
– Réponse du serveur:
41
42
Réalisation des tests
• Test de conformité au standard WPS 52North WPS:
• Execute– Requête et Réponse du serveur:
43
44
Réalisation des tests
• Test de conformité au standard WPS ZooWPS:
• Getcapabilities:– Requête: http://localhost/zoo
/?Request=GetCapabilities&service=WPS&version=1.0.0
– Réponse du serveur:
45
Réalisation des tests
• Test de conformité au standard WPS ZooWPS:
• DescribeProcess:– Requête: http://localhost/zoo
/?Request=DescribeProcess&service=WPS&version=1.0.0&Identifier=Buffer
– Réponse du serveur:
46
Tableau de synthèseCritères GeoServer Deegree 52° North Zoo WPS
Récupération et installation des serveurs
-Téléchargement disponible sur Internet-Possède un installateur -Facile à installer- Interface d’administration web avancée et en français
- Téléchargement disponible sur Internet- Installation très simple-Possède une interface web avancée
- Téléchargement disponible sur Internet- Installation simple-Possède une interface web pour la configuration moins avancée
- Installation très simple-Installation très complexe mais disponible en démos sur DVD.
Disponibilité de documentation et de support
-Documentation très disponible et communauté d’utilisateurs et développeurs dynamiques
-Documentation très disponible et communauté d’utilisateurs et développeurs dynamiques
-Documentation très disponible et communauté d’utilisateurs et développeurs dynamiques
-Documentation très disponible et communauté d’utilisateurs et développeurs dynamiques
47
Tableau de synthèseCritères GeoServer Deegree 52° North Zoo WPS
Type de licence -GNU GPL 2 -GNU LGPL -GNU GPL 2 - licence de type MIT/X-
11
Maturité du
serveur WPS
- WPS en 2008 - WPS en 2004 -WPS en 2008. -ZooWPS créé en 2008
Systèmes
d’exploitation
supportés
-Windows,
MacOS X,
Linux
-Windows, MacOS X,
Linux, Solaris
-Windows, linux,
MacOS X
-Linux, Windows,
MacOS X, Unix
Test de conformité au
standard WPS
Conforme Conforme Conforme Conforme
Support de plusieurs
langages de
programmation
-Moins riche :
JAVA (JTS,
Geotools),
XML
-Moins riche : JAVA,
XML
-Moins riche : JAVA
(JTS, Geotools,
xmlBeans, servlet API,
derby), XML
-Très riche: C/C++,
Fortran, JAVA, Python,
PHP, Perl, JavaScript
48
Tableau de synthèseCritères GeoServer Deegree 52° North Zoo WPS
Traitement
asynchrone
Supporte les modes
synchrone et
asynchrone
Supporte les modes
synchrone et
asynchrone
Supporte les modes
synchrone et
asynchrone
Supporte les modes
synchrone et
asynchrone
Complexité de
déploiement
des traitements
spatiaux
-Outil WPS Request
Builder pour créer et
tester des Process.
-Process personnalisé
nécessite une base de
connaissance en
programmation JAVA
et XML.
-Workspace avec des
traitements WPS déjà
définis
- Nécessite la
programmation JAVA
et des connaissances
en XML.
-Kit de développement
de Process composé
d’un projet Eclipse
(52North WPS SDK).
-Espace de test pour
Process
-Un service peut se
programmer en Python,
PHP, JAVA ou
JavaScript.
-Il faut créer un
fichier .zcfg pour les
codes programmés.
Intégration
dans des
applications
SIG
RAS RAS Plug-in pour les
clients uDig et JUMP
ZooWPS peut être
intégré dans le SIG
Grass
49
Conclusion
1) Les quatre plateformes GeoServer, Deegree, 52°North et ZOOWPS ont l’avantage d’être distribuées sous licence open source et facilement téléchargeables sur Internet
50
Conclusion
2) Les tests des opérations GetCapabilities, DescribeProcess et Execute ont montré que les serveurs sont conformes à la spécification WPS
51
Conclusion
3) Le deploiement d’un Process ou encore fonction de traitement est plus facile dans GeoServer et Deegree, complexe dans 52 North et très complexe dans ZooWPS
52
Conclusion
4) Le serveur ZooWPS est plus intéressant pour les programmeurs, il offre plusieurs possibilités de langage de programmation (C/C++, JAVA, Python, Perl, PHP, JavaScript)
53
Conclusion
5) 52 North est en avance dans le developpement de plug-in client WPS (uDig, JUMP, suivi de ZooWPS (GRASS)
54
MERCI