WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mise en place d'une plateforme de cartographie dynamique

( Télécharger le fichier original )
par Issa Baldé
Ecole Supérieure Polytechnique de Dakar - Ingénieur de conception en Génie Informatique 2008
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

REPUBLIQUE DU SENEGAL

***** * * ********

UNIVERSITE CHEIKH ANTA DIOP DE DAKAR

ECOLE SUPERIEURE POLYTECHNIQUE

DEPARTEMENT GENIE INFORMATIQUE

Centre de Dakar


MEMOIRE DE FIN DE CYCLE

Pour l'obtention du :

DIPLOME D'INGENIEUR DE CONCEPTION (DIC) EN GENIE INFORMATIQUE

Thème :

Etude de solutions libres de webmapping, et mise en place d'une plateforme de cartographie dynamique

Lieu de stage : Laboratoire de Traitement de l'Information

Période stage : 04 Février 2008 - 30 Juin 2008

Présenté par : M. Issa BALDE Sous la direction du professeur : Claude LISHOU

Année Universitaire : 2007 - 2008

REPUBLIQUE DU SENEGAL

***** * * ********

UNIVERSITE CHEIKH ANTA DIOP DE DAKAR

ECOLE SUPERIEURE POLYTECHNIQUE

DEPARTEMENT GENIE INFORMATIQUE

Centre de Dakar


MEMOIRE DE FIN DE CYCLE

Pour l'obtention du :

DIPLOME D'INGENIEUR DE CONCEPTION (DIC) EN GENIE INFORMATIQUE

Thème :

Etude de solutions libres de webmapping, et mise en place d'une plateforme de cartographie dynamique

Lieu de stage : Laboratoire de Traitement de l'Information

Période stage : 04 Février 2008 - 30 Juin 2008

Présenté par : M. Issa BALDE Sous la direction du professeur : Claude LISHOU

Année Universitaire : 2007 - 2008

DEDICACES

Je dédie ce mémoire :

A ma mère

A mon père

A mon père et tuteur feu Ismaïla Baldé (Que la terre lui soit légère)

A ma famille pour tout son soutien

A tous mes camarades de classe, pour ces 3 années de compagnonnage, je vous adore tous

A tous mes voisins de chambre (ceux de la 31A et de la 17A)

REMERCIEMENTS

Après avoir rendu grâce à DIEU,

J'adresse mes remerciements les plus chaleureux à :

· Mes parents que je ne remercierai jamais assez,

· Pr. Claude LISHOU qui m'a accueillit et encadrer durant toute la durée du stage

· M. Samuel Ouya, Chef du département génie informatique pour avoir souvent organisé des pré-soutenances qui nous ont permis de rectifier nos erreurs et d'améliorer nos présentations

· Mme Awa NIANG au labo LTI

· M. Roger M. Faye au labo LTI

· M. Salam Sawadogo au labo LTI

· M. Mbaye DIOP chercheur au labo LERG (Laboratoire d'Enseignement et de Recherche en Géomatique)

· M. Ahmat Bamba Mbacké, (mention spéciale) pour sa disponibilité, ses conseils, et son ouverture envers tous les étudiants

· M. Alex Corenthin, enseignant au département génie informatique pour les efforts fournis afin de nous placer en position de stage

· M. Mamadou NIANG, responsable pédagogique des ingénieurs au département génie informatique

· Tout le corps professoral du département génie informatique pour la qualité de leur enseignement

· Tous les membres du Labo LTI, pour avoir bien accueilli et facilité mon intégration

Toutes les personnes qui de prés ou de loin, ont contribué à la réalisation de ce document.

1. TABLE DES MATIERES

Sigles et Abréviations ..................................................................................9

Glossaire 10

Table des figurs 11

Les tableaux 12

Table des diagrammes.................................................................................13

Avant-propos 14

Introduction 15

1ere Partie : Présentation générale et Choix de la méthode d'analyse et de conception

· Chapitre 1 : Présentation générale 17

I. Présentation de la structure d'accueil 17

II. Contexte du projet 17

1. Le projet TIC & Gouvernance locale 17

2. Problématiques et objectifs 18

· Chapitre 2 : Etat de l'art du Webmapping 20

I. Définition et présentation des concepts de la cartographie en ligne 20

1. La cartographie 20

2. Le Webmapping ou cartographie dynamique sur Internet 20

3. Principe de la cartographie sur Internet 20

II. Unités cartographiques(I) 22

1. Point 22

2. Ligne ou segment de ligne 22

3. Surface ou zone 22

III. Nature des données 23

1. Les données géométriques 23

a. Le mode raster 23

b. Le mode vecteur 23

2. Les données attributaires 23

IV. Affichage par couche 24

V. Les principales fonctionnalités d'un SIG (I) 24

1. Abstraction : 25

2. Acquisition 25

3. Archivage 25

4. Analyse 25

5. Affichage 25

VI. Quelques solutions de Webmapping existants 25

1. Google Map 25

2. ArcGIS 26

· Chapitre 3 : Choix d'une méthode d'analyse 27

I. Définition des concepts 27

II. Pourquoi utiliser une méthode ? (II) 28

III. Classification des méthodes d'analyse et de conception 28

1. Les méthodes cartésiennes ou fonctionnelles (II) 28

2. Les méthodes systémiques (II) 28

3. Les méthodes objets (II) 29

4. Approche orientée aspect 29

IV. Choix d'une méthode d'analyse et de conception 31

1. Le Processus Unifié (UP) 31

a. Définition 31

b. Vie du processus unifié 32

c. Les Phases 34

2. La méthode RAD 35

V. Le langage UML 36

1. Pourquoi UML ? 36

2. Diagrammes structurels (les vues statiques) 37

a. Les cas d'utilisation (uses cases) 37

b. Les diagrammes d'objets 38

c. Les diagrammes de classes 38

d. Les diagrammes de paquetages (ou package) 38

e. Les diagrammes de composants et de déploiement 38

3. Diagrammes comportementaux (les vues dynamiques) 38

a. Les diagrammes de séquence 39

b. Les diagrammes de collaboration 39

c. Les diagrammes d'états- transitions 39

d. Les diagrammes d'activités 39

2eme Partie : Analyse et Conception de la plateforme

· Chapitre 4 : Analyse de la plateforme 41

I. Les acteurs du système 41

1. L'administrateur : 41

2. Responsable du site 41

3. Les utilisateurs membres 41

4. Les visiteurs 41

II. Interactions entre les acteurs et le système 42

1. Diagrammes de cas d'utilisation 42

2. Scénarios textuels des cas d'utilisation 45

3. Comportement des cas d'utilisation 47

4. Diagramme de classe d'analyse 49

· Chapitre 5 : Conception de la plateforme 51

I. Solution technique 51

1. Le portail d'accueil du SIG 51

2. Interface protégée 52

II. Fonctionnement du système 53

1. Etats des objets 53

2. Chronologie des interactions 55

3. Ebauche du diagramme de classe 57

3ere Partie : Mise en oeuvre de la plateforme

· Chapitre 6 : Choix des outils à utiliser 60

I. Les Systèmes de Gestion de Bases de données spatiaux 60

1. Présentation des différences entre les cartouches spatiales 60

a. Model Objet 60

b. Système de Référence Spatial 61

c. Prédicats 61

d. Opérateurs 61

e. Métadonnées 62

2. Présentation des évaluations quantitatives des cartouches spatiales 62

a. Temps d'exécution 62

b. Critères de notations 63

3. Conclusion sur les SGBDR spatiaux 64

II. Les serveurs cartographiques 64

1. GéoServer 64

2. MapServer 65

a. Présentation de MapServer 65

b. Principes de fonctionnement 67

c. Fonctionnalités de MapServer 68

d. Points forts et points faibles de MapServer 69

3. ArcIMS (I) 70

4. Conclusion sur les serveurs cartographiques 71

III. Les serveurs web 71

1. Points forts et points faibles 71

2. Choix selon les besoins 72

a. Compétences faibles et exigences modestes: IIS 72

b. Compétences fortes, tous types d'exigences: Apache 72

c. Compétences moyennes et exigences très fortes: Zeus 72

3. Autres informations pratiques 73

4. Conclusion sur les serveurs web 73

IV. Choix de la solution à implémentée 74

· Chapitre 7 : Implémentation de la solution 75

I. Environnement de Travail 75

1. Environnement matériel 75

2. Environnement logiciel 75

II. Architectures de la plateforme 76

1. Architecture logiciel du système 76

2. Architecture physique du système 77

3. Architecture applicative de la plateforme 77

4. Sécurité de la plateforme 79

III. Présentation de l'application 80

1. Zone privée 80

2. Interface publique 82

Conclusion générale 85

Réferences 86

Index 87

Annexes 88

SIGLES ET ABREVIATIONS

Le tableau ci-après représente la traduction de quelques sigles et abréviations utilisés dans ce document.

SIG

Système d'Information Géographique

PFE

Projet de Fin d'Etude

DUT

Diplôme Universitaire de Technologie

BTS

Brevet de Technicien Supérieure

DUES

Diplôme Universitaire d'Etude Scientifique

API

Application Programming Interface

PHP

Pre-HyperTexte-Processor

GPS

Global Positioning System.

SGBD

Système de Gestion de Bases de Données

CGI

Common Gateway Interface

OGC

OpenGis Consortium

ODBC

Open DataBase Connectivity

XML

EXtensible Markup Language

HTML

HyperText Markup Language

SRS

Système de References Spatiaux

UML

Unified Modelling Language

AUF

Agence Universitaire de la Francophonie

CNRS

Centre National de la Recherche Scientifiques

IRD

Institut de Recherche pour le Développement

JDK

Java Developpement Kit

ESRI

Environmental Systems Research Institute

UP

Unified Process

RAD

Rapid Application Development

DBF

Data Base File

SHP

SHaPe

SHX

SHape indeX

2. GLOSSAIRE

· Webmapping : C'est la diffusion de carte via internet

· Cartographie : C'est l'étude du tracé de cartes

· API : Application Programming Interface. Il s'agit ici de l'ensemble des commandes permettant d'accéder aux fonctionnalités du noyau MapServer.

· CGI : Un programme CGI est exécuté côté serveur. Il permet l'échange de données entre le serveur et le navigateur. Quand il reçoit une requête du poste client, le CGI détermine (en fonction de l'extension) l'action à effectuer.

· Open Source : Possibilité de libre redistribution, d'accès au code source, et de travaux dérivés

· Implémentation : Elle consiste à réaliser le programme conformément aux critères définis dans les phases d'analyse et de conception.

· Framework : Infrastructure logicielle facilitant la conception et le développement d'applications

· Layer : Il s'agit d'un terme anglais signifiant « couche »

· Serveur : C'est une machine ou un programme qui offre un service à un client (source : Wikipédia)

· Shapefile : "fichier de formes" est un format de fichier issu du monde des Systèmes d'Informations Géographiques (ou SIG).Initialement développé par ESRI pour ses logiciels commerciaux, ce format est désormais devenu un standard de facto, et largement utilisé par un grand nombre de logiciels libres.

· Mapfile : C'est un fichier texte d'extension .map qui contient toute la description de l'image à générer par MapServer.

· DBF : extension de fichier qui contient les données attributaires relatives aux objets contenus dans le Shapefile.

· SHX : extension de fichier qui stocke l'index de la géométrie.

· OGC : C'est l'organisme référent en matière de normalisation des informations géographiques. Association à but non lucratif, l'OGC élabore des normes pour le traitement de l'information géographique sur des plateformes informatiques ouvertes. Une de ses spécifications est de faciliter l'interopérabilité des systèmes afin de promouvoir le développement des SIG libres.

· Extent : L'extent correspond à l'étendue de la carte en coordonnées géographique dans un système de projection spécifique.

TABLE DES FIGURES

Figure 1.1: Les modules du projet TIC & Gouvernance Locale 18

Figure 2.1: Principe de cartographie sur Internet 21

Figure 2.2: Procédé de superposition de couches 24

Figure 2.3: la gamme de produit ArcGIS 26

Figure 3.1 : Illustration du caractère itératif de UP 31

Figure 3.2 : Modèle représentant les 4+1 vues de Kruchten 32

Figure 3.3 : Architecture bidirectionnelle du PU 33

Figure 5.1 : Présentation du portail LtiSig zone publique 52

Figure 5.2 : Présentation de l'interface privée 53

Figure 6.1 : Représentation de la note de chaque SGBD selon les critères choisis 63

Figure 6.2: Architecture de MapServer 67

Figure 6.3: Architecture de la solution choisie 74

Figure 7.1 : Architecture applicative de la plateforme 78

LES TABLEAUX

Tableau 4.1 : scénario textuel du cas « Authentification » 45

Tableau 4.2 : scénario textuel du cas « Navigation sur le portail » 46

Tableau 4.3 : scénario textuel du cas « importer shapefile » 46

Tableau 5.1 : présentation des classes de la phase conception 57

Tableau 5.2 : présentation des attributs et opération des classes de la phase conception 58

Tableau 6.1 : Comparaison base de données spatiaux : Version des SGBD 60

Tableau 6.2 : Comparaison base de données spatiaux : Model objet 60

Tableau 6.3: Comparaison base de données spatiaux : SRS 61

Tableau 6.4 : Comparaison base de données spatiaux : Prédicats 61

Tableau 6.5: Comparaison base de données spatiaux : Opérateurs 61

Tableau 6.6: Tables de métadonnées définies par l'OGC 62

Tableau 6.7: Comparaison base de données spatiaux : Gestion des métadonnées 62

Tableau 6.8 : Comparaison base de données spatiaux : Temps d'exécution 62

Tableau 6.9: Comparaison base de données spatiaux : Notations 63

Tableau 6.10 : Avantages et inconvénients de GéoServer 65

Tableau 6.11: Extrait d'un Mapfile 66

Tableau 6.12: Points forts et points faibles de MapServer 69

Tableau 6.13 : Points forts et points faibles des serveurs web étudiés 71

Tableau 6.14 : Tableau donnant des informations sur le Prix et la compatibilité pour les serveurs web 73

Tableau 7.1 : Caractéristiques des équipements 75

Tableau 7.2: Les outils logiciels utilisés 75

Tableau 7.3: Les librairies utilisées 76

TABLE DES DIAGRAMMES

Diagramme 4.1 : Diagramme de cas d'utilisation général 42

Diagramme 4.2 : Diagramme de cas d'utilisation «Navigation sur le portail » 43

Diagramme 4.3 : Diagramme de cas d'utilisation «Accès à la zone privée » 44

Diagramme 4.4 : Diagramme d'activité «Authentification » 48

Diagramme 4.5 : Diagramme d'activité «Accès à la zone privée » 48

Diagramme 4.6 : Diagramme d'activité «importer shapefile » 49

Diagramme 4.7 : Diagramme de classe d'analyse 50

Diagramme 5.1 : Diagramme d'état-transition de l'objet utilisateur 53

Diagramme 5.2 : Diagramme d'état - transition de l'objet couche 54

Diagramme 5.3 : Diagramme d'état - transition de l'image générée 54

Diagramme 5.4 : Diagramme de séquence de l'accès à la zone privée 55

Diagramme 5.5 : Diagramme de séquence de l'importation des shapefile 56

Diagramme 5.6 : Diagramme de séquence de navigation sur le portail 57

Diagramme 5.7 : Diagramme de classe de la phase conception 58

Diagramme 7.1 : Diagramme de composants du système 76

Diagramme 7.2 : Diagramme de déploiement du système 77

AVANT- PROPOS

Le département génie informatique de l'école supérieure polytechnique(ESP) de Dakar dispose d'un cycle d'ingénieur de conception qui dure trois(3) ans. Cette formation est accessible aux titulaires d'un DUT ou d'un BTS sélectionnés sur dossier d'un DUES scientifique sélectionnés sur concours. Ce cycle a pour objet de former des ingénieurs informaticiens dans le domaine général de la gestion, de l'organisation et de la production dans les entreprises.

Toutefois cette formation est bouclée par un stage d'au moins cinq(5) mois durant lequel un PFE est soumis à l'élève. Ce stage lui permettra, non seulement de mettre en pratique ses connaissances, mais aussi d'intégrer le milieu professionnelle.

A l'issue de ce stage un mémoire, expliquant clairement le travail de réalisation du PFE, sera présenté et soutenu devant un jury.

C'est dans ce contexte que nous avons été accueillit au sein du Laboratoire de Traitement de l'Information (LTI).

INTRODUCTION

L'homme est culturellement initié aux représentations symboliques, la cartographie en est une traduction. Elle est la première étape de la création des Systèmes d'Informations Géographiques.

L'essor des moyens de communication modernes tels que Internet ont très vite servi de support à la diffusion cartographique. L'arrivée à maturité de façon synchrone des SIG, d'Internet et de l'élaboration d'une normalisation ont permis le développement d'applications à fort potentiel.

Les formats image apparaissent à la fin des années 70. Ce sont des formats d'images en mode matriciel. Mais il faut attendre les années 90 pour voir apparaître des formats vectoriels normalisés. Pour les représentations cartographiques cela représente la base. Car le mode matriciel étant ancien, les premières applications vont s'orienter sur ce mode vectoriel qui va marquer profondément leur architecture.

L'élaboration de SIG performants et du Web sont passés par de fortes structurations des données. Ces données ainsi homogénéisées ont permis de concevoir des systèmes qui analysent le contenu sans s'occuper de la forme. De tels systèmes se sont ouverts au Web qui a connu les mêmes structurations. Ceci a permis des représentations cartographiques sur le Web. Certaines applications se limitent à un affichage d'information spatialisé qui associées à la diffusion du Web introduit un nouveau concept, le Webmapping1(*) qui est apparu au milieu des années 90. Le Webmapping, ou diffusion de cartes via le réseau internet, est un domaine en pleine expansion grâce au développement des solutions Open Sources2(*).

C'est dans cette optique que, le Laboratoire de Traitement de L'information, dans le cadre des projets d'appui à la décentralisation au Sénégal, nous a confié le projet de fin d'étude qui s'intitule ainsi : « Etude de solutions libres de Webmapping, et mise en place d'une plateforme de cartographie dynamique ». Il s'agit donc pour nous de proposer une solution libre de Webmapping, et ensuite de l'utiliser pour concevoir et mettre en oeuvre une application pouvant importer et afficher des cartes dynamiquement. La plateforme doit pouvoir gérer des données cartographiques de formats vectoriels et rasters.

L'objectif premier du PFE est de se doter d'une plateforme cartographique accessible via internet, permettant non seulement d'afficher des cartes à la demande d'un utilisateur, mais aussi de positionner des zones stratégiques en monde rurale sur celle-ci connaissant leurs coordonnées géographiques. Ces zones sont réparties sous forme de couches et il s'agit entre autres des écoles, des postes de santé, des points d'eau, des institutions administratives.

L'application doit en outre offrir des outils de navigation sur la carte. Ces outils sont entre autres le zoom, le déplacement, affichage des informations d'une zone, affichage de la légende de la carte.

Un autre objectif est de pouvoir représenter les cadastres de certaines zones rurales découpés en parcelles connaissant leurs limites géographiques.

Ce document est subdivisé en trois grandes parties. La première partie concerne la présentation générale qui est elle-même constituée en trois chapitres dans lesquels nous avons d'abord fait une présentation de la structure d'accueil, du contexte du projet et des objectifs, ensuite le chapitre suivant évoque l'état de l'art du webmapping où nous avons définit des concepts de la cartographie sur internet, enfin le dernier chapitre de cette partie à été consacré au choix d'une méthode d'analyse et de conception. La seconde partie intitulée analyse et conception évoque en deux chapitres l'étude fonctionnelle et conceptuelle de l'ensemble des besoins des utilisateurs.

Dans la dernière partie consacrée à la mise en oeuvre de la solution, nous distinguons deux chapitres. Le premier chapitre est réservé au choix des outils à utiliser pour réaliser la solution. Dans ce chapitre, nous avons mené des études comparatives entre les différents outils susceptibles d'être utilisé. Le tout dernier chapitre est consacré à l'implémentation de la solution choisie.

CHAPITRE

1

Présentation générale

I. Présentation de la structure d'accueil

Dans cette partie nous allons présenter la structure au sein de laquelle nous avons passé ces 5 mois de stage. Il s'agit en l'occurrence du labo LTI3(*).

Créé en janvier 2004 le LTI est devenu l'un des plus importants laboratoires de l'Ecole Supérieure Polytechnique, unité de recherche, transversale sur les Sciences de l'Ingénieur.
Les activités du LTI couvrent un large spectre qui part de l'océanographie pour aboutir à des systèmes complexes de transport, en passant par tous les composants de la chaîne informatique : réseaux, systèmes répartis, calcul numérique et calcul formel, logiciels de la recherche d'information et d'aide à la décision, codage des langues nationales sur internet.
Le LTI se veut centre africain de référence et d'excellence au coeur de la recherche et de ses applications. C'est dans cette optique qu'ont été créées des collaborations avec les grandes écoles de la sous région, unissant leur compétence  à celles du LTI.

Le laboratoire est également largement impliqué dans les formations par la recherche, à travers le Mastère Recherche SPI. Les chercheurs du LTI participent à de nombreux programmes de recherche nationaux ou internationaux (AUF, CRDI, CNRS, etc...). Ils sont les acteurs majeurs de l'activité scientifique internationale par le biais de l'animation de comités éditoriaux de revues, de l'organisation de très nombreuses conférences, l'accueil des chercheurs étrangers etc. Enfin, le LTI entretient un tissu de relations industrielles et des collaborations académiques avec des universités ou des centres de recherche comme l'IRD à travers des projets communs.

II. Contexte du projet

1. Le projet TIC & Gouvernance locale

Ce projet s'inscrit dans le contexte de la mise en oeuvre du plan d'action du Sommet mondial sur la société de l'information (SMSI). Ce plan met l'accent entre autres sur la nécessité d'un partenariat public-privé pour permettre aux collectivités africaines un accès généralisé aux technologies de l'information et de la communication (TIC) pour stimuler leur développement économique et sociale.

Le projet est une initiative conjointe d'Alcatel, du CRDI et du FENU (Fonds d'équipement des Nations Unies). Il consiste à conduire une expérience-pilote d'intégration d'applications et services de TIC dans le processus de décentralisation et de gouvernance locale au Sénégal. Il sera déployé dans huit communautés rurales de deux départements (Kaffrine et Kébémer), zones d'intervention du FENU, par une équipe pluridisciplinaire de chercheurs du Laboratoire de traitement de l'information de l'Ecole supérieure polytechnique de Dakar. Le projet pilote devra fournir des enseignements de base pour une extension de l'expérience dans l'espace et dans le temps. La figure ci-dessous donne les différents modules ciblés par le projet.

Figure 1.1: Les modules du projet TIC & Gouvernance Locale

2. Problématiques et objectifs

Notre séjour au laboratoire de traitement de l'information, a consisté à la mise en place du module «  Localisation cartographique rurale ».

Il s'agissait donc pour nous de réaliser une plateforme de cartographie dynamique accessible via internet à partir des outils du monde libre.

Cette plateforme devra mettre à la disposition des utilisateurs, le maximum de fonctionnalités offertes par un SIG classique.

Il faut pouvoir positionner géographiquement des zones stratégiques sur une carte. Il faudra égalent affiner la navigation sur la carte en implémentant des outils de navigations tels que le zoom +, le zoom - et le déplacement.

Il faudra aussi pouvoir afficher la légende de la carte créée pour une meilleure lecture de l'image.

Lors qu'on sélectionne une zone, l'application devra pouvoir afficher l'ensemble des informations concernant cette zone.

A travers cet outil cartographique, les projets d'appui à la décentralisation au Sénégal ont pour but de mettre à la disposition des communautés rurales une cartographie complète des centres stratégiques tels que :

· Les écoles

· Les centres de santé

· Les postes de santé

· Les points d'eau

· Les institutions administratives

· ......

Par ailleurs un autre objectif peut être distingué. Il s'agit de pouvoir visualiser le cadastre d'une zone découpé en parcelles. Ce qui permettra bien sûre de pouvoir localiser les champs dans un village, connaitre le propriétaire, la surface et d'autres descriptions importantes.

CHAPITRE

2

Etat de l'art du Webmapping

I. Définition et présentation des concepts de la cartographie en ligne

La cartographie en ligne répond à de réels besoins de diffusion rapide de l'information et de mise à jour à distance des données. Bien que le résultat cartographique permette de faciliter la compréhension de l'espace environnant, la mise en oeuvre de telles plateformes demande des compétences transversales à la fois en informatique et en géographie.

1. La cartographie

La cartographie désigne la réalisation et l'étude des cartes. Elle mobilise un ensemble de techniques servant à la production des cartes. La cartographie constitue un des moyens privilégiés pour l'analyse et la communication en géographie. Elle sert à mieux comprendre l'espace, les territoires et les paysages. Elle est aussi utilisée dans des sciences connexes, démographie, économie dans le but de proposer une lecture spatialisée des phénomènes.

2. Le Webmapping ou cartographie dynamique sur Internet

Ce terme générique défini à la fois le processus de distribution de cartes via un réseau tel que l'Internet ou l'Intranet et leur visualisation dans un navigateur. En d'autres termes on peut l'appeler un SIG web.

Les données stockées et mises en relation dans les SGBDR correspondent aux informations attributaires décrivant l'espace donné, tandis que les objets géographiques tels que le point, la ligne et le polygone sont des données géométriques référencées dans un plan en x par la longitude et en y par la latitude voire en z pour l'altitude.

Les données sont directement reliées à une géométrie particulière dans un SIG grâce à des connexions informatiques ODBC.

Dans une conception en ligne, la visualisation des cartes passe par des programmes installés sur des serveurs cartographiques qui communiquent par des protocoles prédéfinis. La géométrie est gérée grâce à la cartouche spatial du SGBDR.

3. Principe de la cartographie sur Internet

La solution la plus répandue actuellement dans le domaine de la mise en ligne de données cartographiques consiste à créer à la volée une image correspondant à la demande de l'utilisateur. Pour cela, il est le plus souvent fait appel à un serveur cartographique.

C'est le protocole de communication TCP/IP qui permet à des ordinateurs branchés en réseau d'échanger de l'information via un navigateur web ou de transférer des fichiers via le protocole ftp. L'architecture est de type client/serveur c'est-à-dire qu'il existe une série d'ordinateurs dits clients connectés à un serveur dédié qui lui-même communique vers l'extérieur ou avec des serveurs particuliers par l'intermédiaire de leur adresse IP. L'utilisateur sur sa machine locale effectue des requêtes pour demander une carte spécifique ; le serveur cartographique interprète cette requête et renvoie la carte sous la forme d'une image matricielle (gif, jpg, png,...) ou vectorielle (svg, flash). Le serveur cartographique est télécommandé par des langages de script qui lui permettent de charger dynamiquement une carte en réponse à la requête. L'ordinateur serveur peut chercher cette information soit dans ses propres ressources, soit sur des serveurs de données distants.

Figure 2.1: Principe de cartographie sur Internet

La consultation de l'information requiert une installation essentiellement côté serveur avec des logiciels tels que Apache ou IIS (Internet Information Services) qui tournent en tâche de fond et permettent aux serveurs de cartes d'accéder à l'Intranet et/ou à l'Internet.

Il faut aussi rajouter des interpréteurs de scripts et éventuellement une visionneuse pour afficher la carte sur le navigateur du client. La visionneuse peut être un applet ou un servlet.

Dans le cas de l'applet, la visionneuse se télécharge côté client à chaque utilisation, dans le cas du servlet, elle s'exécute directement sur le serveur, la différence se situe au niveau de la rapidité de chargement et de la saturation potentielle des capacités du serveur.

Les requêtes sur un serveur cartographique peuvent êtres exécutées par le navigateur ou par un programme appelant. Les moteurs cartographiques sont des programmes dont le rôle est de fabriquer à la volée, selon la demande de l'utilisateur des fichiers images représentant des données géographiques stockées sur le disque dur du serveur ou sur un autre serveur relié. Au niveau du serveur de données, les SGBDR tels que PostgreSQL ou MySQL, entre autres, peuvent être installés directement sur le serveur contenant le serveur cartographique ou bien à distance. Qu'importe le lieu, l'important est de pouvoir consulter et éditer des données à distance.

II. Unités cartographiques(I)

1. Point 

Le point est un élément sans dimension. Sa localisation est donnée par ses coordonnées. Ce concept est référencé à des étiquettes (constituant la légende) qui permettent sa compréhension. Quoique sans dimension, la notion de point soit relative à l'échelle à cause de ce qu'elle peut représenter (hôpital ou ville). La notion de distance entre deux points est souvent utilisée comme lien topologique.

2. Ligne ou segment de ligne 

La ligne ou segment de ligne est un élément à une dimension. Sa localisation est déterminée par les coordonnées des deux extrémités du segment. L'épaisseur du trait ou la forme du trait apporte une information supplémentaire sur sa signification thématique. La notion de distance est souvent utilisée pour caractériser une ligne.

3. Surface ou zone 

La surface ou zone est l'espace limité par une ligne fermée ou un polygone. Du point de vue cartographique, c'est un élément à deux dimensions. La localisation d'une surface s'exprime par les coordonnées de son centre de gravité, d'une référence interne ou des sommets du polygone qui forme ses limites.

Un noeud est défini comme un sommet constituant l'intersection de plus de deux segments tandis que la chaîne correspond à la ligne brisée dont les deux extrémités sont des éléments.

III. Nature des données

1. Les données géométriques

Décrivent les objets : leurs formes (ligne, surface ou points), leur position par rapport à un système de coordonnées ainsi que les relations spatiales entre ces différents objets. Deux modes techniques permettent de mettre en oeuvre cette information :

a. Le mode raster 

Nativement, un navigateur Web connaissant le HTML peut afficher une image numérique, encore appelée image BITMAP. Elle se compose donc d'une matrice de pixels (abréviation de l'anglais « Picture élément »), c'est-à-dire de petits carrés noirs ou blancs ou de différents tons de gris ou de couleur juxtaposés. Généralement les formats d'image les plus utilisés sont le GIF, le JPEG et le PNG.

Le format GIF limite à 256 le nombre de couleurs possibles mais restitue une image sans perte d'information. Il permet aussi de gérer des effets de transparence. Le format JPEG ne connaît pas cette limite et supporte des taux de compression plus élevés au prix d'une certaine dégradation de l'image de base. Le format PNG, qui est une émanation du consortium W3C, utilise un mode de compression sans perte d'information qui est réputé d'une efficacité excellente. Il a l'avantage de pouvoir traiter plusieurs types d'images et d'être libre de tout droit. Cependant, il est encore peu utilisé.

b. Le mode vecteur 

Les fichiers vectoriels contiennent une description des entités géographiques à représenter : points, lignes, surfaces, formes géométriques élémentaires. A ce jour, deux formats vectoriels se dégagent : le SVG qui est un format ouvert et le SWF dit aussi Flash qui est un format propriétaire. Que se soit l'un ou l'autre des formats vectoriels, aucun n'est lu actuellement par un navigateur Web sans l'adjonction d'un plug-in.

2. Les données attributaires

Ce sont des attributs mis en relation avec un objet ou une localisation géographique, soit pour nous renseigner sur un objet géographique, soit pour localiser des informations. Les données attributaires regroupent différents types d'informations : nom, valeur numérique, contenu thématique, etc.

IV. Affichage par couche

Un SIG affiche les informations concernant le monde par superposition de couches thématiques pouvant être reliées les unes aux autres par la géographie. Chaque couche contient des objets de même type (routes, marchés, cours d'eau, limites de communes, pistes, établissement, hôpitaux,...). Ce concept, à la fois simple et puissant a prouvé son efficacité pour résoudre de nombreux problèmes concrets.

Le schéma suivant montre, la création de l'image de la carte finale par superposition de couches :

Figure 2.2: Procédé de superposition de couches

V. Les principales fonctionnalités d'un SIG (I)

Les SIG doivent être à la fois un outil de gestion pour le technicien et un outil d'aide a la décision pour le décideur. Il doit donc offrir les fonctions nécessaires à ces deux objectifs, regroupées sous le terme des `5A':

1. Abstraction :

Elle vise à représenter le monde réel, en organisant les données par composants géométriques et par attributs descriptifs et en en établissant des relations entre les objets.

2. Acquisition 

L'acquisition revient à alimenter le SIG en données par saisie des informations géographiques sous forme numérique : la forme des objets géographiques et leurs attributs et relations.

3. Archivage 

L'archivage revient à gérer la base de données en transférant les données de l'espace de travail vers l'espace d'archivage.

4. Analyse 

Elle permet de manipuler et d'interroger des données géographiques afin de répondre aux requêtes des utilisateurs.

5. Affichage 

Son but est de permettre à l'utilisateur d'appréhender des phénomènes spatiaux dans la mesure où la représentation graphique respecte les règles de la cartographie.

VI. Quelques solutions de Webmapping existants

Actuellement il existe une multitude de solutions de Webmapping sur le marché. Nous allons parler entre autre de Google maps et de ArcGIS.

1. Google Map

Google Maps4(*) est un service gratuit de carte géographique et de plan en ligne. Le service a été créé par Google. Il s'agit d'une forme de géoportail. Lancé en 2004 aux États-Unis et au Canada et en 2005 en Grande Bretagne (sous le nom de Google Local), Google Maps a été lancé jeudi 27 avril 2006, simultanément en France, Allemagne, Espagne et Italie. Ce service a ceci de particulier qu'il permet, à partir de l'échelle d'un pays, de pouvoir zoomer jusqu'à l'échelle d'une rue. Deux types de plan sont disponibles : un plan classique, avec nom des rues, quartier, villes et un plan en image satellite, qui couvre aujourd'hui le monde entier. Ce service n'est plus en version bêta depuis le 12 septembre 2007, et a été ajouté aux liens de la page d'accueil de Google.

2. ArcGIS

Les récents développements de l'informatique (généralisation d'Internet, avancées dans la technologie des SGBD, programmation orientée objet, informatique nomade) et une large adhésion au SIG ont fait évoluer ses perspectives et son rôle.
En plus de l'environnement bureautique, les logiciels SIG peuvent être centralisés sur des serveurs d'applications et des serveurs Web pour fournir des fonctions SIG à un nombre infini d'utilisateurs par l'intermédiaire de réseaux. Des ensembles spécifiques de logique SIG peuvent être incorporés et déployés dans des applications personnalisées. De même, le SIG est de plus en plus déployé sur des périphériques nomades pour des applications de terrain.
Dans un environnement d'entreprise, les utilisateurs se connectent à des serveurs SIG centraux par l'intermédiaire de SIG bureautiques traditionnels, de navigateurs Web, d'applications spécialisées, de matériels nomades et d'appareils numériques. Le concept de plate-forme SIG progresse.

La gamme de produits ArcGIS5(*) a été conçue pour s'adapter à ces besoins en constante évolution et proposer une plateforme SIG complète et évolutive, comme le montre le schéma ci-dessous.

Figure 2.3: la gamme de produit ArcGIS

CHAPITRE

3

Choix d'une méthode d'analyse

I. Définition des concepts

L'analyse permet de lister les résultats attendus, en termes de fonctionnalités, de performance, de robustesse, de maintenance, de sécurité, d'extensibilité, etc. L'analyse répond donc à la question « que faut-il faire » et a pour but de se doter d'une vision claire et rigoureuse du problème posé et du système à réaliser en déterminant ses éléments et leurs interactions. Elle met l'accent sur une investigation du problème et des exigences, plutôt que sur une solution. A ce niveau d'abstraction, on doit capturer les besoins principaux des utilisateurs en identifiant les éléments du domaine, ainsi que les relations et interactions entre ces éléments : les éléments du domaine sont liés au(x) métier(s) de l'entreprise, ils sont indispensables à la mission du système, ils gagnent à être réutilisés (ils représentent un savoir-faire) (II).

La conception permet de décrire de manière non ambiguë, le plus souvent en utilisant un langage de modélisation, le fonctionnement futur du système, afin d'en faciliter la réalisation. La conception menée à la suite de la phase d'analyse répond donc à la question « comment faut-il faire ce qu'il faut faire ? ». Elle met l'accent sur une solution conceptuelle qui satisfait aux exigences plutôt que sur une implémentation6(*). Le processus de conception a ainsi pour but de figer les choix techniques (outils, langages, frameworks7(*)). Il permet ainsi de modéliser tous les rouages d'implémentation et de détailler tous les éléments de modélisation issus des niveaux supérieurs. Les modèles sont optimisés, car destinés à être implémentés.

Ainsi, l'analyse sert à la découverte et à la compréhension et a pour but d'élaborer les spécifications tandis que la conception sert à structurer et à développer une solution (II).

II. Pourquoi utiliser une méthode ? (II)

Les systèmes d'information ont beau gagné en complexité, les temps de développement n'en sont pas pour autant extensibles. Il faut, dès lors, privilégier l'approche métier, associer utilisateurs et informaticiens, optimiser les ressources et la technologie pour garantir délais et budget. Les méthodes répondent à ces exigences et permettent la construction d'applications fonctionnellement et techniquement conformes aux attentes des divers intervenants du projet.

L'impératif est clair : plus vite, moins cher et de meilleure qualité. Le succès d'un projet dépend désormais de deux facteurs essentiels : l'implication des utilisateurs et une méthode garantissant la réussite du projet tout autant que la qualité de l'application.

Nous devons noter qu'avec les progrès du génie logiciel plusieurs méthodes ont vues le jour. Nous allons, dans le paragraphe suivant, les décrire et les classifier.

III. Classification des méthodes d'analyse et de conception

Les méthodes d'analyse et de conception peuvent être divisées en quatre grandes familles :

1. Les méthodes cartésiennes ou fonctionnelles (II)

Avec ces méthodes (SADT, SA-SD), le système étudié est abordé par les fonctions qu'il doit assurer plutôt que par les données qu'il doit gérer. Le processus de conception est vu comme un développement linéaire. Il y'a décomposition systématique du domaine étudié en sous domaines, eux-mêmes décomposés en sous domaines jusqu'à un niveau considéré élémentaire.

2. Les méthodes systémiques (II)

Dans les méthodes systémiques (Merise, REMORA8(*), etc.), le système est abordé à travers l'organisation des systèmes constituants l'entreprise. Elles aident donc à construire un système en donnant une représentation de tous les faits pertinents qui surviennent dans l'organisation en s'appuyant sur plusieurs modèles à des niveaux d'abstraction différents (conceptuel, organisationnel, logique, physique, etc.)

3. Les méthodes objets (II)

L'approche objet permet d'appréhender un système en centrant l'analyse sur les données et les traitements à la fois. Les stratégies orientées objet considèrent que le système étudié est un ensemble d'objet coopérant pour réaliser les objectifs des utilisateurs. Les avantages qu'offre une méthode de modélisation objet par rapport aux autres méthodes sont la réduction de la « distance » entre le langage de l'utilisateur et le langage conceptuel, le regroupement de l'analyse des données et des traitements, la réutilisation des composants mis en place.

4. Approche orientée aspect

Bien qu'en étant encore à ses débuts, la Programmation Orientée Aspect commence à se faire connaître et séduit. C'est un principe novateur qui permet de résoudre les problèmes de séparation des préoccupations d'une application. Le code résultant devient plus lisible, réutilisable et le remplacement de composants se fait rapidement et à moindre coût du fait de la séparation des préoccupations. Cette séparation se fait par la création d'aspects contenant le code à greffer à l'application. Un programme appelé « tisseur » greffe ensuite les aspects de façon statique après la compilation, ou de façon dynamique au moment de l'exécution.

Il existe déjà des tisseurs matures, comme AspectJ pour Java, qui est parfaitement intégré à Eclipse grâce au plug-in AJDT. La plateforme .NET possède aussi des tisseurs très prometteurs, tels que AspectDNG qui permet déjà une utilisation professionnelle.

· Définition de quelques mots -clés

Code cible ou code de base : Ensemble de classes qui constituent une application ou une bibliothèque. Ces classes n'ont pas connaissance des aspects (il n'y adonc aucune dépendance), elles ne se "doutent" pas qu'elles vont constituer la cible d'un tissage.

Aspect : Il s'agit du code que l'on souhaite tisser. Selon les tisseurs, un aspect peut être une simple classe ou constituer un élément d'un langage spécifique.

Zone de greffe : Ce sont les "endroits" dans le code cible dans lesquels aura lieu le tissage.

Tissage : Processus qui consiste à ajouter (tisser, greffer, injecter) le code des aspects sur les zones de greffe du code cible.

Tisseur : Programme exécutable ou framework dynamique qui procède au tissage. Le tisseur peut être invoqué:

- statiquement avant la compilation du code cible (le tisseur travaille sur le code source),

- statiquement pendant la compilation du code cible (le tisseur intègre un compilateur du langage de programmation),

- statiquement après la compilation du code cible (le tisseur travaille sur le code précompilé: bytecode),

- dynamiquement avant exécution du code (au moment de la compilation Just-In-Time),

- dynamiquement pendant l'exécution du code (par la technique d'interception d'invocation de méthode, utilisée intensivement par les frameworks d'inversion de contrôle).

· Avantages et inconvénients

Le couplage entre les modules gérant des aspects techniques peut être réduit de façon très importante, en utilisant ce principe, ce qui présente de nombreux avantages :

Maintenance aisée : les modules techniques, sous forme d'aspect, peuvent être maintenus plus facilement du fait de son détachement de son utilisation,

Meilleure réutilisation : tout module peut être réutilisé sans se préoccuper de son environnement et indépendamment du métier ou du domaine d'application. Chaque module implémentant une fonctionnalité technique précise, on n'a pas besoin de se préoccuper des évolutions futures : de nouvelles fonctionnalités pourront être implémentées dans de nouveaux modules qui interagiront avec le système au travers des aspects.

Gain de productivité : le programmeur ne se préoccupe que de l'aspect de l'application qui le concerne, ce qui simplifie son travail.

Amélioration de la qualité du code : la simplification du code qu'entraine la programmation par aspect permet de le rendre plus lisible et donc de meilleure qualité.

Par contre le tissage d'aspect qui n'est finalement que de la génération automatique de code inséré à certains points d'exécution du système développé, produit un code qui peut être difficile à analyser (parce que généré automatiquement) lors des phases de mise au point des logiciels (débogages, test). Mais en fait cette difficulté est du même ordre que celle apportée par toute décomposition non linéaire (fonctionnelle ou objet par exemple).

IV. Choix d'une méthode d'analyse et de conception

Dans cette partie nous allons présenter deux démarches d'analyses et de conceptions. Il s'agit de UP et de la méthode RAD.

1. Le Processus Unifié (UP)

a. Définition

Le processus unifié est un processus de développement logiciel itératif, centré sur l'architecture, piloté par des cas d'utilisation et orienté vers la diminution des risques.

C'est un patron de processus pouvant être adaptée à une large classe de systèmes logiciels, à différents domaines d'application, à différents types d'entreprises, à différents niveaux de compétences et à différentes tailles de l'entreprise.

ü UP est Itératif

L'itération est une répétition d'une séquence d'instructions ou d'une partie de programme un nombre de fois fixé à l'avance ou tant qu'une condition définie n'est pas remplie, dans le but de reprendre un traitement sur des données différentes.

Elle qualifie un traitement ou une procédure qui exécute un groupe d'opérations de façon répétitive jusqu'à ce qu'une condition bien définie soit remplie.

Une itération prend en compte un certain nombre de cas d'utilisation et traite en priorité les risques majeurs.

Figure 3.1 : Illustration du caractère itératif de UP

ü UP est centré sur l'architecture

Une architecture adaptée est la clé de voûte du succès d'un développement. Elle décrit des choix stratégiques qui déterminent en grande partie les qualités du logiciel (adaptabilité, performances, fiabilité...).

Figure 3.2 : Modèle représentant les 4+1 vues de Kruchten

ü UP est piloté par les cas d'utilisation d'UML

Le but principal d'un système informatique est de satisfaire les besoins du client. Le processus de développement sera donc accès sur l'utilisateur.

Les cas d'utilisation permettent d'illustrer ces besoins. Ils détectent puis décrivent les besoins fonctionnels (du point de vue de l'utilisateur), et leur ensemble constitue le modèle de cas d'utilisation qui dicte les fonctionnalités complètes du système.

b. Vie du processus unifié

L'objectif d'un processus unifié est de maîtriser la complexité des projets informatiques en diminuant les risques. UP est un ensemble de principes génériques adapté en fonctions des spécificités des projets.

UP répond aux préoccupations suivantes : QUI participe au projet ?, QUOI, qu'est-ce qui est produit durant le projet ?, COMMENT doit-il être réalisé ?, QUAND est réalisé chaque livrable ?

UP gère le processus de développement par deux axes.

L'axe vertical représente les principaux enchaînements d'activités, qui regroupent les activités selon leur nature. Cette dimension rend compte l'aspect statique du processus qui s'exprime en termes de composants, de processus, d'activités, d'enchaînements, d'artefacts et de travailleurs.

L'axe horizontal représente le temps et montre le déroulement du cycle de vie du processus; cette dimension rend compte de l'aspect dynamique du processus qui s'exprime en terme de cycles, de phases, d'itérations et de jalons.

Figure 3.3 : Architecture bidirectionnelle du PU

UP répète un certain nombre de fois une série de cycle qui s'articule autours de 4 phases qui sont : analyse des besoins, élaboration, construction, transition.

Pour mener efficacement un tel cycle, les développeurs ont besoins de toutes les représentations du produit logiciel  qui sont : un modèle de cas d'utilisation, un modèle d'analyse détaillant les cas d'utilisation et procéder à une première répartition du comportement, un modèle de conception ,finissant la structure statique du système sous forme de sous-systèmes de classes et interfaces, un modèle d'implémentation, intégrant les composants, un modèle de déploiement ,définissant les noeuds physiques des ordinateurs, un modèle de test, décrivant les cas de test vérifiant les cas d'utilisation, et une représentation de l'architecture

c. Les Phases

Pour bien mener un projet du début à la fin, UP préconise les phases suivantes :

ü Expression des besoins

L'expression des besoins comme son nom l'indique, permet de définir les différents besoins : inventorier les besoins principaux et fournir une liste de leurs fonctions, recenser les besoins fonctionnels (du point de vue de l'utilisateur) qui conduisent à l'élaboration des modèles de cas d'utilisation, appréhender les besoins non fonctionnels (technique) et livrer une liste des exigences.

Le modèle de cas d'utilisation présente le système du point de vue de l'utilisateur et représente sous forme de cas d'utilisation et d'acteur, les besoins du client.

ü Analyse

L'objectif de l'analyse est d'accéder à une compréhension des besoins et des exigences du client. Il s'agit de livrer des spécifications pour permettre de choisir la conception de la solution. Un modèle d'analyse livre une spécification complète des besoins issus des cas d'utilisation et les structure sous une forme qui facilite la compréhension (scénarios), la préparation (définition de l'architecture), la modification et la maintenance du futur système.

Il s'écrit dans le langage des développeurs et peut être considéré comme une première ébauche du modèle de conception.

ü Conception

La conception permet d'acquérir une compréhension approfondie des contraintes liées au langage de programmation, à l'utilisation des composants et au système d'exploitation. Elle détermine les principales interfaces et les transcrit à l'aide d'une notation commune. Elle constitue un point de départ à l'implémentation :

- elle décompose le travail d'implémentation en sous-système

- elle crée une abstraction transparente de l'implémentation

ü Implémentation

L'implémentation est le résultat de la conception pour implémenter le système sous formes de composants, c'est-à-dire, de code source, de scripts, de binaires, d'exécutables et d'autres éléments du même type. Les objectifs principaux de l'implémentation sont de planifier les intégrations des composants pour chaque itération, et de produire les classes et les sous-systèmes sous formes de codes sources.

ü Tests

Les tests permettent de vérifier des résultats de l'implémentation en testant la construction. Pour mener à bien ces tests, il faut les planifier pour chaque itération, les implémenter en créant des cas de tests, effectuer ces tests et prendre en compte le résultat de chacun.

2. La méthode RAD

Aujourd'hui, qualité et réactivité font partie des objectifs généraux de beaucoup d'entreprises. Cela entraîne un certain nombre de projets, qui tout en apportant satisfaction aux utilisateurs, doivent être menés dans un délai court. C'est à cela que répond la méthode RAD. RAD est une méthode basée sur le partenariat. L'utilisateur s'affirme le vrai maître de son application et, par sa participation active, il s'en approprie la réalisation. Le RAD et le prototypage permettent de réaliser en concevant, tout en testant ce que l'on réalise. La méthode RAD propose de remplacer le cycle de vie classique par un autre découpage temporel. Le déroulement est d'abord linéaire, puis il suit le modèle de la spirale. Les étapes sont au nombre de cinq :

ü La phase d'Initialisation

Cette phase permet de définir le périmètre général du projet, de structurer le travail par thèmes, de sélectionner les acteurs pertinents et d'amorcer une dynamique de projet. Elle représente environ 6% du projet en charge.

ü La phase Expression des besoins

Cette phase permet de spécifier les exigences du système lors des entretiens avec les utilisateurs et de définir la solution globale sur les plans stratégique, fonctionnel, technologique et organisationnel. Cette phase représente environ 9% du projet.

ü La phase de Conception

Cette phase permet de concevoir et de modéliser le futur système avec le concours des utilisateurs pour l'affinage et la validation des modèles. C'est aussi dans cette phase que nous validons le premier niveau de prototype présentant l'ergonomie et la cinématique générale de l'application. Cette phase représente environ 23% du projet.

ü La phase de Construction (développement itératif).

Durant cette phase, notre équipe développe l'application module par module. L'utilisateur participe toujours activement aux spécifications détaillées et à la validation des prototypes. Plusieurs sessions itératives sont nécessaires. Cette phase représente environ 50% du projet.

ü La phase de mise en oeuvre

Des recettes partielles ayant été obtenues à l'étape précédente, il s'agit dans cette phase d'officialiser une livraison globale et de transférer le système en exploitation et maintenance. Cette phase représente environ 12% du projet.

V. Le langage UML

La modélisation est incontournable pour permettre aux différents acteurs de coopérer et de dialoguer efficacement. Ainsi Il est donc important de connaître le langage et les techniques de modélisation et de savoir quels modèles sont les plus appropriés dans chaque situation. En effet, de la même manière qu'il n'est pas judicieux d'utiliser tous les éléments de la langue française pour écrire un article, il n'est pas non plus obligatoire d'utiliser tous les concepts du langage UML dans un projet.

Nous allons, dans les paragraphes suivants, présenter l'intérêt d'utiliser UML dans la conception d'un SIG ainsi que les différents diagrammes utilisés par ce langage.

1. Pourquoi UML ?

Nombreuses sont les tentatives d'application des méthodes de conception des systèmes d'information pour la mise en oeuvre des systèmes d'information géographique. Les raisons les plus significatives de leur inefficacité dans la conception des systèmes d'information géographique sont entre autres les suivantes.

Ces méthodes reposent sur deux approches distinctes, privilégiant soit les données, soit les traitements. Or le fonctionnement d'un système d'information géographique repose justement sur une interdépendance étroite entre les données et les traitements.

L'information géographique s'organise hiérarchiquement et les traitements qui sont appliqués sont souvent complexes et reposent aussi sur des processus d'agrégation de l'information. Or les méthodes proposées par les systèmes d'information d'entreprise ne prennent en compte que des traitements simples de type flux ou échange de données.

L'utilisation des méthodes de conception des SI présuppose que soient, au préalable, clairement identifiés les besoins des applications et que l'on ait la maîtrise de leur évolution. Or en matière d'analyse spatiale, de gestion et de planification territoriale, les besoins s'identifient le plus souvent en fonction des données dont on dispose, des résultats issus des traitements réalisés, et de l'évolution des requêtes adressées par les utilisateurs. Il est certain que la modélisation UML ayant été élaborée pour répondre aux besoins des systèmes d'information classiques n'est donc pas conçue, a priori, pour répondre aux spécificités des systèmes intégrant de l'information géographique Ces derniers gérant à la fois des données graphiques et des données non graphiques sont considérés comme un cas particulier des SI.

Toutefois, il semble qu'a priori les principaux concepts proposés par UML soient pertinents pour l'analyse et la conception des systèmes de gestion et d'analyse des territoires. Cette approche peut constituer un support intéressant en termes d'acquisition des connaissances, de structuration de l'information géographique à intégrer dans l'outil à concevoir, et de spécification des fonctionnalités de l'outil.

2. Diagrammes structurels (les vues statiques)

Ces diagrammes permettent de visualiser, spécifier, construire et documenter l'aspect statique ou structurel du système d'information. Il s'agit outre les diagrammes de cas d'utilisation, des diagrammes de classes, d'objets, mais aussi de déploiement et de composants

a. Les cas d'utilisation (uses cases)

Les cas d'utilisation sont une technique de description du système étudié privilégiant le point de vue de l'utilisateur. Ils décrivent sous la forme d'actions et de réactions, le comportement d'un système et servent, par conséquent, à structurer les besoins des utilisateurs et les objectifs correspondants du système.

La détermination et la compréhension des besoins sont souvent difficiles car les intervenants sont noyés sous de trop grandes quantités d'informations. Or, comment mener à bien un projet si l'on ne sait pas où l'on va ?

Les uses cases ne doivent pas chercher l'exhaustivité, mais clarifier, filtrer et organiser les besoins. Ils ne doivent donc en aucun cas décrire des solutions d'implémentation. Leur but est justement d'éviter de tomber dans la dérive d'une approche fonctionnelle, où l'on liste une litanie de fonctions que le système doit réaliser.

b. Les diagrammes d'objets

Ce type de diagramme UML montre des objets (instances de classes dans un état particulier) et des liens (relations sémantiques) entre ces objets. Les diagrammes d'objets s'utilisent pour montrer un contexte (avant ou après une interaction entre objets par exemple). Il sert essentiellement en phase exploratoire, car il possède un très haut niveau d'abstraction.

c. Les diagrammes de classes

Les diagrammes de classes expriment de manière générale la structure statique d'un système, en termes de classes et de relations entre ces classes.

Une classe permet de décrire un ensemble d'objets (attributs et comportement), tandis qu'une relation ou association permet de faire apparaître des liens entre ces objets.

d. Les diagrammes de paquetages (ou package)

Les paquetages sont des éléments d'organisation des modèles. Ils regroupent des éléments de modélisation, selon des critères purement logiques. Ils permettent d' encapsuler des éléments de modélisation et de structurer un système en catégories ( vue logique) et sous-systèmes ( vue des composants).  Ils servent de « briques » de base dans la construction d'une architecture.

e. Les diagrammes de composants et de déploiement

Les diagrammes de composants permettent de décrire l'architecture physique et statique d'une application en termes de modules : fichiers sources, librairies, exécutables, etc. Ils montrent la mise en oeuvre physique des modèles de la vue logique avec l'environnement de développement.

Les diagrammes de déploiement montrent la disposition physique des matériels qui composent le système et la répartition des composants sur ces matériels. Les ressources matérielles sont représentées sous forme de noeuds, connectés entre eux à l'aide d'un support de communication.

3. Diagrammes comportementaux (les vues dynamiques)

Ils modélisent les aspects dynamiques du système, c'est à dire les différents éléments qui sont susceptibles de subir des modifications. Parmi eux on distingue, les diagrammes de séquence, de collaboration, d'états - transitions et d'activités.

Ils représentent la dynamique du système, à savoir, non seulement les interactions entre le système lui même et les différents acteurs du système, mais aussi, la façon dont les différents objets contenus dans le système communiquent entre eux.

a. Les diagrammes de séquence

Les diagrammes de séquences permettent de représenter des collaborations entre objets selon un point de vue temporel, on y met l'accent sur la chronologie des envois de messages. Les diagrammes de séquences peuvent servir à illustrer un cas d'utilisation

b. Les diagrammes de collaboration

Les diagrammes de collaboration montrent des interactions entre objets (instances de classes et acteurs). Ils permettent de représenter le contexte d'une interaction, car on peut y préciser les états des objets qui interagissent.

c. Les diagrammes d'états- transitions

Ces diagrammes servent à représenter des automates d'états finis, sous forme de graphes d'états, reliés par des arcs orientés qui décrivent les transitions. Ils permettent de décrire les changements d'états d'un objet ou d'un composant, en réponse aux interactions avec d'autres objets/composants ou avec des acteurs.

Un état se caractérise par sa durée et sa stabilité, il représente une conjonction instantanée des valeurs des attributs d'un objet.

Une transition représente le passage instantané d'un état vers un autre. Une transition est déclenchée par un événement. En d'autres termes : c'est l'arrivée d'un événement qui conditionne la transition. Les transitions peuvent aussi être automatiques, lorsqu'on ne spécifie pas l'événement qui la déclenche. En plus de spécifier un événement précis, il est aussi possible de conditionner une transition, à l'aide de "gardes" : il s'agit d'expressions booléennes, exprimées en langage naturel (et encadrées de crochets).

d. Les diagrammes d'activités

UML permet de représenter graphiquement le comportement d'une méthode ou le déroulement d'un cas d'utilisation, à l'aide de diagrammes d'activités (une variante des diagrammes d'états-transitions). Une activité représente une exécution d'un mécanisme, un déroulement d'étapes séquentielles. Le passage d'une activité vers une autre est matérialisé par une transition. Les transitions sont déclenchées par la fin d'une activité et provoquent le début immédiat d'une autre (elles sont automatiques).

En théorie, tous les mécanismes dynamiques pourraient être décrits par un diagramme d'activités, mais seuls les mécanismes complexes ou intéressants méritent d'être représentés.

Conclusion : Le langage UML, offre ainsi de nombreux avantages pour l'analyse et la conception d'un système d'information géographique. Par conséquent, nous combinerons UML au Processus Unifié pour mener à terme notre système d'information.

CHAPITRE

4

Analyse de la plateforme

Dans ce chapitre, nous allons effectuer une analyse complète de notre système afin d'effectuer un dimensionnement correct des caractéristiques de notre produit. Il s'agit donc d'effectuer une analyse fonctionnelle du système qui consiste à distinguer les besoins fonctionnelles.

Il s'agit de l'ensemble des fonctionnalités qui décrivent les services attendus. Dans cette partie, nous allons d'abord décrire l'ensemble des acteurs qui interagissent avec notre système, ensuite nous décrirons en détails l'ensemble des interactions entre ces acteurs et le système à l'aide de diagrammes de cas d'utilisation et enfin le comportement de ces cas d'utilisation par des diagrammes d'activité.

I. Les acteurs du système

Après avoir recensé l'ensemble des besoins, nous avons distingué les différents acteurs suivants :

1. L'administrateur :

C'est le super-utilisateur qui gère le SIG. Il ajoute des structures et crée un responsable de site pour chaque structure.

2. Responsable du site

C'est le groupe de personne qui tous les droits sur l'application concernant son espace c'est-à-dire seulement ce qui concerne sa structure et qui est chargé de l'organisation de son site. Il peut créer d'autres utilisateurs en leur attribuant des droits. C'est lui qui met à jour et/ou valide toutes les mises à jour effectuée. Il accède donc à toutes les interfaces de l'application.

3. Les utilisateurs membres

Il s'agit d'un groupe d'utilisateur qui est nommé par l'administrateur et qui accède à l'interface protégé avec des tâches réduites. Toutes les mises à jour qu'ils effectuent sont d'abord validées par l'administrateur avant d'être publiée.

4. Les visiteurs

C'est le groupe qui accède uniquement à la zone publique. Ils ne s'authentifient pas, et accède directement à cette zone pour consultation (affichage d'une carte ou un plan, navigation, recherches...). En d'autres termes ce sont les internautes.

II. Interactions entre les acteurs et le système

Ces interactions seront décrites à l'aide de diagrammes de cas d'utilisation. Si nécessaire certains cas d'utilisation seront également décrits à l'aide d'un scénario textuelle.

1. Diagrammes de cas d'utilisation

Diagramme 4.1 : Diagramme de cas d'utilisation général

o Le cas d'utilisation « Navigation sur le portail »

Ici, nous allons nous intéresser au cas « navigation »  car celui-ci permet d'effectuer toutes les actions de la zone publique. Il faut noter que tous les acteurs peuvent effectuer ce cas d'utilisation.

Diagramme 4.2 : Diagramme de cas d'utilisation «Navigation sur le portail »

Afficher Carte ou Plan : il s'agit d'afficher une carte ou un plan en choisissant les couches correspondantes.

Zoom (+/-) : Permet d'agrandir/réduire les dimensions de la carte ou du plan sur la zone cliquée.

Afficher légende : Affiche la légende correspondante aux couches sélectionnées.

Afficher infos : Permet d'afficher les informations relatives à une zone à partir d'un click sur la carte.

Tous ces trois derniers cas nécessitent l'affichage d'une carte ou d'un plan.

Changer Couleur : Permet de modifier la couleur de fond associée à une couche.

o Le cas d'utilisation « Accès à la zone privée »

Ce cas décrit l'ensemble des fonctionnalités disponibles dans la zone privée qui n'est accessible que par les utilisateurs authentifiés.

Diagramme 4.3 : Diagramme de cas d'utilisation «Accès à la zone privée »

Importer des shapefile : il d'importer des fichiers shapes vers notre base de donnée spatiale.

Valider les points et polygones : c'est la validation des points et des polygones ajoutés par les membres avant d'être publié.

2. Scénarios textuels des cas d'utilisation

Nous allons choisir ici de d écrire textuellement les deux cas suivant : « Authentification », « Navigation » et « importation des shapefile »

o Le cas « Authentification »

Tableau 4.1 : scénario textuel du cas « Authentification »

Nom du cas

Authentification

Acteur

Les Utilisateurs sauf les visiteurs simples

Scénario

succès

Pré conditions

Utilisateur créé

Utilisateur appartient à la structure concernée

Actions

Le système présente le portail d'accueil

L'utilisateur sélectionne le menu paramétrage

Le système présente le formulaire d'authentification

L'utilisateur saisie son login et son mot de passe

Le système vérifie et accepte l'identité de l'utilisateur

Ensuite le système crée une session et enregistre les paramètres de l'utilisateur dans celle-ci

Le système affiche la page admin correspondante au profil de l'utilisateur

L'utilisateur accède ainsi à toutes les fonctionnalités dont il a droit

Post condition

L'utilisateur est authentifié et est enregistré dans la session courante

Variantes

L'utilisateur à oublier son compte

Le système lui redemande son login et mot de passe

o Le cas « Navigation sur le portail »

Tableau 4.2 : scénario textuel du cas « Navigation sur le portail »

Nom du cas

Navigation sur le portail

Acteur

Tous les Utilisateurs

Scénario

succès

Pré conditions

Accès à internet ou à l'intranet

Actions

Le système le portail du site avec tous les outils de navigation

L'utilisateur sélectionne une couche

Le système affiche la couche correspondante

L'utilisateur sélectionne l'outil zoom+ et click sur la carte

Le système effectue le zoom avant à partir du point de click

L'utilisateur sélectionne l'outil zoom-

Le système effectue le zoom arrière

L'utilisateur sélectionne l'outil déplacement

Le système effectue le déplacement du point

L'utilisateur demande d'afficher la légende

Le système affiche la légende correspondante aux couches sélectionnées

L'utilisateur sélectionne l'outil info

Le système affiche les infos relatives à la zone sélectionnée

L'utilisateur effectue la recherche sur un objet

Le système affiche tout le résultat de la recherche

Post condition

Les couches sélectionnées sont affichées

Apres zoom l'emprise de la carte change

Variantes

L'utilisateur n'entre pas les bons critères de recherche

Le système ne retourne aucun résultat

L'utilisateur tente de zoomer sans afficher au préalable une carte

Le système lui affiche un message lui disant de sélectionner et d'afficher d'abord une carte.

o Le cas « Importer shapefile »

Tableau 4.3 : scénario textuel du cas « importer shapefile »

Nom du cas

Importer shapefile

Acteur

Seuls les responsables du site

Scénario

succès

Pré conditions

Responsable authentifié

Actions

L'utilisateur sélectionne le menu importer shapefile

Le système présente un formulaire d'importation

Le système demande à l'utilisateur de donner les répertoires ou sont localisés les fichiers

L'utilisateur click sur parcourir et sélectionne les chemins des répertoires

Le système récupère ces chemins

L'utilisateur click sur importer

Le système télécharge les fichiers de la machine locale vers le server

Le système exécute la commande et crée le contenu des shapes dans la base de donnée spatiale

Le système affiche un message signalant le succès de l'importation

Post condition

Le système crée une nouvelle couche vecteur dans la base de données spatiale

Variantes

L'utilisateur n'entre les bons types de fichier.

Le système envoie un message d'erreur

3. Comportement des cas d'utilisation

Nous allons décrire ici le comportement de certains cas d'utilisation à l'aide de diagrammes d'activités. Nous décrivons ici les comportements des cas « Authentification » et « Accès à la zone privée » et « importation des shapefile ».

Diagramme 4.4 : Diagramme d'activité «Authentification »

Diagramme 4.5 : Diagramme d'activité «Accès à la zone privée »

Diagramme 4.6 : Diagramme d'activité «importer shapefile »

4. Diagramme de classe d'analyse

Apres avoir décrit l'ensemble des cas d'utilisation et leurs comportements, nous aboutissons au diagramme de classe d'analyse suivant :

Diagramme 4.7 : Diagramme de classe d'analyse

Après cette phase d'analyse qui nous a permis de bien cerner le périmètre du système, nous allons passer dans le prochain chapitre à la phase conception.

Conception de la plateforme

CHAPITRE

5

Après la spécification et une analyse complète des besoins, nous allons maintenant passer à la phase conception. Cette phase détermine les principales interfaces et les transcrit à l'aide d'une notation commune. Elle constitue un point de départ à l'implémentation.

I. Solution technique

Dans cette partie, nous allons présenter la solution proposée pour l'ergonomie de la plateforme. Les études chapitre précédent nous permettent de dégager deux interfaces (zones) pour notre plateforme. Il s'agit de la zone publique accessible par tous les visiteurs et de la zone privée qui n'est accessible que par les utilisateurs authentifiés.

1. Le portail d'accueil du SIG

Cette page est accessible par tous les visiteurs et présente l'ensemble des outils de navigation. Le portail sera organisé comme suit (avec des frames) :

Une bannière sera placée en haut de l'écran. Dans celle-ci va figurer le logo du SIG et les mentions de l'ensemble des outils libres qui ont permis de réaliser la plateforme.

A gauche de l'écran sera réservé à la sélection des couches à afficher.

Au centre, nous aurons la zone d'affichage de la carte générée à partir des couches qui ont été sélectionnées ainsi que de la palette des outils de navigation.

A droite nous aurons la partie consacrée à la recherche.

Le schéma suivant donne un aperçu du portail d'accueil LtiSig. (Voir page suivante).

Figure 5.1 : Présentation du portail LtiSig zone publique

2. Interface protégée

Cette interface n'est accessible que par les utilisateurs authentifiés. Chaque utilisateur voit l'écran son profil. Par exemple le responsable du site pourra voire toutes les rubriques contrairement au membre simple qui ne voit que l'ajout des points et des parcelles. Pour y accéder il faut juste cliquer sur le lien paramétrage situé au niveau du portail.

Pour le cas du responsable on a les rubriques suivantes :

Importer shapefile : qui affiche le formulaire d'importation des fichiers shapes.

Ajouter point : qui affiche le formulaire d'ajout d'un point.

Ajouter parcelle : qui affiche le formulaire de création d'une forme polygonale représentant une parcelle.

Gestion des utilisateurs : qui affiche l'interface de gestion des utilisateurs de son espace

Validation : qui affiche la fenêtre de validation des informations ajoutées par le membre pour que celles-ci puissent être vues par les visiteurs.

Figure 5.2 : Présentation de l'interface privée

II. Fonctionnement du système

Dans cette partie nous allons tenter d'appréhender le fonctionnement global du system à l'aide de diagrammes d'état-transition et des diagrammes de séquences qui nous permettrons de voir la chronologie des interactions entre le système et les acteurs.

1. Etats des objets

Ici nous allons nous intéressé aux objets susceptibles de passer d'un état à un autre. Ces changements seront représentés par des diagrammes d'état-transition.

Diagramme 5.1 : Diagramme d'état-transition de l'objet utilisateur

Pour éviter de supprimer un utilisateur lorsqu'il est déjà créé, nous proposons de mettre l'état de l'utilisateur à « bloque ». En ce moment il ne pourra pas s'authentifié comme s'il à été supprimé. Il suffira alors de débloquer son compte pour qu'il retrouve son état initial.

Diagramme 5.2 : Diagramme d'état - transition de l'objet couche

L'application devra permettre à l'utilisateur de changer les couleurs des couches.

Diagramme 5.3 : Diagramme d'état - transition de l'image générée

Apres chaque requête de l'utilisateur l'image générée change en fonction de la requête. En effet si une nouvelle couche est sélectionnée, alors la nouvelle image sera la superposition de la nouvelle couche et des couches précédentes. Dans le cas d'un zoom, une nouvelle image est générée avec une nouvelle emprise, la zone de click devient plus grande et plus visible.

2. Chronologie des interactions

Nous allons à présent, nous intéressé de la chronologie des interactions entre les objets et le système. Pour cela nous utiliserons des diagrammes de séquences.

o Accès à la zone privée : Ici l'utilisateur doit d'abord être authentifié. Une fois l'utilisateur identifié, ses paramètres personnels sont sauvegardés dans une session. Ceux-ci seront actifs durant toute la durée de la session.

Diagramme 5.4 : Diagramme de séquence de l'accès à la zone privée

o Importation des shapefile : Il s'agit ici de l'importation des données géographiques vers notre base de données spatiale. Celle-ci se fait par le responsable du site et repose essentiellement sur le téléchargement de trois types de fichiers dont les extensions sont : shp, shx, et dbf.

Diagramme 5.5 : Diagramme de séquence de l'importation des shapefile

o Navigation sur le portail : il s'agira ici de la chronologie de la navigation sur le portail.

Diagramme 5.6 : Diagramme de séquence de navigation sur le portail

3. Ebauche du diagramme de classe

Après une étude approfondie du fonctionnement global de notre système, nous aboutissons à une représentation statique du système matérialisé par le diagramme de classe de la page suivante.

Tableau 5.1 : présentation des classes de la phase conception

Classe

Description

Utilisateur

Cette classe permet la gestion des utilisateurs

Description_couche

C'est une classe qui permet de manipuler les différentes caractéristiques des couches. Elle renvoie les labels les couleurs... de chaque couche

Structure

Permet la manipulation des structures. L'application appartient au Labo lti et étant accessible via internet on peut vouloir intégrer d'autres structures dans la plateforme sans avoir à la déplacer

Import_couche

C'est une classe qui permet d'importer des fichiers shapes vers notre BD et crée la table correspondante

Source_donnee

Permet de créer notre chaine de connexion à la BD par exemple

Couche_point

Permet d'ajouter des points dans la plateforme via un formulaire

Couche_parcelle

Permet d'ajouter des parcelles sous formes polygonales

carte

Toutes les fonctions permettant de créer et naviguer sur la carte

Diagramme 5.7 : Diagramme de classe de la phase conception

Tableau 5.2 : présentation des attributs et opération des classes de la phase conception

Attributs

Description

Opérations

Description

Classe Structure

nom, adresse

Nom et adresse de la structure

Créer (), modifier (), supprimer ()

Opération de mise à jour

Classe Utilisateur

profil

Pour connaitre si l'utilisateur est administrateur ou responsable ou membre

Bloquer ()

Permet de bloquer ou de rendre actif le compte d'un utilisateur

etat

Si l'utilisateur est dans un état bloqué ou actif

Classe Source_donnee

Chaine_connexion

Contient la valeur de la chaine de connexion à la source de données

Connexion ()

Permet de se connecter à la source de donnée (BD) a partir de la chaine donnée

Suite du tableau 5.2

Suite du tableau 5.2

Classe Import_couche

Nom

Nom de la couche

 
 

Fich_shp,fich_shx,fich_dbf

Les noms des fichiers shapes

Importer ()

Effectue l'importation des données shapes

Classe Description_couche

Nom

Nom de la couche

Afficher_label ()

Permet d'afficher le label associé à la couche

Label

Nom du champ à afficher

Symbol

Le symbole à afficher

Changer_couleur ()

Permet de changer la couleur de la couche sélectionnée

Couleur

La couleur à attribuer a la couche

Source

La source de l'a couche

Classe Couche_point

Nom_couche, description

Nom et description du point

Créer (), modifier ()

Opérations de mise à jour

Nature

Par exemple : Ecole, hôpital...

Coord_X, coord_Y

Les coordonnées du point

Valider ()

Permet de valider un point ajouté par un membre

Valide

Détermine si le point est valide

Carte

Nom

Nom de la carte

 
 

Hauteur et largeur

La hauteur et la largeur de la carte

Créer ()

Génère l'image correspondant à la carte

Zoomer (), déplacer ()

Implémente les outils de navigations comme le zoom et le déplacement

Créer_legende ()

Permet de créer la légende

Afficher_echelle ()

Affiche la barre d'échelle

NB : Il faut noter que l'orsqu'une couche est importée une table, contenant toutes les informations issues du fichier shape, est créée dynamiquement.

L'or de l'implémentation des classes nous avons ajouté pour chacune d'elles les méthodes accesseurs qui sont des opérations publiques permettant d'affecter des valeurs aux attributs et d'accéder aussi à ces valeurs.

Apres une bonne analyse, qui nous a permis d'appréhender et d'organiser l'ensemble des besoins du système, et une conception qui nous a permis de dégager des solutions techniques, nous allons pouvoir nous intéressé aux outils dont nous aurons besoin pour automatiser notre système.

CHAPITRE

6

Choix des outils à utiliser

I. Les Systèmes de Gestion de Bases de données spatiaux

Dans cette partie, nous allons nous intéressé à une étude comparative de trois système de gestion de base de données qui intègrent des cartouches spatiaux. Il s'agit notamment de MySQL9(*), Oracle10(*) et PostgreSQL11(*). Cette étude à été réalisée par LINAGORA et CampToCamp12(*) pour le compte du CNES13(*) qui est le Centre National d'Etudes Spatiales.

Tableau 6.1 : Comparaison base de données spatiaux : Version des SGBD

SGBD

Version

MySQL

5.1 beta

PostgreSQL

8.1.4_postGIS 1.1.6

Oracle Spatial

Oracle-10gR2_spatial.ods

Oracle Locator

Oracle-10gR2_locator.ods

1. Présentation des différences entre les cartouches spatiales

Les comparaisons seront effectuées par rapport aux points suivant : Model Objet, Index Spatiaux, Système de Référence Spatial(SRS), Prédicats, Opérateurs, Autres fonctions, Métadonnées.

a. Model Objet

Il s'agit d'un model constitué essentiellement des objets suivants : Point, Linestring, Polygon, GeomCollection, MultiPoint, MultiLinestring, Multipolygon.

Tableau 6.2 : Comparaison base de données spatiaux : Model objet

MySQL

PostgreSQL

Oracle

- Point

- Linestring

- Polygon

- GeometryCollection

- MultiPoint

- MultiLineString

- MultiPolygon

- 2D (X-Y)

- Point

- Linestring

- Polygon

- GeometryCollection

- MultiPoint

- MultiLineString

- MultiPolygon

- CircularString

- CompoundCurve

- CurvePolygon

- MultiCurve

- 2D (X-Y)

- 3D (X-Y-Z)

- 3D (X-Y-M)

- 4D (X-Y-Z-M)

- Point

- Linestring

- Polygon

- GeometryCollection

- MultiPoint

- MultiLineString

- MultiPolygon

- Rectangle

- ArcLinestring

- ArcPolygon

- CompoundLinestring

- CompoundPolygon

- Circle

- 2D (X-Y)

- 3D (X-Y-Z)

- 3D (X-Y-M)

- 4D (X-Y-Z-M)

b. Système de Référence Spatial

Il permet la gestion des systèmes de coordonnées, le changement de systèmes et la prise en compte de coordonnées géocentriques.

Tableau 6.3: Comparaison base de données spatiaux : SRS

MySQL

PostgreSQL

Oracle

- Stockage SRID

- Pas de gestion des SRS

- Moteur de projection

PROJ4

- Définitions issues d'EPSG

(2670+ systèmes)

- Ajout de systèmes possible

- Pas de transformation

implicite (mêmes SRID pour les objets)

- Faible support des coordonnées géocentriques

- Package SRS: sdo_cs

- Schéma complet

décrivant les SRS

- Définitions issues

d'EPSG (codes EPSG +

codes Oracle)

- Gestion géocentrique

- Conversion d'unités

- Transformations complexes et implicites (filtres uniquement)

- Quelques restrictions

c. Prédicats

Des exemples de prédicats répondants aux spécifications de l'OGC sont : Crosses, Touches, Within, Disjoint.

Tableau 6.4 : Comparaison base de données spatiaux : Prédicats

MySQL

PostgreSQL

Oracle

- Uniquement sur les bbox

- Déclenchent l'utilisation des index spatiaux

- Tous implémentés

- Respect du nommage norme

- Ne déclenchent pas

l'utilisation des index

- Robustes

- Tous implémentés, ou prédicats équivalents

- Non respect du nommage

- Déclenchent l'utilisation des index

d. Opérateurs

Voici une liste non exhaustive des opérateurs répondant à la norme OGC. Il s'agit de Union (mot réservé SQL...), Intersection, Difference, Symmetric Difference(SymDifference), Buffer, ConvexHull.

Tableau 6.5: Comparaison base de données spatiaux : Opérateurs

MySQL

PostgreSQL

Oracle

- Pas de support

- Support de tous les opérateurs

- Respect du nommage OGC

- Support de tous les opérateurs

- Noms spécifiques

- Uniquement Oracle Spatial

e. Métadonnées

La norme OGC définie deux tables :

Tableau 6.6: Tables de métadonnées définies par l'OGC

Table

Description

spatial_ref_sys: qui stocke des Systèmes de Référence Spatiaux

 

geometry_columns: qui stocke des tables contenant des colonnes spatiales ainsi que les noms des colonnes géométriques.

 

Tableau 6.7: Comparaison base de données spatiaux : Gestion des métadonnées

MySQL

PostgreSQL

Oracle

- Pas de gestion des

métadonnées

- Gestion des métadonnées

- Respect des règles de nommage

- Gestion des métadonnées

- Noms spécifiques: vue

USER_SDO_GEOM_

METADATA

- Schéma complet pour la gestion des SRS

2. Présentation des évaluations quantitatives des cartouches spatiales

Dans cette partie nous présenterons l'évaluation en termes de temps d'exécution et des critères de notations.

a. Temps d'exécution

Tableau 6.8 : Comparaison base de données spatiaux : Temps d'exécution

MySQL

PostgreSQL

Oracle

- Requête généralement les plus rapides des 3

systèmes

- Jointures entre tables très rapides

- Temps prometteurs

- Jointures entre tables relativement lentes

- Buffer, ConvexHull prenant beaucoup de temps

- Opérateurs performants

- Buffer, ConvexHull très performants

- Jointures entre tables très longues (plusieurs dizaine de minutes)

- Union de gros polygones très longue (plusieurs heures)

- Ordre des opérandes

important

b. Critères de notations

La notation est effectuée suivant les quatre critères suivants : Conformité OGC, Fonctionnalités principales, Autres fonctionnalités, Outillage. Le tableau ci-dessous donne la moyenne associée à chaque système de gestion de base de données pour chacun des critères.

Tableau 6.9: Comparaison base de données spatiaux : Notations

Critères

Note

MySQL

PostgreSQL

Oracle Spatial

Oracle Locator

Conformité Norme OGC

1.5

1.75

1.25

0.75

Portabilité

Niveau d'Implémentation

Respect des nommages

2

1

1

1

1

2

2

1

2

2

0

0

Fonctionnalités principales

0.5

1.5

2

1.67

Model Objet

Prédicats Spatiaux

Opérateurs

Gestion SRS

Index Spatiaux

Coordonnées Géocentriques

1

1

2

2

1

2

2

2

0

2

2

0

0

1

2

2

1

2

2

2

0

1

2

2

Autres fonctionnalités

0

0.5

2

0

Paquets SIG

Gestion Rasters

0

1

2

0

0

0

2

0

Outillage

1

2

1.5

1.5

Outils d'insertion

Outils de visualisation/Traitement

1

2

1

1

1

2

2

2

Figure 6.1 : Représentation de la note de chaque SGBD selon les critères choisis

3. Conclusion sur les SGBDR spatiaux

Si nous avions à effectuer une classification sur l'ensemble des fonctionnalités offertes par les SGBDR étudiés ci-dessus, Oracle Spatial viendrait en tête suivie de PostgreSQL/PostGIS.

Cependant, nous portons notre choix sur le second du fait qu'il n'est pas propriétaire donc libre et gratuit, et qui est quasiment aussi performant que Oracle Locator qui est quand à lui un produit propriétaire et non gratuit.

II. Les serveurs cartographiques

Le serveur cartographique est le guichet automatique auquel l'utilisateur fait appel pour afficher des cartes sur son poste informatique, il peut être contrôlé par des langages de script tels que PHP, JavaScript, Python ou Perl qui lui permettent de générer dynamiquement une carte en réponse à une requête préparée par une interface utilisateur14(*).

Dans cette partie nous allons vous présenté trois(3) serveurs cartographiques qui sont : GéoServer, MapServer et ArcIMS.

1. GéoServer

GéoServer15(*) est un moteur cartographique Open Source développé en environnement JAVA, et basé sur la librairie GeoTools16(*). GéoServer implémente de nombreuses spécifications Web Service de l'OGC (WMS, WFS-T, WCS, SLD...), il est de plus application de référence pour l'OGC pour le support de la norme WFS. GéoServer permet de rapidement mettre en place un Web Service proposant données vectorielles et/ou rasters.

GéoServer gère de nombreux formats de sortie pour les données (PNG, SVG, KML, JPEG, PDF, GeoJSON...). De plus il est aisé pour un utilisateur averti de rajouter son propre module de sortie personnalisé pour des données vectorielles. C'est un outil de représentation cartographique lourd. Dans le sens où il nécessite l'installation d'un JDK 1.4 ou supérieur. Il dispose d'une vitesse d'affichage correcte mais d'une finesse d'image supérieure. Son interface est soigné et conviviale.

Tableau 6.10 : Avantages et inconvénients de GéoServer

Avantages et inconvénients de GéoServer

Avantages

- Structure homogène : GeoAPI, GeoTools, respect des normes OGC

- Finesse de l'interface et des cartes

- Licence GPL

Inconvénients

- Lenteur par rapport à MapServer

- Nécessite l'installation d'un JDK 1.4 ou supérieur

- Difficulté de trouver une bonne documentation

2. MapServer

Cette partie est entièrement consacrée à tout ce qui tourne autour de MapServer

a. Présentation de MapServer

MapServer17(*) est un programme CGI18(*) qui s'exécute donc sur un serveur web. En quelques mots, son rôle consiste à piocher dans des bases de données et autres ressources afin de générer des images de type matriciel, qui seront transmises à un client par l'intermédiaire d'un serveur web.

La naissance de cet outil intervient dans un contexte caractérisé par une forte demande de mutualisation et d'accès à l'information. Il est disponible sur de nombreux OS : Unix, Linux, MacOs X, Windows et s'appuie sur de nombreuses librairies libres, telles que la Shapelib pour lire des shapefile, FreeType pour gérer du texte dans les cartes, et Proj4 pour gérer les systèmes de coordonnées et projections. Il existe enfin des API pour plusieurs langages (PHP, Python, Java, Perl, C#).

L'usage "simple" de MapServer consiste à régler quelques paramètres dans un fichier de configuration (le mapfile), et cela suffit pour mettre en place un serveur WMS conforme aux normes OGC.

Dix ans après sa création, MapServer est aujourd'hui devenu une des alternatives les plus sérieuses aux logiciels propriétaires spécialisés dans le webmapping. Son statut de Logiciel Libre aidant, MapServer est en passe de devenir une solution de webmapping de référence grâce à ses performances remarquables et des fonctionnalités de plus en plus nombreuses.

ü MapServer en CGI ou avec MapScript

MapServer peut être utilisé en CGI ou avec MapScript. En CGI, Common Gateway Interface littéralement « Interface passerelle commune », MapServer fonctionne comme un exécutable retournant le contenu généré. CGI est le standard industriel qui indique comment passer l'information du serveur HTTP au programme et comment en récupérer le contenu généré.

CGI permet de passer des paramètres au programme, de telle manière qu'il en tienne compte pour générer les données. Avec MapScript, MapServer est commandé par phpmapscript ou javamapscript ou perlmapscript....

Plus dur à mettre en oeuvre, il est aussi beaucoup plus souple et permet d'obtenir précisément le résultat attendu. MapScript est une API19(*) C qui s'interface avec PHP, Perl, C#, Java. Elle permet d'utiliser les fonctions de MapServer à partir de ces scripts.

ü Le Mapfile

C'est l'élément essentiel, la pièce maîtresse de l'agencement et de la sémiologie des couches. C'est lui qui donne les instructions à MapServer. Il se compose d'objets comportant eux même d'autres objets. Un mapfile20(*) est un fichier texte ASCII structuré en plusieurs paragraphes qui définissent les paramètres de la carte (cadre, échelle, légende et couches). En pratique, il est appelé par un script et renvoie les différentes couches (layers) sous la forme d'images. Celles-ci peuvent provenir de différentes sources telles qu'une base de données spatiale locale ou distante, un serveur distant grâce à une requête GetMap, un fichier géométrique ou image dans le disque dur local par son shapefile.

Tableau 6.11: Extrait d'un Mapfile

MAP // Ouverture du bloc map

EXTENT -17.5352 12.0287 -11.3558 16.9701 // définit la fenetre géographique de la carte

IMAGECOLOR 255 255 255 // Couleur d'arriere plan de l'image

IMAGETYPE png // Type de l'image de sortie

SYMBOLSET "C:\wamp\www\ltisig\symbole\symbol.sym« // Chemin du fichier des symboles

SIZE 600 480 // Dimensions de l'image

STATUS ON // Activer le mapfile

UNITS METERS // L'unité de la carte

NAME "ltisig« // Nom du mapfile

OUTPUTFORMAT

NAME "png"

MIMETYPE "image/png"

DRIVER "GD/PNG"

EXTENSION "png"

IMAGEMODE "PC256"

TRANSPARENT FALSE

SUITE du tableau 6.11

END

LAYER // Début d'un bloc Layer (couche)

CONNECTION "user=postgres dbname=ltisig host=localhost« // Connexion à Postgres

CONNECTIONTYPE POSTGIS // Type de connexion : POSTGIS

DATA "the_geom from senegal« // Source de la donnée géographique

LABELITEM «nom« // Nom de la colonne à afficher

NAME "senegal« // Nom de la couche

STATUS ON // Activer la couche

TYPE POLYGON // Type de la donnée géographique

UNITS METERS

CLASS // Debut d'un bloc class

NAME "Territoire« // Nom de la classe

LABEL

.....

END // Fin du bloc LAYER

.......

END // Fin du bloc MAP

b. Principes de fonctionnement

Nous détaillons ici de manière schématique le mécanisme d'une requête à un serveur cartographique de type MapServer.

Figure 6.2: Architecture de MapServer

c. Fonctionnalités de MapServer

L'arrivée de MapServer dans le monde des serveurs cartographiques a joué un rôle important dans la diffusion de la cartographie dynamique en ligne, non seulement du fait de ses performances et de sa fiabilité reconnues, mais également par la diversité de ses fonctionnalités. Son statut de logiciel libre (qui se traduit entre autres par un code source ouvert) lui confère une certaine richesse de ce point de vue grâce à une communauté active d'utilisateurs/développeurs. En outre, MapServer s'appuie sur des librairies qui s'enrichissent également en fonctionnalités avec le temps. Nous recensons ici quelques caractéristiques importantes de MapServer :

ü Une application multi plateforme

Développé à la base sur des systèmes d'exploitation libres, MapServer est aujourd'hui utilisable sur un grand nombre de systèmes d'exploitation : Windows (95 à XP), Linux, Mac OS X, BSD, Solaris.

ü Une compatibilité avec plusieurs serveurs web

Une caractéristique fondamentale de MapServer est sa compatibilité avec les différents types de serveurs web existant actuellement. Il fonctionne aussi bien sur les serveurs libres que propriétaires : Apache, Microsoft IIS/PWS, Netscape Enterprise, NCSA Httpd.

ü Projection à la volée

L'utilisation de la librairie PROJ.4 permet à MapServer de projeter des couches à la volée depuis et vers toute projection et système de coordonnées supportés par la librairie (en raster et en vecteur). Un millier de projections sont ainsi prédéfinies.

ü Une diversité de formats raster en entrée

MapServer supporte directement une grande diversité de formats aussi bien en raster qu'en vecteur. Il lit nativement les images au format TIFF, EPPL, PNG, JPEG, GIF ainsi qu'une trentaine d'autres formats à travers la librairie GDAL.

ü Une diversité de formats vectoriels en entrée

MapServer peut lire de nombreux formats de données vectorielles : Shapefile, DGN, UK .NTF, SDTS, etc. Cette caractéristique lui fournit une interopérabilité avec la presque totalité des solutions de SIG actuellement sur le marché.

ü Formats d'images en sortie

MapServer peut produire des images sous un grand nombre de formats. On utilise principalement les sorties PNG, JPEG, PDF, GIF, BMP, GeoTIFF, etc.

ü Connexion à des bases de données spatiales

MapServer offre la possibilité de se connecter à différents types de bases de données spatiales (libres comme propriétaires) : PostgreSQL/PostGIS, ArcSDE, Oracle Spatial/Locator etc.

ü Une compatibilité avec divers langages de développement

Même si MapServer est à la base écrit en C, celui-ci est compatible avec la plupart des langages et environnement de script actuellement utilisés : PHP, Python, Perl, Rubis, Java et C#.

ü Une forte modularité

En plus de ces fonctionnalités de base, MapServer offre une multitude de fonctionnalités annexes permettant entre autres : l'affichage des légendes de la carte, l'affichage d'une carte de référence, l'affichage d'une barre d'échelle, la mise à disposition d'outils de contrôle et de navigation (déplacement et zoom sur la carte), la possibilité de faire des requêtes ...

Cette diversité de fonctions fait aujourd'hui de MapServer un des logiciels de cartographie en ligne les plus complets et les plus extensibles. Ceci est un des piliers de son succès grandissant.

d. Points forts et points faibles de MapServer

Tableau 6.12: Points forts et points faibles de MapServer

Points forts et points faibles de MapServer

Points forts

- Le statut de MapServer comme solution libre

- Les performances de MapServer et sa stabilité remarquable

- L'adaptabilité et la flexibilité

- Interopérabilité

- Nombreuses fonctionnalités

- Evolution rapide

Points faibles

- Forte nécessité en développements

- Qualité du rendu graphique

- Lourdeur de l'installation

Remarque : Il faut noter que MapServer à lui tout seul « n'est rien ». Il est « manipulé » à l'aide langages de script tels que php, perl, java...

3. ArcIMS (I)

Les principaux produits d'ESRI pour les serveurs SIG sont :

ArcIMS : Serveur cartographique Internet évolutif. Il est beaucoup utilisé pour publier des cartes, des données et des métadonnées SIG à un grand nombre d'utilisateurs sur le Web.

ArcSDE : Serveur de données spatiales qui permet à une application cliente quelconque, de stocker, gérer et utiliser des données spatiales dans un SGBD.

ArcGIS Server : Plate-forme permettant de développer des services Web.

Par contre ArcIMS est le seul serveur qui permet le Webmapping, la publication Web des SIG et qui prend en charge les applications cartographiques Java et HTML nécessaire a notre application. Il s'agit en réalité d'une offre double puisqu'elle comporte deux technologies différentes :

Des traitements Serveur qui affichent des images cartographiques générées par le serveur dans des pages HTML classiques, éventuellement agrémentées de scripts clients pour améliorer les capacités fonctionnelles de celles-ci ;

Une applet Java pour afficher et interroger (requêtes spatiales, analyses thématiques ...) des données vectorielles au format Shape File d'ArcView, transférées au poste client dans un format compressé.

ArcIMS est par ailleurs intégrable avec des solutions plus générales, et dispose d'un véritable gestionnaire de publication, fort utile aux auteurs de sites.

Cette offre se distingue particulièrement par son caractère « serveur centralisé de données géographiques ». Il ne s'agit en effet pas simplement d'une offre pour la consultation et l'interrogation des informations. Plusieurs fonctionnalités originales sont en effet disponibles : extraction de données vectorielles vers le poste afin de réaliser des traitements locaux, croisement des données « classiques » résidant sur le poste client ou sur un réseau local.

4. Conclusion sur les serveurs cartographiques

GéoServer et MapServer offrent quasiment les mêmes fonctionnalités et les mêmes performances. Certes GéoServer offre un meilleur rendu, néanmoins il nécessite l'installation du JDK avec une version supérieure à 1.4. Il est également très difficile de trouver une bonne documentation pour GéoServer. Notons que ArcIMS est propriétaire et distribué sous licence payante. Par contre MapServer lui hérite d'une large communauté qui évolue rapidement et qui peut s'interfacer avec plusieurs langages de scripts comme php, perl, java, etc. C'est ce qui à motivé notre choix pour MapServer.

III. Les serveurs web

L'univers des serveurs web est un petit monde clos, arc-bouté autour de la domination sans partage de deux acteurs : Microsoft IIS21(*) et Apache22(*). Selon l'enquête de Netcraft en septembre 2007, IIS possédait environ 34,94% des parts de marché. A pareille date, une autre enquête, réalisée par SecuritySpace, n'accordait quant à elle qu'un maigre 20,47% des parts au serveur IIS par rapport à 73.28% pour Apache. Il reste donc bien peu de place pour la concurrence. Cependant, du haut de ses 1,4 % du gâteau des serveurs, Zeus23(*) s'impose comme un outsider incontournable : quelques uns des plus gros Intranets et des plus gros sites Web ont opté pour lui. Un critère qui a conduit à le retenir dans notre comparatif.

1. Points forts et points faibles

Dans le tableau suivant, chacun de ces trois serveurs Web est passé au crible de quatre critères : coût, ergonomie, performances et efficacité du support.

Tableau 6.13 : Points forts et points faibles des serveurs web étudiés

Points forts et points faibles de chaque produit

Nom du produit

Apache

Microsoft IIS

Zeus

Points forts

- Gratuité
- Peu gourmand en ressources matérielles
- Excellente stabilité

- Grande simplicité d'installation et d'utilisation

- Peu gourmand en ressources matérielles
- Excellente stabilité
- Capacité à tenir de très gros pics de fréquentation
- Interface native avec certaines bases de données

Points faibles

- Installation et administration plus laborieuses (pas d'interface graphique)
- Pas de support technique

- Coût du support technique
- Très gourmand en ressources matérielles

- Coût de la licence (1700 €)
- Coût du support technique

2. Choix selon les besoins

L'utilisation de Microsoft IIS se justifie en effet toujours dans certains contextes, de même que celle de Zeus ou d'Apache. Les portraits brossés ci-après permettront de se faire une idée du profil de l'entreprise qui trouvera intérêt dans l'un ou l'autre de ces serveurs web :

a. Compétences faibles et exigences modestes: IIS

Le Serveur Web de Microsoft est très facile à installer et relativement facile à administrer. Il dispose d'une fonction de redémarrage automatique en cas de plantage. Et il est inclus par défaut dans l'OS serveur de Microsoft. Mais si l'on souhaite confier à IIS un gros site Web ou un gros Intranet, la facture hardware monte beaucoup plus vite que celle d'Apache ou Zeus, de même que la facture logicielle : la base de données Microsoft SQL devient rapidement indispensable, et l'on sait son tarif conséquent.
On réservera donc IIS aux entreprises qui disposent de compétences informatiques moyennes, et dont les exigences en termes de performances vont de modérées à moyennes.

b. Compétences fortes, tous types d'exigences: Apache

Le Serveur Web le plus populaire est fort complexe à paramétrer et à administrer : tout se passe sur un écran noir, en mode ligne de commande. Aucun support technique téléphonique n'est fourni puisqu'Apache n'a pas de distributeur officiel.

Il faut donc assurer soi même son support en naviguant sur les sites d'information consacrés à Apache, ou encore souscrire à un contrat de support auprès d'une société spécialisée. Cependant, Apache est gratuit, il consomme des ressources matérielles très modestes, et il est irréprochable en termes de fiabilité.

Apache est donc un très bon choix pour les entreprises qui disposent de compétences informatiques fortes  et plus spécifiquement sous Unix et Linux. Notons qu'il sera parfois intéressant d'acquérir ces compétences : les linuxiens chevronnés se font de moins en moins rares sur le marché, et Apache demande à charge égale beaucoup moins de ressources matérielles qu'IIS, ce qui rend son TCO (Cout Total de Possession) excellent pour les applications lourdes.

c. Compétences moyennes et exigences très fortes: Zeus

Zeus simplifie la tâche de l'administrateur. L'installation démarre en mode ligne de commande, mais elle est rapidement facilitée par des boites de dialogue judicieusement conçues.

L'administration se fait à distance à travers un navigateur Web : c'est un modèle d'ergonomie. Quant aux performances de Zeus, elles sont équivalentes à celles d'Apache, avec un avantage de taille : Zeus est capable de tenir le choc de plusieurs milliers de requêtes par seconde. Une assurance contre le plantage en cas de pic de fréquentation. Zeus est compatible en natif avec une foule d'API qui lui permet de s'interfacer sans effort avec un grand nombre de bases de données. Le seul défaut de Zeus : son prix (1700 € pour la licence sans compter le support)24(*). Zeus sera le meilleur choix pour les entreprises aux exigences très fortes aussi bien en nombre de connexions simultanées qu'en termes de disponibilité.

3. Autres informations pratiques

Le tableau qui suit donne des informations supplémentaires sur le prix et compatibilité de ces trois serveurs web.

Tableau 6.14 : Tableau donnant des informations sur le Prix et la compatibilité pour les serveurs web

Informations pratiques

Nom du produit

Apache

Microsoft IIS

Zeus

Prix

0 €

inclus dans Windows 2000 serveur, lequel vaut 1300 €

1900 €

Compatibilité

Linux, Windows 98 à XP, de nombreux Unix, MacOs X

Windows 2000 serveur

Linux, de nombreux Unix, MacOs X

4. Conclusion sur les serveurs web

Cette étude, nous a permis de mettre en mettre en évidence les trois serveurs web du marché les plus connus. En ce qui nous concerne, nous avons porté notre choix sur apache du fait non seulement de son statut libre et gratuit, mais aussi de sa vaste part de marché.

IV. Choix de la solution à implémentée

Après une étude comparative très rigoureuse, nous avons pu choisir les outils qui répondent mieux à nos besoins. Il s'agit du serveur cartographique MapServer avec PHP/MapScript, du célèbre serveur web apache, et du SGBDR PostgreSQL avec sa cartouche spatiale PostGIS.

L'architecture de cette solution est représentée par le schéma ci-dessous :

Figure 6.3: Architecture de la solution choisie

Après avoir effectué notre choix pour les outils dont nous avons besoin, nous allons passer dans le chapitre qui suit à la phase implémentation.

CHAPITRE

7

Implémentation de la solution

I. Environnement de Travail

Nous avons effectué la totalité de notre stage au sein du Laboratoire de Traitement de l'Information. Donc dans cette partie, nous allons décrire les outils matériels et logiciels que nous avons utilisés pour la réalisation de notre plateforme.

1. Environnement matériel

Le tableau suivant décrit l'ensemble de l'équipement matériel utilisé

Tableau 7.1 : Caractéristiques des équipements

Equipement matériel

Nom de l'équipement

Caractéristiques

Ordinateur PC

- Marque : HP Compaq

- Processeur : Intel Pentium 4

- Vitesse Processeur : 3.05 Go

- Mémoire Ram : 256 Mo

- Disque dur : 80 Go

- Ecran : 17 pouce

2. Environnement logiciel

Les tableaux suivant décrivent l'ensemble des outils logiciels et bibliothèques utilisés

Tableau 7.2: Les outils logiciels utilisés

Equipement logiciel

Nom du logiciel

Description

Système d'exploitation

Débian sarge noyau linux 4.0

MapServer avec MapScript

Serveur cartographique version 5

PHP

PHP version 5 pour le pilotage du serveur cartographique

Apache

Serveur Web version 2

PostgreSQL/PostGIS

Serveur de Bases de données + cartouche spatial

Respectivement version 8 et 1.3.2

PgAdmin3

Utilitaire de gestion du SGBD PostgreSQL

Quanta plus

Editeur de texte pour PHP

Tableau 7.3: Les librairies utilisées

Equipement logiciel

Nom de la librairie

Description

PROJ4

PROJ est un paquetage permettant de tirer profit des systèmes de projection spatial, notamment des reprojections entre divers systèmes (Lambert II étendu, Lambert III etc...)

GDAL

Ensemble qui permet la gestion des formats rasters

PDFLIB

Permet la génération de fichiers pdf a partir de php

GD

Ensemble de fonction permettant la génération d'une image

GEOS

Ce paquetage contient notamment une librairie qui permet d'ajouter des fonctionnalités supplémentaires à PostGIS notamment Within (), Intersects ()...

OGR

Ensemble qui permet la gestion des formats vecteurs

II. Architectures de la plateforme

Après une solide analyse et conception des besoins, nous avons réalisé l'architecture logicielle et physique ainsi que l'architecture applicative de notre système.

1. Architecture logiciel du système

Nous allons représenter ici l'architecture logicielle du système par un diagramme des composants.

Diagramme 7.1 : Diagramme de composants du système

2. Architecture physique du système

Nous allons maintenant représenter l'architecture physique des composants matériels qui supporte l'exécution du système. Cette représentation se fera à l'aide d'un diagramme de déploiement.

Diagramme 7.2 : Diagramme de déploiement du système

3. Architecture applicative de la plateforme

Le schéma de la page suivante représente l'architecture applicative de la plateforme.

Figure 7.1 : Architecture applicative de la plateforme

4. Sécurité de la plateforme

La sécurité informatique est l'ensemble des techniques qui assurent que les ressources du système d'information (matérielles ou logicielles) d'une organisation sont utilisées uniquement dans le cadre où il est prévu qu'elles le soient25(*).

Nous distinguons au moins quatre services de sécurité de base.

ü La confidentialité : C'est l'assurance que les données échangées ne seront

pas lues par un tiers qui n'en a pas le droit lors de leur transmission ou lorsqu'elles sont stockées.

ü L'intégrité : Elle garantit que les données n'ont pas été altérées ou

détruites durant leur transmission.

ü L'authentification : Elle est le processus de validation de l'identité de

l'émetteur et du récepteur. Elle est vue sous deux aspects notamment

§ L'authenticité et l'accessibilité : assurance de l'identité,

§ L'identification : signature, carte électronique, clé.

ü La non répudiation : Le but est que l'émetteur d'un message ne puisse pas

nier l'avoir envoyé si la sécurité de leurs clés n'a pas été compromise et le récepteur l'avoir reçu.

Dans notre plateforme, nous avons implémenté un service d'authentification par login et mot de passe. C'est un système d'authentification qui sécurise l'accès à l'interface protégé. Ainsi seuls les utilisateurs authentifiés sont habilités à mettre à jour des informations privées.

Une fois l'utilisateur est reconnu par le système son profil et les paramètres d'affichage sont chargés.

Cette démarche permet la protection et la sécurité du SIG, en interdisant ainsi la modification des données aux utilisateurs non autorisés.

III. Présentation de l'application

Dans cette partie, nous allons présenter ce que nous avons pu réaliser durant ces 5 mois de stage, sous forme de captures d'écran.

1. Zone privée

Nous présentons ici les écrans de la zone protégée.

Après authentification on affiche la fenêtre admin

Ecran paramétrages

Ecran qui permet l'importation des shapefiles

Ecran gestion des points

2. Interface publique

Les écrans qui suivent représentent celles de la zone publique. Il s'agit de l'affichage de cartes et de la navigation sur le portail.

Ecran de navigation sur le portail

Carte créée après ajout de la couche hydrographie

Carte créée après ajout de la couche foret

Affichage de la carte après Zoom sur la région de Diourbel

Affichage de la légende

Affichage des informations d'une zone après click sur celle-ci

CONCLUSION GENERALE

Les études que nous avons menées nous ont permis de mettre en place une plateforme de cartographie dynamique accessible à travers internet, conformément aux besoins des projets d'appui à la décentralisation au Sénégal.

Ces études nous ont aussi permis de choisir des outils informatiques Open Source. En effet, nous avons choisi le système d'exploitation linux notamment la distribution debian. Nous avons utilisé aussi MapServer, comme server cartographique, le langage de programmation php/MapScript pour l'affichage dynamique des pages web et des cartes, et apache comme server web. Comme server de base de données, nous avons porté notre choix sur PostgreSQL muni de sa cartouche spatiale PostGIS. Il faut noter que tous ces outils sont libres, gratuits et téléchargeable sur internet.

Nous avons pu produire une application web évolutive accessible via internet et qui peut offrir à ce stade presque les mêmes services que les logiciels SIG bureautiques qui eux ne sont pas accessibles via internet. L'application n'est pas encore à sa phase finale, mais elle reste ouverte à toute évolution sachant que tous les outils qu'elle utilise sont open source et donc son code source est utilisable et modifiable à volonté.

Comme prévu nous n'avons pas pu réaliser la gestion des formats rasters qui nous aurait permis d'afficher des cartes en images satellites. Nous avons aussi prévu pour la suite de faire en sorte que la plateforme puissent récupérer des données géographiques à partir d'un format de fichier XML bien définit.

Par ailleurs ces cinq mois passé au laboratoire de traitement de l'information, nous ont été d'un apport considérable. En effet c'est une expérience qui nous a permis de découvrir un domaine nouveau en l'occurrence les systèmes d'informations géographiques. Il faut surtout noter que c'est un domaine en pleine expansion qui est assigné à un bel avenir. C'est pour cela d'ailleurs que nous recommandons au responsable pédagogique du département d'intégrer, dans le programme des ingénieurs des modules de cours sur les SIG pour permettre aux étudiants d'acquérir certaines bases avant d'aller en stage.

En annexe, nous avons joins un extrait de notre code source et des classes des objets de bases de l'API Mapscript pour PHP ; nous avons également joins toutes les options de l'importateur shp2pgsql qui a permis l'importation des shapefile.

REFERENCES

· BIBLIOGRAPHIE

· (I) Sana Kanzari Mémoire DIC INFO 2007 (thème : Elaboration d'un site web de cartographie dynamique pour l'aide à la gestion de la région de Matam).

· (II) Mohamadou Mbengue Mémoire DIC INFO 2006 (thème : Mise en place d'une plateforme de conception de sondage, de test de connaissance et d'évaluation de stage pour le Ministère des finances et de l'industrie de la France) promotion 2006.

· Pascal Roques UML 2 par la pratique 5eme Edition (EYROLLES)

· Eric Daspet, Cyril Pierre de Geyer PHP 5 avancé 4eme Edition (EYROLLES)

· WEBOGRAPHIE

Pour voir l'ensemble des classes de l'API mapscript

· http://www.veremes.com/download/php-mapscript_class_diagram-4.6_int.pdf

Exemple d'utilisation de PHP/Mapscript

· www.davidgis.fr/documentation/win32/html/apl.html

· http://mapserver.gis.umn.edu/docs/howto/phpmapscript-byexample

Sites de téléchargement de fichiers Shape et TIF

· http://www.maplibrary.org/

· http://www.reefbase.org/

Documentation de référence de mapscript

· http://mapserver.gis.umn.edu/docs/reference/mapscript

Tutoriel d'installation de MapServer

· http://mapserver.gis.umn.edu/docs/howto/phpmapscript-install

Sites de références pour PHP

· http://www.php.net

· www.manuelphp.com

Site de référence Postgis

· www.postgis.org

Documentation sur l'ensemble PHP/mapscript/postgis

· http://www.davidgis.fr/documentation/win32/html/

Présentation de la méthode RAD

· http://merckel.org/article.php3?id_article=32

INDEX

A

analyse ..6, 7, 10, 13, 16, 20, 27, 28, 29, 31, 34, 35, 37, 38, 40, 41, 49, 50, 51, 78, 83

Apache 21, 70, 73, 74, 75, 77, 78

C

cartographie 15, 20

G

GéoServer 66

I

IIS. 21, 70, 73, 74, 75

M

mapfile 67, 68

MapScript 67, 68, 76, 77, 78

MapServer 67

méthode 28

MySQL 22, 60, 61, 62, 63, 64

O

OGC 9, 10, 61, 62, 63, 64, 66, 67

Oracle 60, 61, 62, 63, 64, 65, 70

P

PHP 9, 67, 68, 71, 76, 77, 78, 85

PostgreSQL 22, 60, 61, 62, 63, 64, 65, 70, 76, 77, 78

R

rasters 15, 66

S

servlet 21, 22

SGBD 9, 26, 60, 77, 78

SGBDR 7, 20, 22, 65, 76

shapefile 67, 70

SIG 23

U

UML 33, 37

UP. 9, 31, 32, 33, 34

V

vecteurs 15

vectoriel 15, 23, 70

W

Webmapping 15, 16, 20

Z

Zeus 73, 74, 75

ANNEXES

Annexe A: Extraits du diagramme de classes de l'API mapscript

Les classes reliées à l'objet map

Les classes reliées à l'objet « layer »

Les classes reliées à l'objet shape

Annexe B : Extrait du code source de notre application

Extrait 1 : Création et affichage de la carte

/*************************************************************************************)

(**** CopyRight ltisig Juin 2008 *************)

(**** Auteur: Issa BALDE stagiaire DIC3 G.Info *************)

(************************************************************************************)*/

// on crée l'objet map

$map = ms_newMapObj($map_path . $map_file);

$map->setSymbolSet($symb_path);// definition du fichier des symbole

$layer = ms_newLayerObj($map);

// Nom du layer

$layer->set( "name",$choix_couche);

// Affichage : oui par défaut

$layer->set("status",MS_DEFAULT);

// Type de connexion = PostGIS

$layer->set("connectiontype",MS_POSTGIS);

$layer->set("connection",

"user=".$user." dbname=".$db." host=".$hote);

$layer->set("labelitem",$label);// affichage des etiquettes ou labels

// Les METADATA

$layer->setMetaData("Description",$choix_couche);

$layer->setMetaData("Result_Fields","nom");

$layer->setMetaData("Layer",$choix_couche);

//On récupere les colones géometriques

$MS_GEOM = pg_query($conn,

"SELECT f_geometry_column,type FROM

geometry_columns WHERE f_table_name

LIKE '".$choix_couche."'"

);

$colonne_geometrique = pg_result( $MS_GEOM,0,0 );

$type_geometrique = pg_result( $MS_GEOM,0,1 );

// La requete spatiale

$layer->set( "data",$colonne_geometrique." from ".$choix_couche);

switch ($type_geometrique)

{

case "POINT":

$layer->set("type",MS_LAYER_POINT);

$layer->set("status",MS_ON);

// Ajout de la class

$class = ms_newClassObj($layer);

$class->set("name",$choix_couche);

// Ajout du Label

$label = $class->label;

$label->set("size",MS_SMALL);

$label->color->setRGB("22","8","3");

// Ajout du style

$style = ms_newStyleObj($class);

// Précision sur la taille de l'objet

$style->set("size",7);

$style->set("symbolname","circle");

if(isset($R)&&($R!='')){$style->color->setRGB($R,$G,$B);}else{$style->color->setRGB("255","0","0");}

break;

case "MULTIPOLYGON":

$layer->set("type",MS_LAYER_POLYGON);

$layer->set("status",MS_ON);

$class = ms_newClassObj($layer);

$class->set("name",$choix_couche);

// Ajout du Label

$label = $class->label;

// Précision sur l'affichage de la données de type attributaire

// la couleur, la taille de la donnée ...

$label->set("size",MS_TINY);

$label->set("position",MS_CC);

$label->backgroundcolor->setRGB("0","255","0");

$label->color->setRGB("0","0","0");

$label->outlinecolor->setRGB("255","255","255");

$style = ms_newStyleObj($class);

$style->set("size",5);

if(isset($R)&&($R!='')){

$style->color->setRGB($R,$G,$B);

}else{$style->color->setRGB("255","250","250");}

$style->outlinecolor->setRGB("0","0","0");

break;

case "POLYGON":

$layer->set("type",MS_LAYER_POLYGON);

$layer->set("status",MS_ON);

$class = ms_newClassObj($layer);

$class->set("name",$choix_couche);

// Ajout du Label

$label = $class->label;

// Précision sur l'affichage de la données de type attributaire

// la couleur, la taille de la donnée ...

$label->set("size",MS_TINY);

$label->set("position",MS_CC);

$label->backgroundcolor->setRGB("0","255","0");

$label->color->setRGB("255","0","0");

$label->outlinecolor->setRGB("255","255","255");

$style = ms_newStyleObj($class);

$style->set("size",5);

if(isset($R)&&($R!='')){$style->color->setRGB($R,$G,$B);}else{$style->color->setRGB("255","250","150");}

$style->outlinecolor->setRGB("80","80","255");

break;

default: $layer->set("type",MS_LAYER_LINE );

$layer->set("status",MS_ON);

$class = ms_newClassObj($layer);

$class->set("name",$choix_couche);

// Ajout du Label

$label = $class->label;

// Ajout du style

$style = ms_newStyleObj($class);

// Précision sur l'affichage des données géométriques

// couleur de bourdure en code 128 0 0 pour RGB

$style->set("size",10);

if(isset($R)&&($R!='')){$style->outlinecolor->setRGB($R,$G,$B);}else{$style->outlinecolor->setRGB("128","0","0");}

break;

}

/*-----------------------------------------------------------

------- calcul de l'Extent pour chaque couche ----------

-------------------------------------------------------------*/

$Requete_Extent = "select

xmin(extent(".$colonne_geometrique.")),

ymin(extent(".$colonne_geometrique.")),

xmax(extent(".$colonne_geometrique.")),

ymax(extent(".$colonne_geometrique.")) from ".$choix_couche;

$Resultat_Extent = pg_query( $conn, $Requete_Extent);

while ( $Row_Extent = pg_fetch_object( $Resultat_Extent ))

{

$Xmin[] = $Row_Extent->xmin;

$Ymin[] = $Row_Extent->ymin;

$Xmax[] = $Row_Extent->xmax;

$Ymax[] = $Row_Extent->ymax;

}

}// fin du while

/* --------------------------------------------------------------------------

--------- Calcul de l'Extent générale et des dimensions de l'image -----

---------------------------------------------------------------------------- */

$xmin= min($Xmin);

$ymin= min($Ymin);

$xmax= max($Xmax);

$ymax= max($Ymax);

$longueur_image = 600;

$longueur_extent = abs($xmax-$xmin);

$hauteur_extent = abs($ymax-$ymin);

$rapport_extent = $longueur_extent / $hauteur_extent;

$hauteur_image =$longueur_image / $rapport_extent;

$map->set("width", $longueur_image);

$map->set("height", $hauteur_image);

$map->backgroundcolor->setRGB("0","200","255");

/*------------------------------------------------------------------------------

------------------------------- ajout de la barre d'echelle -----------------

--------------------------------------------------------------------------------*/

$map->scalebar->set("style", 1);

$map->scalebar->set("units", MS_KILOMETERS);

$map->scalebar->set("intervals",4);

$map->scalebar->set("transparent", MS_ON);

$map->scalebar->set("status", MS_EMBED);

$map->scalebar->set("width", 400);

$map->scalebar->color->setRGB(0,0,0);

// echelle

$scaleBar = $map->drawScaleBar();

/*------------------------------------------------------------------------------

------------------------------- ajout de la legende -----------------

--------------------------------------------------------------------------------*/

$map->legend->set("status", MS_ON);

// legende

$legend = $map->drawLegend();

$url_legende=$legend->saveImage($img_path."legende_".session_id().".png");

/*----------------------------------------------------------------------------

------------ Construction de la carte de reference ---------------------------

-----------------------------------------------------------------------------*/

$map->reference->set("image",$img_path."miniMap.png");

$map->reference->set("width",150);

$map->reference->set("height",119);

$map->reference->set("status",MS_ON);

$map->reference->extent->setextent($xmin,$ymin,$xmax,$ymax);

$map->reference->color->setRGB(-1,-1,-1);

$map->reference->outlinecolor->setRGB(255,0,0);

$image_ref=$map->drawReferenceMap();

$url_ref=$image_ref->saveImage($img_path."miniMap.png");

/*-----------------------------------------------------------------

----------- Dessin et sauvaugarde de l'image généré ----

------------------------------------------------------------------*/

$image = $map->draw();

$image->saveImage($img_path.$image_name);

Extrait 2 : Affichage de la fenêtre d'informations

// Fonction javascript qui permet d'afficher une fenetre popup avec les parametres nom (nom des champs) val (valeurs des champs)

<script langage= `JavaScript'>

function info(nom,val){

var url="info.php?nom="+nom+"&&val="+val+"";

var prop="status=no,scrollbars=yes,toolbar=no,menubar=no,resizable=yes,location=no,width=200,height=80,top=235,left=690";

window.open(url,"info",prop);

</script>

$clkpoint->SetXY($_POST['img_x'], $_POST['img_y']);

$ProvExtents = explode(" ", $_POST['extent']);// On récupere le nouvel extent

$dfMinX = doubleval($ProvExtents[0]);

$dfMinY = doubleval($ProvExtents[1]);

$dfMaxX = doubleval($ProvExtents[2]);

$dfMaxY = doubleval($ProvExtents[3]);

// tester si on a clické sur l'outils infos

if($_SESSION['outils']==2)

{

// création d'un nouvel objet point

$oClickGeo = ms_newPointObj();

$width = $map->width;

$height = $map->height;

// récupération des coordonnées du click

$x_clik=intval($_POST['img_x']);

$y_clik=intval($_POST['img_y']);

// conversion des coordonnées pixel en coordonées géoréferencés avec notre fonction LtiSigPix2Geo()

$nClickGeoX = LtiSigPix2Geo($x_clik, 0, $width, $dfMinX, $dfMaxX, 0);

$nClickGeoY = LtiSigPix2Geo($y_clik, 0, $height,$dfMinY, $dfMaxY, 1);

$oClickGeo->setXY($nClickGeoX, $nClickGeoY);

@$layer->queryByPoint($oClickGeo, MS_MULTIPLE, -1); // exécution de la requete

// on récupere le nombre de couches actives (layer)

$numcouches = $map->numlayers;

$nResults=0;

for($i = 0; $i < $numcouches; $i++){

$layer=$map->getLayer($i);

$nLayerResults = $layer->getNumResults();

if ($nLayerResults == 0)

continue; // Pas de résultats

$layer->open();

$champs = explode(" ", $layer->getMetaData("RESULT_FIELDS"));// On récupère les attributs de la couche explorée

//qui correspondent aux attributs indiqués dans RESULT_FIELdS du fichier ltisig.map

for ($iRes=0; $iRes < $nLayerResults; $iRes++)

{

$oRes = $layer->getResult($iRes);

$oShape = $layer->getShape($oRes->tileindex,$oRes->shapeindex);

// selectionner tous les champs

$i=0;

while ( list($key,$val) = each($oShape->values) )

{

$champs[$i++] = $key;

}

// recupération des noms de colonnes

$nom_champ=array();

$val_champ=array();

for ($iField=0; $iField < count($champs); $iField++)

{

$nom_champ[$iField]=$champs[$iField];

}

// Récupération de la valeur des champs

for($iField=0; $iField < sizeof($champs); $iField++)

{

$val_champ[$iField]=$oShape->values[$champs[$iField]];

}

// On converti les tableaux en chaines de caracteres pour les envoyé sur la page info par popup

$_nom_champ=implode("|",$nom_champ);

$_val_champ=implode("|",$val_champ);

?>

<!-- Appel de la fenetre popup info avec du javascript -->

<script language="javascript">

info('<?php echo $_nom_champ;?>','<?php echo $_val_champ;?>');

</script>

<?php $oShape->free();

}

$layer->close();

}

}// fin test outils infos

/*---------------------------------------------------------------------------------------*/

/*---------- Code de la page info.php -----------------------------------*/

/*---------------------------------------------------------------------------------------*/

<body marginheight="1" leftmargin="1" rightmargin="1">

<?php

$nom=$_GET['nom'];

$val=$_GET['val'];

$_nom=explode("|",$nom);

$_val=explode("|",$val);

?>

<table align="center" cellspacing="0" border="1" class="tableinfo">

<tr class="ligne"><td colspan="2">Informations</td></tr>

<?php for($i=0;$i<count($_nom);$i++)

{?>

<tr align="center"><td><b><?php echo $_nom[$i];?></b></td><td><?php echo $_val[$i];?></td></tr>

<?php }?>

</table>

</body>

REMARQUE : Pour que ce type de requête QueryByPoint () fonctionne pour une couche donnée, il faut d'abor définir pour celle-ci un Template en ajoutant dans cette couche le mot clé Template. Par exemple $layer->set ("template","ttt_couche.html");

Cependant vous n'avez pas à créer ce fichier html.

Annexe C: Les options de l'utilitaire shp2pgsql (I)

Syntax: Sh2pgsql [options] [fich-shape] [nom-table] [BD] | psql [BD]

Les options

-d

Supprime la table de la base de données avant la création de la nouvelle table avec les données du fichier vecteur (Shape).

-a

Ajoute les données du fichier vecteur dans la table de la base de données. Notez qu'il faut utiliser cette option pour charger plusieurs fichiers, qui doivent contenir les mêmes attributs et les mêmes types de données.

-c

Crée une nouvelle table et la remplie avec le contenu du fichier vecteur (Shape). C'est le mode par défaut.

-p

Produit uniquement le code de création des tables, sans ajouter les données. Cela peut être utilisé lorsque vous avez besoin de séparer complètement les étapes de création de la table et de sont remplissage.

 

-D

Utilise le format d'export de PostgreSQL pour extraire les données. Cette option peut être combiné avec -a, -c et -d. C'est plus rapide pour charger des données que d'utiliser des requêtes au format SQL de type "INSERT". Utilisez ceci pour l'insertion d'une grande quantité de données.

 

-s <SRID>

Crée et remplie les tables géométriques avec le SRID spécifié.

 

-k

Respecte la syntaxe (casse : majuscules/minuscules) des identifiants (colonne, schéma et attributs). Notez que les attributs dans des fichiers vecteurs sont en majuscules.

 

-i

Conversion de tous les entiers en entiers 32 bits standards.

 

-I

Crée un index GiST sur la colonne géométrique.

 

-w

Retour au format WKT, utilisé avec les anciennes versions (0.X) de PostGIS. Notez que cela introduira des dérives de coordonnées et supprimera les valeurs M des fichiers vecteurs.

 

-W <encoding>

Spécifie l'encodage des données en entrée (du fichier dbf). Lorsque cette option est utilisée, tous les attributs du dbf sont convertis de l'encodage spécifié en UTF-8. La sortie SQL résultante contiendra une commande SET CLIENT_ENCODING to UTF8, donc le serveur principal sera capable de reconvertir de l'UTF-8 dans l'encodage choisi dans configuration de la base de données.

 

Les options de l'importateur shp2pgsql

* 1 Cartographie dynamique sur internet

* 2 Possibilité de libre redistribution, d'accès au code source, et de travaux dérivés

* 3 http://www.lti-ucad.sn

* 4 http://maps.google.com

* 5 http://www.esrifrance.fr/

* 6 Implémentation : Elle consiste à réaliser le programme conformément aux critères définis dans les phases d'analyse et de conception.

* 7 Framework : Infrastructure logicielle facilitant la conception et le développement d'applications.

* 8 REMORA : Méthode qui met l'accent sur les événements qui affectent l'état du système à travers l'exécution d'opérations, sur leur ordonnancement dans le temps, leur synchronisation et leurs dépendances causales.

* 9 http://www.mysql.com

* 10 http://www.oracle.com

* 11 http://www.postgresql.org

* 12 http://www.camptocamp.org

* 13 http://www.cnes.fr

* 14 http://mapemonde.mgm.fr

* 15 http://geoserver.org

* 16 http://www.geotools.org/

* 17 http://mapserver.gis.umn.edu/

* 18 Un programme CGI est exécuté côté serveur. Il permet l'échange de données entre le serveur et le navigateur. Quand il reçoit une requête du poste client, le CGI détermine (en fonction de l'extension) l'action à effectuer

* 19 Il s'agit ici de l'ensemble des commandes permettant d'accéder aux fonctionnalités du noyau MapServer

* 20 Un fichier d'extension .map

* 21 http://www.microsoft.com/france

* 22 http://www.apache.org

* 23 http://www.zeus.com/products/zws

* 24 Site officiel de Zeus http://www.zeus.com/products/zws

* 25 http://www.dicodunet.com






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Ceux qui rêvent de jour ont conscience de bien des choses qui échappent à ceux qui rêvent de nuit"   Edgar Allan Poe