Document 7221024

Download Report

Transcript Document 7221024

Comparaison des outils open source
de webmapping Mapfish et Mapbuilder
Fabien Ancelin,
Projet de publication avancée de données
Spatiales sur Internet – Session Automne 2008
Projet présenté aux Prof. Thierry Badard & Frédéric Hubert
Plan de la présentation
1.
2.
3.
4.
5.
6.
Présentation du projet
Problématique et méthodologie
Résultats sur la partie client
Résultats sur la partie serveur
Avantages / Inconvénients
Limites de l’étude
1. Présentation du contexte
A. Contexte Web
B. Open Layers
C. Deux outils : Mapbuilder et Mapfish
A. Contexte Web
•
Nouveaux apports du Web 2.0 :
AJAX, Outils RIA
A. Contexte Web
•
•
•
Nouveaux apports du Web 2.0 :
AJAX, Outils RIA
Multiplication des types de serveurs
cartographiques et des formats
Nouvelles technologies utilisées dans
les applications cartographiques !
A. Contexte Web
Multiplication des services et des formats :
Services OGC
Formats
Web Coverage Service
Web Map Service
Web Feature Service
GML
KML
SVG
GeoRSS
NASA World Wind
Google Map
Services
Non-conformes OGC
Yahoo Map
B. Open Layers
Affirmation d’un nouveau client : Open Layers
•
De nombreux avantages : simple
d’utilisation, rapide, et interopérabilité
L’interopérabilité est la capacité que possède un produit ou un
système à fonctionner avec d’autres produits ou systèmes
existants, et ce, sans restrictions d’accès ou de mise en œuvre
(d’après Wikipédia)
B. Open Layers
Affirmation d’un nouveau client : Open Layers
•
•
De nombreux avantages : simple
d’utilisation, rapide, et interopérabilité
Open Layers prend un rôle central
dans de nombreuses applications
Web
B. Deux outils : Mapbuilder et Mapfish
Mapbuilder : présentation
•
•
•
•
Client cartographique Open Source, inclu
dans les projet de l’OS Géo
Client basé sur les technologies Ajax,
s’appuyant énormément sur le XSL
Intègre Open Layers depuis 2008
Fin du projet annoncé en Juillet 2008
B. Deux outils : Mapbuilder et Mapfish
Mapbuilder : présentation
•Page html : ce qui est affiché
chez le client
•Config : la liste des outils et
widgets de l’application
•Context : le modèle
cartographiques
•Librairie : bibliothèques d’objets
et de fonctions javascript et XSL
B. Deux outils : Mapbuilder et Mapfish
Mapfish : présentation
•
•
•
•
Nouveau projet développé par
CamptoCamp SA, présenté en 2007
Version 1.0 publiée fin Septembre 2008
Un client chargé de l’affichage
cartographique
Une partie serveur réalisant les traitements
B. Deux outils : Mapbuilder et Mapfish
MapFish : présentation
Client
Serveur
OpenLayers : affichage
cartographique
ExtJs : création de widgets
Pylons : framework de
développement web
Librairies géographiques :
Shapely, JTS
2. Problématique et méthodologie
•
•
•
•
A. Problématique
B. Définition de critères d’évaluation
C. Méthodologie de test
D. Planning
B. Problématique
Deux approches :
•
Comparaison côté client uniquement.
•
Test de la partie serveur
B. Problématique
Deux approches :
•
Comparaison côté client uniquement :
Est-ce que chaque client reprend l’ensemble
des fonctionnalités d’Open Layers?
Quels sont les apports de Mapbuilder et
Mapfish?
Quelles sont les forces / faiblesses de chaque
client?
B. Problématique
Deux approches :
•
Etude de la partie serveur
Quels sont les apports?
Quelle est la facilité d’utilisation de la partie
serveur?
Quels sont les avantages / inconvénients par
rapport à une approche où client et serveur(s)
sont indépendants?
B. Définition des critères d’évaluation
WMS
WCS
WFS
Google
WFS-T
Utilisation des standards
OGC
Yahoo
Connexion à des services
Non spécifiés par l’OGC
Navigation
Affichage
Gestion des couches
Utilisation de la souris
Saisie de données
Fonctionnalités
Analyses
thématiques
Application
cartographique
Ergonomie et
rapidité
Facilité d’utilisation
de l’interface
Rapidité d’exécution
Géocodage
Fiabilité
Calculs d’itinéraires
Documentation
Qualité
du support
Exemples
Mailing liste
Maturité du projet
Retours
d’expériences
Corrections des bugs
C. Méthodologie
Partie client : Etape 1/4
•
•
•
Réalisation d’un navigateur simple,
reposant simplement sur l’intégration
d’Open Layers
Choix des critères à évaluer à partir de l’API
Open Layers
Tableau comparatif :
Mapbuilder
Mapfish client
Fonctionnalité
d’Open Layers A
Présent / Absent
Présent / Absent
Fonctionnalité
d’Open Layers B
Présent / Absent
Présent / Absent
C. Méthodologie
Partie client : Etape 2/4
•
Définition d’une application test comportant
seulement des fonctionnalités « basiques»
de navigation :
Barre d’outils
Navigation
Affichage des
couches
Réagencement
des couches
Actions souris
C. Méthodologie
Partie client : Etape 3/4
•
Réalisation des applications de test.
???
Complexité du
code
Qualité de la
documentation
C. Méthodologie
Partie client : Etape 4/4
•
L’ensemble des tests est
réalisé sur :
•Windows OS
•EasyPHP et serveur
Apache
•Firefox et Firebug
Comparaison des performances des deux
applications
Quelles fonctionnalités sont proposées?
Qualité graphique de l’interface?
Interactivité?
Rapidité?
C. Méthodologie
Partie serveur 1/3 : Test à partir d’exemples du
site de démonstrations
•
•
•
Evite de créer une base de données.
Pas de travail de préparation des données.
Pas de certitude que l’installation fonctionne
correctement!
C. Méthodologie
Partie serveur 2/3 : Test d’installation
•
•
•
Technologies utilisées?
Degré de difficulté?
Qualité de la documentation et du support?
C. Méthodologie
Partie serveur 3/3 : test en environnement
client / serveur
•
Choix d’un serveur pour Mapbuilder ?
GeoServer et Degree supportent WFS et édition,
également proposés dans Mapfish et Mapbuilder
GeoServer facile d’installation
Mapbuilder propose des exemples à coupler avec
Geoserver
•
Objectifs :
Tester les différences de performance sur un jeu de
données test, avec des paramètres communs
3. Résultats
A. Côté client
•
•
•
Utilisation d’Open Layers
Création des applications de test
Comparaison des applications de test
B. Côté serveur
•
•
•
Avantages de Mapfish serveur
Résultat du test d’installation
Echec de la comparaison Mapfish avec
le couple Mapbuilder / Geoserver
3. Résultats
A. Côté client
B. Côté serveur
C. Comparaison Mapbuilder/Mapfish
A. Côté client
A. Côté client
•
Comparaison sur les services
Accessibilité
WMS
WCS
WFS
WorldWind
Google Maps
Yahoo Maps
Mapbuilder
Mapfish client
A. Côté client
A. Côté client
•
Comparaison sur les formats
Format
GML
GeoRSS
kml
SLD
Mapbuilder
Mapfish client
A. Côté client
A. Côté client
•
Test des fonctionnalités
Fonctionnalité
de
navigation
utilisable
par la carte
Barre de navigation
Barre de zoom
Pan souris par double
clic
Zoom via la molette
Mapbuilder
Mapfish client
A. Côté client
Critères \Logiciel
Mapbuilder
Mapfish
Temps de réalisation
3h00
1h00
Simplicité d’utilisation
Simple
Simple
Avantage(s)
Réutilisabilité du code
Utilisation
intuitive
Inconvénient(s)
Beaucoup de fichiers à configurer
Difficulté(s)
Gestion des mises en page.
Gestion simultanée de plusieurs
documents de contexte.
simple
et
A. Côté client
A. Côté client
•
Les différences de performances :
Fonctionnalités disponibles
Sélection / Désélection d’une
couche
Modification de l’ordre d’une
couche de 1 niveau
Modification de l’ordre d’une
couche de plusieurs niveaux
Ajout d’icones dans la liste des
couches
Mapbuilder
Mapfish
A. Côté client
A. Côté client
•
Différences graphiques :
A. Côté client
A. Côté client
•
Documentation : de bonne qualité
pour les deux clients!
Critère
Mapbuilder
Mapfish
Tutoriaux
Oui
Oui
Exemples
Oui
Oui
Cours WFS-WMS
Lien vers documentation
Open Layers
Lien
vers
externes
ressources
B. Côté serveur
Redéfinition du rôle du serveur
•
•
•
Redéfinition du rôle du serveur : un
client qui communique avec un
serveur spécifique
Un langage spécifique, le GeoJSON
Résultats, de nouvelles
fonctionnalités
B. Côté serveur
Liste des fonctionnalités :
Mapbuilder
Geoserver
Exploration des données du
serveur
Fonctionnalités
recherche attributaire
de
Outils de discrétisation
cartographique
Edition de données
Calculs d’itinéraires
Export de la carte au format
PDF
/
Mapfish
B. Côté serveur
Un exemple : le module géostat
B. Côté serveur
Test Installation
•
•
•
•
Repose sur Pylons et l’utilisation d’un
paster python
Mapfish est un œuf python : il doit
être construit et installé dans un
espace virtuel
Mapfish nécessite le téléchargement
de librairies ou d’utilitaires
supplémentaires
Les données doivent être situées
dans une base PostGIS
D. Installation
•
Construction de l’œuf
C:\CartoInternet\Mapfish\MapFish-0.2\server\python>C:\my_vpython\Scripts\python
setup.py egg_info
C:\CartoInternet\Mapfish\MapFish-0.2\server\python>C:\my_vpython\Scripts\python
setup.py bdist_egg
•
Installation de Mapfish dans le répertoire
virtuel python
C:\CartoInternet\Mapfish\MapFish-0.2\server\python>C:\my_vpython\Scripts\easy_in
stall dist\MapFish-0.2-py2.4.egg
•
Déploiement du projet
C:\my_vpython\Scripts>paster create --overwrite --no-interactive --template=mapf
ish TutoMapfish mapfishclientmfbasepath=C:\CartoInternet/Mapfish/MapFish-0.2/cli
ent/mfbase
B. Côté serveur
Création d’une application
Non réussie : pas de
comparaison
avec Mapbuilder et
Geoserver
Résultats :
Test réalisé sous OS
Windows, mais
Mapfish a été crée pour
Linux à la base
Durée d’une première installation :
+ de 4 h00
Premier déploiement :
+ de 4 h00
Bugs reportés
OUI
Qualité de la documentation
Incomplète, et adressé à des gens
connaissant les bases de pylons, de
python, et de l’invite de commande
Support de la mailing list
Très actif
5.Avantages / Inconvénients entre
Mapfish et Mapbuilder
Avantages
Mapbuilder
Mapfish
•Les fonctionnalités ne
dépendent pas d’un client
particulier : wms, wcs,
wfs
•Des fonctionnalités de
gestion des documents
de contexte ou
d’exploration du contenu
de services web très
puissantes
•XML simple à
comprendre
•Documentation de
qualité
•Grande réutilisabilité du
code
•Client autonome
• Interface interactive et
conviviale.
•Code s’appuyant sur
celui d’Open Layers,
simple à utiliser
•Structure du client
simple à comprendre
•Un serveur qui apporte
une multitude de
fonctionnalités
•Documentation de
qualité pour la partie
cliente
•Mailing list très active
•Mapfish est encore
jeune
5.Avantages / Inconvénients entre
Mapfish et Mapbuilder
Inconvénients
Mapbuilder
Mapfish
•Structure complexe,
de l’application
•Le développement
d’une première
application peut être
long
•Le développement de
Mapuilder s’est achevé
en Juin 2008.
•Une procédure
d’installation longue et
complexe
•Nécessaire de modifier
des fichiers python à la
main pour configurer
un projet.
•Fonctionnalités
entièrement dédiées au
vecteur
•Mapfish serveur n’est
compris que de Mapfish
client.
•Mapfish est encore
jeune
6. Limites de l’étude
•
•
•
•
Pas de comparaison sur des gros
volumes de données pour voire si
XSL + XML plus rapide que
JavaScript et GéoJSON
Mapfish et Mapbuilder n’ont pas été
comparé dans un environnement
client serveur à partir d’un jeu de
données commun
Solutions non testées sur Linux
Mapfish serveur non testé sur
serveur Apache
7. Difficultés rencontrées durant le
travail
•
•
•
Gestion du temps : retard sur le
planning annoncé
Bugs d’installation sur Mapfish
Trop de temps consacré à essayer
de faire fonctionner Mapfish serveur
Conclusion
•
•
•
•
Mapbuilder et Mapfish sont deux clients
robustes.
Mapbuilder est efficace pour la navigation,
l’exploration de services web, et la
sauvegarde de cartes sur Internet.
Mapfish bénéficie d’une interface
conviviale, dispose potentiellement de
toutes les fonctionnalités d’Open Layers, et
des apports de la partie serveur.
La partie serveur de Mapfish est réservée à
des initiés du développement web et du
langage python. Le projet est encore
immature.