CONSERVATOIRE NATIONAL DES ARTS ET METIERS CENTRE REGIONAL RHÔNE ALPES

De
Publié par

Niveau: Supérieur, Master, Bac+5

  • mémoire


CONSERVATOIRE NATIONAL DES ARTS ET METIERS CENTRE REGIONAL RHÔNE-ALPES CENTRE D'ENSEIGNEMENT DE GRENOBLE ___________________________________________________ MÉMOIRE présenté par Laurent Poulenard en vue d'obtenir LE DIPLÔME D'INGÉNIEUR C.N.A.M. en INFORMATIQUE ________________________ Diffusion de l'information géographique avec les services Web : application au logiciel HyperAtlas Soutenu le 7 avril 2011 ________________________ JURY Président : M. Eric Gressier-Soudan Membres : M. Jean-Pierre Giraudin M. André Plisson M. Mathias Voisin-Fradin M. Jérôme Gensel Mme Hélène Mathian M. Bruno Orsier du m as -0 05 92 17 6, v er sio n 1 - 1 1 M ay 2 01 1

  • équipe steamer

  • centre d'enseignement de grenoble

  • steamer du lig hlaboratoire d'inyor-atimue de grenoblevô sous la direction


Publié le : vendredi 1 avril 2011
Lecture(s) : 128
Source : dumas.ccsd.cnrs.fr
Nombre de pages : 150
Voir plus Voir moins


CONSERVATOIRE NATIONAL DES ARTS ET METIERS

CENTRE REGIONAL RHÔNE-ALPES
CENTRE D'ENSEIGNEMENT DE GRENOBLE


___________________________________________________
MÉMOIRE
présenté par Laurent Poulenard
en vue d'obtenir
LE DIPLÔME D'INGÉNIEUR C.N.A.M.
en INFORMATIQUE
________________________
Diffusion de l'information géographique
avec les services Web :
application au logiciel HyperAtlas
Soutenu le 7 avril 2011
________________________
JURY
Président : M. Eric Gressier-Soudan
Membres : M. Jean-Pierre Giraudin
M. André Plisson
M. Mathias Voisin-Fradin
M. Jérôme Gensel
Mme Hélène Mathian
M. Bruno Orsier
dumas-00592176, version 1 - 11 May 2011dumas-00592176, version 1 - 11 May 2011
CONSERVATOIRE NATIONAL DES ARTS ET METIERS

CENTRE REGIONAL RHÔNE-ALPES
CENTRE D'ENSEIGNEMENT DE GRENOBLE


___________________________________________________
MÉMOIRE
présenté par Laurent Poulenard
en vue d'obtenir
LE DIPLÔME D'INGÉNIEUR C.N.A.M.
en INFORMATIQUE
________________________
Diffusion de l'information géographique
avec les services Web :
application au logiciel HyperAtlas
Soutenu le 7 avril 2011
________________________
Les travaux relatifs à ce mémoire ont été effectués au sein de
l'équipe STEAMER du LIG (Laboratoire d'Informatique de
Grenoble), sous la direction de M. Jérôme Gensel.
dumas-00592176, version 1 - 11 May 2011dumas-00592176, version 1 - 11 May 2011Remerciements
En tout premier lieu, je remercie toutes les personnes qui me font l’honneur de participer au jury de
ce mémoire :
Monsieur Eric Gressier-Soudan, professeur au CNAM Paris et président du jury ; Jean-Pierre Giraudin, à l’Université Pierre Mendès France de Grenoble ;
Monsieur André Plisson, directeur du centre d’enseignement CNAM de Grenoble ; Mathias Voisin-Fradin, directeur adjoint du centre d’enseignement CNAM de Grenoble ;
Monsieur Jérôme Gensel, professeur à l’Université Pierre Mendès France de Grenoble ;
Madame Hélène Mathian, ingénieure de recherche CNRS au laboratoire Géographie-Cités ;
Monsieur Bruno Orsier, responsable R&D chez Agilent Technologies France.
Je tiens à exprimer ma reconnaissance à mes tuteurs, Jérôme Gensel, professeur à l’Université Pierre
Mendès France de Grenoble, et Paule-Annick Davoine, maître de conférences à l’INP de Grenoble,
pour leurs conseils, pour leur soutien, et surtout pour la confiance qu’ils mont accordée tout au long
de mon stage.
Je remercie également tous les membres de l’équipe STEAMER pour leur accueil et leur disponibilité.
Je tout particulièrement Christine Plumejeaud, Anton Telechev et Benoît Le Rubrus. Nos
échanges furent passionnés et passionnants.
Merci aussi à Arnaud Pierrel et Bruno Orsier, de l’entreprise Agilent Technologies France, qui se sont
montrés compréhensifs et m’ont encouragé tout au long de ma formation au CNAM.
Je remercie mon épouse et mes deux filles qui ont su m’entourer de leur affection tout au long de mon
stage.
Je dédie ce mémoire à Georges Stamon, Maurice et Raphaël Poulenard, qui sont à l’origine de ma
passion pour l’informatique.
i
dumas-00592176, version 1 - 11 May 2011ii
dumas-00592176, version 1 - 11 May 2011Table des matières
1 Présentation 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 HyperAtlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Diffusion des données géographiques . . . . . . . . . . . . . . . . . . . . . 9
1.3 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Plan du mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 État de l’art 13
2.1 Diffusion de l’information géographique . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Spatial Data Infrastructure (SDI) . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.2 Carte interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Web services géographiques de l’OGC . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 L’organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.2 Standards de l’OGC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.3 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.4 L’interopérabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.5 Exemples de spécifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.6 Spécification WMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.7 Client WMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Services Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.1 Application Programming Interface (API) . . . . . . . . . . . . . . . . . . . 39
2.3.2 Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.3 Solutions techniques avec JAVA . . . . . . . . . . . . . . . . . . . . . . . . 42
2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3 Proposition 53
3.1 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.1 Choix de la spécification WMS . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.2 Choix de la solution pour le service Web . . . . . . . . . . . . . . . . . . . 54
3.1.3 Utilisation du service HyperAtlasWMS . . . . . . . . . . . . . . . . . . . . 57
3.1.4 Architecture du client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1.5 Utilisation du client BrowserWMS . . . . . . . . . . . . . . . . . . . . . . . 59
iii
dumas-00592176, version 1 - 11 May 20113.2 Cycle de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.2.1 Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.2.2 Découpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2.3 Versions WMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4 Réalisations 63
4.1 Outils et méthodes de développement . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1.1 IDE Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1.2 Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.1.3 Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.1.4 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2 Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.1 Standards OGC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.2 Couche WMS abstraite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.3 HyperAtlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.3 Client : BrowserWMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.3.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.3.2 Interactions avec un service WMS . . . . . . . . . . . . . . . . . . . . . . . 103
4.3.3 Session générique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.3.4 Greffon HyperAtlasPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.3.5 Éditeur de cartes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5 Conclusion 115
5.1 Rappel des objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.3 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.4 Bilan personnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
A Tests 119
A.1 Test unitaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
A.2 Test fonctionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
A.3 Test de performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
B Programmation par contrat dans HyperAtlas 121
C Patron de conception singleton 123
C.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
C.2 Exemple d’inversion des dépendances dans HyperAtlas . . . . . . . . . . . . . . . . 125
Glossaire 127
Bibliographie 129
iv
dumas-00592176, version 1 - 11 May 2011Table des figures
1.1 Contexte HyperAtlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Déviations et hiérarchie . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Cartes d’HyperAtlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Légendes HyperAtlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 SDI et médiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1 Composants d’une SDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Hiérarchie des SDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 SDI et organisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Interfaces de recherche d’un géoportail . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Variables concrètes d’une carte Web . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6 Interfaces utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.7 Répartition des membres de l’OGC . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8 Standards de l’OGC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.9 Services de l’OGC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.10 Paramètres d’une requête à un service de l’OGC . . . . . . . . . . . . . . . . . . . . 25
2.11 Combinaison parallèle de plusieurs services WMS . . . . . . . . . . . . . . . . . . . 26
2.12 en cascade de services OGC . . . . . . . . . . . . . . . . . . 26
2.13 Architecture d’un géoportail basé sur des services OGC . . . . . . . . . . . . . . . . 27
2.14 SWE et le flux geoprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.15 Arborescence du fichier capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.16 Requête GetMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.17 ArcExplorer Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.18 Carte de l’Arctique en WSG 84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.19 Clients mono-postes avec le service atlas north . . . . . . . . . . . . . . . . . . . . 38
2.20 Service Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.21 Approches ROA / SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.22 Héritages mis en jeu dans l’implémentation d’une Servlet . . . . . . . . . . . . . . . 43
2.23 JAX-WS : vue générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.24 J : classes générées avec wsimport - côté serveur . . . . . . . . . . . . . . . 48
2.25 JAX-WS : classes avec - côté client . . . . . . . . . . . . . . . . 49
2.26 Axis2 : Information Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.27 Axis2 : SOAP Processing Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
v
dumas-00592176, version 1 - 11 May 20113.1 Éléments WMS de l’interface HyperAtlas . . . . . . . . . . . . . . . . . . . . . . . 54
3.2 Interfaces du service abstrait WMS . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3 Couches du service HyperAtlasWMS . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4 Utilisation du service . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5 du service avec le client Gaïa . . . . . . . . . . . . . . 58
3.6 Cas d’utilisation de BrowserWMS . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.1 Tâches Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2 Architecture Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3 Arborescence des fichiers d’un service Web dans Tomcat . . . . . . . . . . . . . . . 66
4.4 Cycle de développement TDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.5 Paquetages de l’architecture HyperAtlasWMS . . . . . . . . . . . . . . . . . . . . 71
4.6 Sérialisation / désérialisation avec l’API JAXB . . . . . . . . . . . . . . . . . . . . 73
4.7 Classes requêtes de la couche abstraite . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.8 Changement de repère : géographie vers image . . . . . . . . . . . . . . . . . . . . 76
4.9 Diagramme de la classe SerialUnitImpl . . . . . . . . . . . . . . . . . . . . . . . . 79
4.10 Données des fichiers *.hyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.11 Abstraction de la persistance des données . . . . . . . . . . . . . . . . . . . . . . . 81
4.12 Colonnes du fichier USA.csv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.13 Dialogue de sélection de colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.14 Interface graphique de CSVadapter . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.15 Paramètres propriétaires du service (VendorSpecific) . . . . . . . . . . . . . . . . . . 87
4.16 Du XML à l’interface graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.17 Construction du style par la fabrique StyleFactory . . . . . . . . . . . . . . . . . . . 90
4.18 Diagramme des classes implémentant Filter . . . . . . . . . . . . . . . . . . . . . . 91
4.19 des classes Style . . . . . . . . . . . . . . . . . . . . . . 93
4.20 Style ClassStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.21 Combinaison des styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.22 Diagramme de classes FeatureInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.23 Dessin de la légende . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.24 Interfaces similaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.25 Paquetages de l’application BrowserWMS . . . . . . . . . . . . . . . . . . . . . . 101
4.26 Classes principales du MVC de BrowserWMS . . . . . . . . . . . . . . . . . . . . 102
4.27 du MVC de Bro . . . . . . . . . . . . . . . . . . . . 102
4.28 Connexion à un WMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.29 Édition des paramètres WMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.30 Classes mises en jeu lors de l’édition d’un paramètre . . . . . . . . . . . . . . . . . 105
4.31 Modification du paramètre BBOX avec le zoom . . . . . . . . . . . . . . . . . . . . 106
4.32 Interactions entre la session et le panier . . . . . . . . . . . . . . . . . . . . . . . . 107
4.33 Héritage de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.34 Édition des paramètres HyperAtlas . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.35 Interface édition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
vi
dumas-00592176, version 1 - 11 May 2011

Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.