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

 > 

Prototype d'un système de webmapping interactif avec les jsp et les servlets

( Télécharger le fichier original )
par Aurince AKAKPO
Université d'Abomey-Calavi ( Bénin) - Master en réseau et systèmes d'information 2011
  

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

Table des matières

Table des matières 3

Dédicace 4

Remerciements 5

Résumé 6

Abstract 7

Liste des Tableaux 8

Liste des Figures 9

Introduction générale 10

1 Les technologies et les outils existants pour la mise en oeuvre du Webmapping 13

1.1 Les technologies Web utilisées pour le Webmapping 13

1.1.1 Les langages de script Web 13

1.1.2 Serveurs d'application et serveurs Web 16

1.2 Les Systèmes de Gestion de Bases de données spatiales (SGBDS) 19

1.2.1 La norme Open Geospatial Consortium 20

1.2.2 La géométrie 20

1.2.3 Les index spatiaux 22

1.2.4 Les prédicats spatiaux 22

1.2.5 Les fonctions spatiales 24

1.2.6 Système de référence spatiale 25

1.3 Les logiciels SIG libres mettant en oeuvre le Webmapping 26

1.3.1 Les logiciels SIG propriétaires 26

1.3.2 Les logiciels SIG libres 27

1.4 Choix et proposition de solution 30

TABLE DES MATIÈRES

2

2

Modélisation et conception de la solution

33

 

2.1

Spécification des besoins et méthodologie adoptée

33

 
 

2.1.1 Spécification des besoins

33

 
 

2.1.2 Méthodologie adoptée

34

 

2.2

Analyse fonctionnelle

35

 
 

2.2.1 Identification des acteurs

35

 
 

2.2.2 Identification des cas d'utilisation

36

 
 

2.2.3 Les diagrammes de cas d'utilisation

36

 
 

2.2.4 Description textuelle des cas d'utilisation

40

 

2.3

Analyse dynamique

45

 
 

2.3.1 Les diagrammes de séquence système

45

 

2.4

Analyse statique

49

 
 

2.4.1 Diagramme de classes

49

 
 

2.4.2 Diagramme de paquetage

51

 

2.5

Conception

52

 
 

2.5.1 Le modèle relationnel

52

 
 

2.5.2 Diagrammes d'états de navigation

53

3

Déploiement et mise en oeuvre d'un prototype du SYGeD

56

 

3.1

Déploiement du Système

56

 
 

3.1.1 Architecture physique du système

56

 
 

3.1.2 Politique de sécurité adoptée

58

 
 

3.1.3 Matériels requis

58

 
 

3.1.4 Outils logiciels requis

59

 

3.2

Réalisation de la base de données

59

 
 

3.2.1 Structuration des tables géométriques

59

 
 

3.2.2 Acquisition des données

61

 

3.3

Configuration du serveur géographique

63

 
 

3.3.1 Définition d'une couche cartographique

64

 
 

3.3.2 Définition de style pour les couches cartographiques

65

 

3.4

Présentation du prototype

68

3.4.1 La page d'accueil 68

3.4.2 Visualisation de domaines 69

3.4.3 Demande de domaine ou de boutique 70

3.4.4 Authentification et accès à la page personnelle 72

3.4.5 Génération d'arrêté d'autorisation 73

3.5 Limites du prototype 75

Conclusion générale et Perspectives 77

Bibliographie 78

Dédicace

A

- Mon père Clément M. et ma mère Agnès;

- Ma femme Clémentine et mon enfant Précieux.

Remerciements

Je témoigne ma gratitude à tous ceux qui de près ou de loin, matériellement ou moralement m'ont permis de poursuivre et de mener à terme mes études d'ingénierie informatique à l'Institut de Mathématiques et de Sciences Physiques (IMSP) de l'Université d'Abomey-Calavi (UAC).

Merci tout spécialement à mon maître de mémoire M. Eugène C. EZIN pour sa disponibilité et son souci du travail bien fait.

Merci à mes grands frères Barthélémy AKAKPO et Alexis AKAKPO pour les différents conseils et motivations.

Mes remerciements s'adressent également à l'ensemble du corps enseignant de la filière Génie Informatique et Sciences Appliquées (IGISA) de l'IMSP.

Je dois reconnaissance à tous ceux qui, par leurs travaux, idées, présentations, collaborations ou relectures, ont participé à la réalisation de ce mémoire, en particulier : Hervé M. AKAKPO, DANSOU Z. Alphonse, KOUNNOU M. Frédy et j'en oublie.

Une mention particulière à mon épouse Clémentine, mon enfant Précieux Manassé Nonvignon, mon frère Raoul et ma soeur Jocelyne qui m'ont supporté pendant tous ces temps d'études.

Merci à tous.

Résumé

La cartographie sur Internet ou webmapping est un domaine en plein essor et de nombreuses disciplines scientifiques y ont maintenant recours pour présenter des travaux cartographiques.

Les technologies disponibles actuellement se distinguent très nettement par leur complexité, leur coût et leur ouverture. Au sein de ces multiples approches, nous avons pris le parti de mettre en place un système simple, qui repose sur des outils libres et open sources utilisant la technologie Java.

Ce travail comprend trois volets à savoir la réalisation d'une base de données géographique avec postgresql/PostGIS, le déploiement d'un serveur géographique (GeoServer) et le développement d'une application Web qui interagit avec ceux-ci. La base de données contiendra les données spatiales et attributaires. Le serveur géographique se servira de ces données pour produire des couches cartographiques selon les requêtes de l'application Web. L'application Web est basée sur les JSP et les Servlets pour gérer le côté dynamique du système. Elle a pour principale fonction de rediriger les requêtes du client au serveur géographique afin de récupérer des images cartographiques pour le client.

L'utilisateur final se servira d'un simple navigateur pour explorer les domaines, faire des demandes d'autorisation pour l'occupation d'un domaine, formuler des plaintes sur l'état de son domaine et générer par exemple des arrêtésd'autorisation selon son profil.

Abstract

Mapping on the Internet or webmapping is a growing field and many scientific fields have now resorted to present cartographic work.

Currently available technologies differ markedly in their complexity, cost and openness. Within these multiple approaches, we took the party to up a simple system based on free tools and using open source technology Java.

This work has three components namely the implementation of a geographic database with PostgreSQL / PostGIS, the deployment of a geographic server (GeoServer) and the design of a web application that interacts with them. The database will contain spatial and attribute data. The geographic server will use these spatial data to produce map layers according to the requirements of the Web application. The Web application is based on the JSP and Servlets to manage the dynamic side of the system. Its main function is to redirect client requests to the geographic server in order to retrieve map images to the client.

The end user will use a browser to explore areas, apply Authorization for the occupation of an area, making complaints about the state of his area and generate such decrees authorization according to his profile.

Liste des tableaux

1.1

Comparaison des SGBD spatiaux : la géométrie

21

1.2

Comparaison des SGBD spatiaux : les index spatiaux

22

1.3

Comparaison des SGBD spatiaux : les prédicats spatiaux

24

1.4

Comparaison des SGBD spatiaux : les fonctions spatiales

25

1.5

Comparaison des SGBD spatiaux : Le Système de référence spatiale

26

1.6

Comparaison des logiciels SIG généralistes

28

1.7

Comparaison des logiciels SIG client/serveur

30

2.1

Les cas d'utilisation du système

36

2.2

Classification des classes par paquetage

51

Table des figures

1.1 Architecture technique du système 31

2.1 Diagramme de cas d'utilisation : Citoyen 37

2.2 Diagramme de cas d'utilisation : Personnel administratif 38

2.3 Diagramme de cas d'utilisation : Administrateur 39

2.4 Diagramme de séquence système : Authentification 45

2.5 Diagramme de séquence : Visualisation de domaine 46

2.6 Diagramme de séquence : Demande de domaine 47

2.7 Diagramme de séquence : Génération d'arrêté d'autorisation 48

2.8 Diagramme de classes du système 50

2.9 Diagramme de paquetage du système 51

2.10 Diagramme d'états de navigation du citoyen 54

2.11 Diagramme d'états de navigation du Maire 55

3.1 Diagramme de déploiement du SYGeD 57

3.2 Configuration de GeoServer pour PostgreSQL/PostGIS 64

3.3 Définition d'une couche avec une requête. 65

3.4 Page d'accueil de la plateforme de gestion des domaines 69

3.5 Page de visualisation des domaines 70

3.6 Page d'affichage des domaines et boutiques libres 71

3.7 Formulaire de demande d'un domaine 72

3.8 Authentification et accès à la page personnelle du Maire 73

3.9 page d'affichage des demandes en cours 74

3.10 page de génération des arrêtésd'autorisation 75

Introduction générale

La cartographie est née du besoin de l'homme à avoir sous forme symbolique et graphique les informations géolocalisées. Elle est la première étape de la création des systèmes d'information géographiques qui de nos jours ont connu une grande expansion notamment dans les domaines de la santé, de la climatologie, de la topographie, de la démographie etc [1] . La vulgarisation des moyens de communication modernes tels que Internet a très vite servi de support à la diffusion cartographique. De plus l'élaboration d'une normalisation par l'OGC 1 a permis le développement d'applications dans le domaine du Webmapping2 et dont la plupart se limitent seulement à l'affichage et à la diffusion d'informations spatiales de façon statique.

Au Bénin, le suivi de l'allocation des domaines publics est une véritable gageure surtout dans le cadre de la décentralisation. Ce suivi implique la délimitation et la géolocalisation du domaine, son affectation à un contribuable et sa restitution dans les conditions prévues. Actuellement, au Bénin, aucune commune ne dispose d'outils informatiques modernes pour le suivi des domaines tel que définis plus haut. Au plan national, seule une base de données géographique est disponible mais elle est très peu exploitée pour des fins économiques.

A travers ce mémoire, nous nous sommes proposé de mettre en oeuvre un système de Webmapping interactif et dynamique avec les technologies JSP et Servlet. Il s'agit d'un système qui ne se limitera pas seulement à l'affichage des domaines dans leur ensemble. L'affichage dépendra aussi des critères définis par l'utilisateur lui même (les domaines occupés ou non, les domaines situés au bord d'une voie donnée, les domaines sur lesquels est pratiquée une activité donnée, etc.). Pour cela ce système sera doté d'une base de données géographiques régulièrement mise à jour. Enfin

1. OGC : Open Géospatial Consortium est un consortium international de normalisation qui a élaboré une

solution conceptuelle publique pour toute application qui gère les données spatiales.

2. Webmapping : Encore appelé SIG (Système d'Information Géographique) Web, il désigne à la fois le processus

de distribution de cartes via un réseau tel que l'Internet, l'intranet ou l'extranet et leur visualisation dans un navigateur

le système aidera également les administratifs dans la prise de décision à travers la production automatique des arrêtés d'autorisation.

Pour y parvenir, il est nécessaire, d'une part, d'approfondir nos connaissances sur le concept du Webmapping au plan technique, et d'autre part de recueillir les besoins pour lesquels nous proposerons une solution qui sera modélisée et implémentée suivant les choix techniques effectués.

I. Problématique

Depuis le 15 janvier 1999, le Bénin a opté pour le régime de la décentralisation. Les départements sont alors subdivisés en collectivités territoriales administrées par des Maires. Le Maire avec ses conseillers disposent d'un large pouvoir autonome et de compétences propres pour gérer les ressources humaines, financières et matérielles de leur commune. Au coeur de cette gestion se trouve celle des espaces publics qui constitue souvent une source de mésentente entre l'administration et les administrés. Les causes de ces conflits sont de diverses origines à savoir :

- le manque de délimitation et d'identification géographique des domaines : les contribuables sont souvent tentés d'exploiter plus d'espace que prévu. Dans ce cas, l'administration éprouve des difficultés à gérer les conflits de proximité;

- le défaut de répertoire fiable associant à chaque domaine l'occupant d'une période donnée : le contrôle de la restitution des domaines reste manuel entrainant ainsi le non respect du délai d'occupation;

- le retard dans la délivrance des permis d'occupation qui souvent ne font pas mention des références géographiques du domaine en question;

L'essor des systèmes d'informations géographiques, de l'Internet et des technologies Web a permis l'apparition du Webmapping dans les années 90. Cette technique de diffusion de carte sur Internet continue de faire ses preuves surtout dans l'exploration spatiale. A travers ce mémoire, cette technique sera utilisée pour proposer une solution dans le but d'aider les administrés et l'administration dans la gestion quotidienne des domaines publics.

II. Objectifs

Dans le contexte de notre étude, il s'agit d'adapter la technologie Webmapping à nos réalités pour assister les administrations communales dans la gestion de l'allocation des domaines. Autrement dit, l'affichage des cartes sera interactif et dynamique pour permettre d'une part aux contribuables de demander en ligne un domaine répondant à des critères et d'autre part aux dirigeants de suivre l'évolution de l'occupation des domaines et leur restitution. Pour trouver une réponse à ces préoccupations, nous nous sommes fixé quelques objectifs à atteindre dans notre étude.

L'objectif principal de ce mémoire est de proposer un prototype d'un système de Webmapping pour la gestion de l'allocation des domaines publics, doté des mécanismes d'aide à la production des arrêtés d'autorisation. Les objectifs spécifiques sont :

- concevoir un système de Webmapping doté d'une base de données géographiques devant apporter une meilleure lisibilité et rendre possible la gestion des conflits de proximité grâce à la visualisation de la cartographie des domaines;

- permettre une meilleure coordination des équipes chargées d'instruire des domaines et de contrôler les conditions de restitution de l'espace public;

- incorporer à ce nouveau système un module de production rapide des documents d'autori-

sation pour limiter au maximum la saisie d'informations, source d'éventuelles erreurs.

III. Organisation du contenu du mémoire

Le contenu de ce mémoire est structuré autour de trois chapitres qui constitueront les étapes suivies pour le développement du système.

Le premier chapitre présentera les technologies et les outils existants pour la mise en oeuvre du Webmapping. Cette exploration technique permettra d'effectuer des choix et de proposer une solution au problème posé. Le deuxième chapitre abordera la modélisation et la conception de cette solution. Enfin, le troisième chapitre traitera de la mise en oeuvre du prototype pour la gestion de l'allocation des domaines d'un marché public. Les différentes simulations permettront de souligner les limites de la solution et les perspectives qui y découlent.

Chapitre Premier

LEs TEcHNoLoGiEs ET LEs ouTiLs

EXisTANTs pouR LA MisE EN (EuvRE Du

Webmapping

Introduction

Plusieurs outils logiciels sont disponibles pour la mise en oeuvre d'une application Web et pour le déploiement d'une base de données géographiques. Ces outils libres ou non seront brièvement présentés avec leurs avantages. Nos investigations porteront surtout sur ceux qui utilisent la technologie java.

Le présent chapitre abordera dans une première partie les technologies Web utilisées pour le Webmapping, puis une seconde partie, se consacrera aux Systèmes de Gestion de Base de Données (SGBD) permettant le déploiement d'une base de données géographiques. Dans une troisième partie, il sera répertorié les logiciels libres mettant en oeuvre le Webmapping. Enfin, des choix seront faits dans le but de proposer une solution au problème posé.

1.1 Les technologies Web utilisées pour le Webmapping

1.1.1 Les langages de script Web

Les scripts de programmation Web servent à écrire des pages Web dynamiques et permettent l'extension de leurs fonctions par l'accès aux bases de données, les transactions d'e-commerce, le Webmapping, etc. Les Langages de scripts offrent des balises spécifiques permettant l'intégration

de ces différentes technologies dans des pages Web en HTML (HyperText Markup Language). Parmi les langages de script qui existent on peut citer : PHP, ASP, Servlets, JSP, JavaScript, CGI (Common Gateway Interface), CSS (Cascading Style Sheet), VBSript, WAP (Wireless Application Protocol), etc. Il nous paraît opportun de présenter quelques uns.

1.1.1.1 Hypertext Preprocessor

Le langage PHP (Hypertext Preprocessor) fut créé en 1994 par Rasmus Lerdorf. PHP est un langage de script libre principalement utilisé pour produire des pages Web dynamiques via un serveur http. Depuis la version 5, PHP dispose des fonctionnalités de modèle objet complètes. Il présente entre autres les atouts suivants :

- il est multiplateforme;

- la gratuité et la disponibilité du code source sous la licence GPL (General Public License); - la simplicité d'interfaçage avec les bases de données;

- l'intégration au sein de nombreux serveurs Web;

- sa forte popularité;

PHP est un langage interprété. Ce qui est au détriment de la vitesse d'exécution du code. Aussi, les programmes PHP rencontrent-t-ils des problèmes de portabilité. Mais notons qu'il existe également des projets pour compiler du code PHP. Par exemple Quercus convertit un code PHP en bytecode Java exécutable sur une machine virtuelle Java et HiPHop for PHP transforme du PHP en C++ [2].

1.1.1.2 Active Server Pages

Active Server Pages (ASP) est un stantard mis au point par Microsoft en 1996 et qui permet le développement des pages Web interactives. ASP est une structure composée d'objets accessibles par deux principaux langages : le VBScript et le JScript. Il s'agit en réalité d'une technologie, ou plus exactement d'un environnement de développement, permettant de représenter sous forme d'objets les interactions entre le navigateur du client, le serveur Web, ainsi que les connexions à des bases de données grâce aux composants ActiveX. L'ASP est exécuté côté serveur et peut lire et écrire des documents issus d'office (Excel, Word, etc.). C'est un langage interprété comme le PHP. L' ASP.NET vient améliorer les performances de l'ASP surtout en terme de rapidité puisqu'il propose une exécution compilée. L'inconvénient majeur de ces technologies est qu'elles nécessitent

pour leur fonctionnement une plateforme Windows avec IIS (Internet Information Server) installé, ou encore une plateforme Linux ou Unix avec une version modifiée d'Apache [3].

1.1.1.3 Les servlets

Une servlet est un programme qui s'exécute côté serveur et permet l'extension des fonctions de ce dernier. Elle reçoit une requête du client, effectue des traitements et renvoie le résultat. La liaison entre la servlet et le client peut être directe ou passer par un intermédiaire comme par exemple un serveur http. Même si pour le moment, la principale utilisation des servlets est la génération de pages XHTML (eXtensible HTML) dynamiques utilisant le protocole http, n'importe quel protocole reposant sur le principe de requête/réponse peut en faire usage [9].

Ecrite en java, une servlet en retire ses avantages : la portabilité, l'accès à toutes les API de java dont JDBC pour l'accès aux bases de données, etc. Une servlet peut être invoquée plusieurs fois en même temps pour répondre à plusieurs requêtes simultanées. Une fois instanciée, elle reste en mémoire. Ce qui permet de garder des ressources système et gagner le temps d'initialisation. Les servlets sont indépendantes par rapport au serveur Web et peuvent être démarrées automatiquement lors du lancement du serveur.

Dans une architecture client/serveur trois tiers, la servlet se positionne dans le tiers du milieu entre le client léger chargé de l'affichage et la source de données. Les servlets sont limitées en matière d'interface graphique car elles s'exécutent côté serveur et une petite modification dans le code XHTML nécessite la recompilation de la servlet.

Pour développer et exécuter une servlet il faut le Java Servlet Development Kit (JSDK) qui est un package contenant l'ensemble des classes et des interfaces nécessaires. Le JSDK est incorporé dans des conteneurs Web ou serveurs d'application dont Apache Tomcat, Jetty, JBoss ou encore GlassFish. Le choix d'un serveur d'application doit tenir compte de la version du JSDK qu'il supporte pour être compatible avec celui utilisé pour le développement des servlets.

1.1.1.4 Java Server Pages

Les JSP (Java Server Pages) sont une technologie Java qui permettent la génération de pages Web dynamiques. La technologie JSP permet de séparer la présentation sous forme de code XHTML et les traitements sous forme de classes Java. Les JSP permettent d'introduire du code Java dans des balises prédéfinies à l'intérieur d'une page XHTML. Ils mélangent la puissance de

Java côté serveur et la facilité de mise en page de XHTML côté client. Une JSP est habituellement constituée :

- de données et de balises XHTML;

- de balises JSP;

- de scriptlets (code Java intégré à la JSP).

Les JSP possèdent plusieurs avantages dont :

- l'utilisation de Java qui permet une indépendance de la plate-forme d'exécution mais aussi du serveur Web utilisé;

- la séparation des traitements de la présentation : la page Web peut être écrite par un designer et les balises JSP peuvent être ajoutées ensuite par le développeur. Les traitements peuvent être réalisés par des composants réutilisables (des Java beans, servlets);

- les JSP sont basées sur les servlets : tout ce qui est fait par une servlet pour la génération de pages dynamiques peut être fait avec une JSP.

Concrètement, au premier appel de la page JSP, le moteur de JSP génère et compile automatiquement une servlet qui permet la génération de la page Web. Le code XHTML est repris intégralement dans la servlet.

Dans le fonctionnement d'une application Web basée sur la technologie JSP, lorsqu'une requête demandant une page JSP est envoyée par un client http, le serveur Web http transmet la requête au moteur de JSP qui va l'interpréter puis compiler le code et générer la réponse sous forme d'une page XHTML statique. Donc pour exécuter une page JSP, il faut, en plus d'un serveur http comme Apache, un moteur de JSP comme Tomcat, Jetty ou GlassFish. Sur le serveur d'application il faut installer un Java Development Kit (JDK) qui contient une Machine Virtuelle Java (MVJ).

1.1.2 Serveurs d'application et serveurs Web

Le serveur d'application et le serveur Web sont des logiciels nécessaires au niveau du serveur pour faire tourner une application Web. Les deux jouent des rôles différents mais se complètent. En effet, le serveur Web se charge uniquement du traitement des requêtes http et s'il constate que la requête reçue contient des codes destinés au serveur d'application, il la lui transmet. Il revient au serveur d'application de traiter le code pour envoyer la réponse via le connecteur.

Le serveur d'application et le serveur Web ne sont pas nécessairement séparés. Par exemple les

conteneurs d'application utilisant la technologie Java comme Tomcat, JBoss, Jetty ou Glassfish incluent un serveur Web généralement Apache. Ceci permet d'installer un serveur Web complet en utilisant moins de ressources. Cependant on peut séparer ces deux serveurs pour des raisons de productivité et de performance.

Dans cette section il sera présenté les conteneurs d'applications utilisant la technologie Java afin de choisir celui qui est approprié à notre application Web basée sur les JSP et les Servlets.

1.1.2.1 Serveur d'application Tomcat

Apache Tomcat, un projet de la fondation Apache, est un conteneur d'applications libre écrit en Java qui implémente les spécifications des servlets et des JSP de Sun Microsystems. Il inclut par défaut le serveur Web Apache et peut être utilisé en autonomie avec ce serveur Web, ou en collaboration avec d'autres comme IIS (Internet Information Server) par exemple [4]. Tomcat est libre et distribué sous une licence Apache.

Tomcat est un ensemble de plusieurs composantes ayant chacun un rôle. Il s'agit par exemple

de :

- catalina : un conteneur servlet qui implémente les spécifications de Sun pour les servlets et les JSP;

- coyote : un connecteur http qui écoute le trafic entrant, dirige les requêtes au moteur de Tomcat et renvoie la réponse au client;

- jasper : un moteur JSP qui compile les fichiers JSP en tant que servlets et est capable de détecter les modifications des fichiers et de les recompiler à la volée.

Tomcat offre quelques avantages :

- il est simple à administrer, beaucoup plus que les serveurs d'application Open Source complets;

il n'occupe que deux ports sur la machine (8080 : port propre de Tomcat et 8009 : port de communication entre Apache et Tomcat via le protocole AJP13 1 ).

La version actuelle Tomcat 7.0.25 (sortie en janvier 2012) implémente les spécifications Servlet 3.0, JSP 2.2 et EL (Expression Language) 2.2, support java 6, améliore la détection et la prévention des fuites de mémoire.

1. AJP13 : Apache JServ Protocol v1.3

1.1.2.2 Serveur d'application Jetty

Jetty est un serveur http et un moteur de Servlets entièrement écrit en Java [4]. En raison de sa petite taille, il convient parfaitement pour fournir des services Web une fois embarqué dans une application Java. La première version date de 1995. Jetty peut être utilisé en autonomie, comme serveur Web traditionnel, ou peut être intégré dans un serveur d'application Java.

Jetty est un logiciel libre. Depuis 2009, le développement du noyau est hébergé par la fondation Eclipse. Il offre plusieurs avantages à savoir :

- il est complet et est basé sur des normes;

- il est flexible et extensible;

- il est distribué sous double licence : Apache et Eclipse;

- il utilise moins de ressources et est moins encombrant.

1.1.2.3 Serveur d'application JBoss

Créé en 1999, JBoss est un serveur d'applications J2EE2 initié par un groupe de développeurs de la société JBoss Inc., entièrement écrit en Java, libre et distribué sous la licence LGPL (Licence Publique Générale Limitée GNU). Il est maintenu par le groupe JBoss gratuitement, mais tous les services consultants sont facturés [4].

JBoss fournit toute sorte de services standardisés : conteneur d'EJB (Enterprise Java Bean), gestion de mail, gestion de transactions, gestion de la sécurité, gestion du déploiement etc.

1.1.2.4 Serveur d'application JRun

JRun est un serveur d'application de Macromedia, basé sur Microsystem J2EE. JRun consiste en Java Server Page (JSP), Servlets Java, Enterprise JavaBeans (EJB), de Java Transaction Service (JST), et de Java Message Service (JMS). Il fonctionne avec la plupart des serveurs Web, comme Apache, IIS, et de manière générale, tout serveur Web supportant Internet Server Application Program Interface (ISAPI) ou les Common Gateway Interface (CGI) [4]. Il est réputé être le plus rapide du marché et existe en 4 versions : Développeur, Professionnelle, Avancée et Entreprise donnant chacune des prestations différentes :

2. J2EE : Java 2 Platform Enterprise Edition conçu par Sun Microsystems pour simplifier le développement d'application en environnement client léger.

- développeur : toute option, mais uniquement pour le développement, et limitée à 3 connexions simultanées;

- avancée : prévue pour le déploiement de JSP et de Servlets, en cluster;

- professionnelle : pour les entreprises hébergeant des Servlets et des applications à base de JSP, sur un seul serveur;

- entreprise : pour les entreprises créant et déployant des applications Java de e-commerce.

1.1.2.5 Serveur d'application GlassFish

Né en juin 2005, Sun Glassfish Enterprise Server est le premier serveur Open source ayant implémenté totalement la norme JEE 5. Il permet aux entreprises de créer et de déployer des applications Web à l'aide du profil Web Java EE léger et de faciliter l'exploitation de la puissance de la plateforme Java EE. La version 3.0 est sortie le 10 décembre 2009 en même temps que Java EE 6. Au niveau des standards, Glassfish recouvre JSP 2.1, Servlet 2.5 pour faire de l'injection de dépendance dans le conteneur Web. Avec la version 3, c'est un support complet de Java EE 6 qui est proposé avec la prise en compte de Servlet 3.0 . Il est léger, rapide, modulaire avec un interface administrateur simple. La distribution est placée sous double licence CDDL (Common Developpement and Distribution License) et GPLv2. Par défaut Glassfish intègre certains API comme JavaMail et JAAS3 .

L'administration de GlassFish peut se faire en interface graphique sur le port 4848 par défaut ou en ligne de commande nommée asadmin.

1.2 Les Systèmes de Gestion de Bases de données spatiales (SGBDS)

Les SGBDS sont des moteurs de gestion de bases de données qui intègrent des composantes spatiales et qui offrent la capacité de stocker et de gérer les données spatiales. Au cours de cette section, les plus connus sur le marché à savoir : Oracle avec sa cartouche spatiale Oracle Spatial, PostgreSQL avec sa cartouche spatiale PostGIS et MySQL avec sa cartouche MyGIS seront présentés et comparés. La norme OGC sera notre référence par rapport à la géométrie et les fonctions

3. JAAS : Java Authentification and Authorization Service est un framework de sécurité de Java.

spatiales implémentées par ces trois SGBDS.

1.2.1 La norme Open Geospatial Consortium

En 1997, l'OGC publie "l'OpenGIS Simple Features Specifications For SQL", un document qui propose plusieurs voix conceptuelles afin qu'un Système de Gestion de Bases de Données SQL supporte les données spatiales. Le but de cette spécification est de définir un schéma standard SQL qui permet le stockage, la récupération, l'interrogation et la mise à jour de données spatiales simples à travers un SGBD. Les données spatiales simples sont stockées, normalement, dans des colonnes géométriques dans un SGBD Relationnel. Les données non spatiales sont inscrites dans des colonnes dont les types de données ont été définis par le standard SQL92. Les données spatiales, quant à elles, sont inscrites dans des colonnes dont les types de données SQL sont basés sur le concept fondamental de données géométriques additionnelles pour le langage SQL. On distingue alors deux types d'environnement, l'environnement SQL92 et l'environnement SQL92 avec types de données géométriques. L'OpenGis Abstract Spécification spécifie les types géométriques utilisés par les SGBDS.

Les trois SGBDS cités plus haut (à savoir PostgreSQL/PostGIS, MySQL/MyGIS, Oracle/Oracle Spatial) seront examinés sur les points tels que les objets géométriques, les index spatiaux, les prédicats spatiaux, les fonctions spatiales et les systèmes de référence spatiale supportés.

1.2.2 La géométrie

Les trois SGBD Spatiaux utilisent le mode vecteur pour représenter les objets géographiques suivant le modèle spaghetti4 . Ils implémentent tous le modèle objet défini par l'OGC. Seul ORACLE permet le stockage d'arc de cercle comme parties d'une géométrie, mais il ne respecte pas les règles de nommage [5]. Le Tableau 1.1 récapitule les modes de représentation et les types géométriques utilisés par les trois SGBD spatiaux pour représenter les objets.

4. Modèle spaghetti : est un modèle de représentation des données spatiales où la géométrie d'un objet est décrite indépendamment de celle des autres.

Table 1.1 - Comparaison des SGBD spatiaux : la géométrie

 

MySQL/MyGIS

PostgreSQL/ Post- Gis

Oracle/Oracle Spatial

Modes de re-

Mode vecteur suivant

Mode vecteur suivant

Mode vecteur suivant

présentation

le modèle spaghetti.

le modèle spaghetti.

le modèle spaghetti.

Types géomé-

- GEOMETRY

- GEOMETRY

- GEOMETRY

triques implé-

- POINT

- POINT

- POINT

mentés

- LINESTRING

- LINESTRING

- LINESTRING

 

- POLYGON

- POLYGON

- POLYGON

 

- GEOMCOLLE-

- GEOMCOLLE-

- GEOMCOLLE-

 

CTION

CTION

CTION

 

- MULTIPOINT

- MULTIPOINT

- MULTIPOINT

 

- MULTILINE-

- MULTILINE-

- MULTILINE-

 

STRING

STRING

STRING

 

- MULTIPOLYGON

- MULTIPOLYGON

- MULTIPOLYGON

 
 
 

- ARCLINESTRING

 
 
 

- COMPOUNDLIN-

 
 
 

ESTRING

 
 
 

- COMPOUNDPOL-

 
 
 

YGON

 
 
 

- CIRCLES

 
 
 

- RECTANGLES

1.2.3 Les index spatiaux

Les index sont au centre des SGBD car ils permettent d'augmenter la performance lors des requêtes en définissant des classements sur certaines tables.

Les trois SGBD spatiaux disposent d'un système d'indexation spatial et recommande voire obligent l'utilisation des index pour les colonnes qui contiennent des objets géographiques. En effet, les données spatiales sont souvent volumineuses et demandent par conséquent un temps de traitement important. Il convient donc de classer ces colonnes dans l'espace en utilisant un système d'indexation afin d'optimiser le traitement. Les trois SGBD spatiaux utilisent le système d'indexation R-Tree 5. En dehors de R-Tree, Oracle Spatial autorise le système d'indexation QuadTree6 alors que PostGis utilise également le système d'indexation GIST7 [5]. Le Tableau 1.2 présente les types d'index utilisés par chacun des trois SGBD spatiaux.

Table 1.2 - Comparaison des SGBD spatiaux : les index spatiaux

 

MySQL/MyGIS

PostgreSQL/ Post- Gis

Oracle/Oracle Spatial

Types d'indexspatiaux sup- portés

- R-Tree

- R-Tree - GIST

- R-Tree

- Quad-Tree

1.2.4 Les prédicats spatiaux

La notion de prédicats spatiaux regroupe les fonctions et/ou opérateurs permettant de tester les relations spatiales entre les objets. Ces prédicats utilisent souvent la notion de rectangles englobants(bbox) des objets pour réaliser les tests afin de rendre les calculs rapides.

La norme OGC définit un certain nombre de ces prédicats qui renvoient une valeur booléenne ou une valeur évaluable dans une condition booléenne. Il s'agit de :

equals : vérifie si deux objets sont égaux;

- disjoint : vérifie si deux objets sont disjoints;

5. R-Tree: Regional Tree : système d'indexation qui divise l'espace en secteurs pour associer un certain nombre

d'objets à chaque secteur.

6. Quad-Tree: système d'indexation basé sur la séparation quadratique de l'espace.

7. GIST: GeneralIzed Search Tree est une méthode d'accès balancée à structure de type arbre.

- intersects : vérifie s'il y a une intersection entre deux objets;

- overlaps : vérifie s'il y a un chevauchement, une intersection entre deux objets; - contains : vérifie si un objet contient un autre objet;

- crosses : vérifie si un objet traverse un autre objet;

- within : vérifie si un objet est contenu dans un autre;

- touches : vérifie si deux objets se touchent uniquement sur leurs frontières;

- relate : identifie tous les objets qui ont une relation particulière avec un objet donné. Oracle dispose en plus de ces prédicats, des prédicats supplémentaires afin d'élargir le champ d'analyse des objets, à savoir :

- SDO_COVEREDBY : pour tester si un objet est couvert par un autre.

- SDO_COVERS : pour tester si un objet en couvre un autre.

- SDO_FILTER : pour filtrer les objets qui peuvent avoir une relation avec un objet donné. Cette fonction utilise les bbox8 des objets uniquement et utilise les index spatiaux définis sur les objets.

- SDO_NN : fonction pour la recherche du plus proche voisin.

- SDO_NN_DISTANCE : fonction pour connaître la distance de l'objet renvoyé par SDO_NN. Elle ne peut être appelée que lors d'un appel à SDO_NN.

- SDO_ON : pour tester si un objet est sur un autre (l'intérieur et la frontière d'un objet se trouvent sur la frontière d'un autre objet, par exemple une ligne couvrant le contour d'un polygone).

- SDO_WITHINDISTANCE : pour trouver les objets situés à une certaine distance d'un objet.

Le Tableau 1.3 résume les différents prédicats supportés par chacun des SGBD spatiaux.

8. bbox : Rectangle englobant d'une zone géographique.

Table 1.3 - Comparaison des SGBD spatiaux : les prédicats spatiaux

 

MySQL/MyGIS

PostgreSQL/ Post- Gis

Oracle/Oracle Spatial

Prédicats OGC suppor- tés

Supporte tous les

prédicats définis par

l'OGC mais n'agit que sur le rectangle englobant des objets et non sur les objets eux-mêmes.

Supporte tous les

prédicats définis par

l'OGC

Supporte tous les

prédicats définis par

l'OGC mais ne res-

pecte pas le nommage

Autres prédi-

cats supportés

Néant

Néant

Dispose des prédicats

supplémentaires par

rapport à la norme

OGC

1.2.5 Les fonctions spatiales

Les fonctions spatiales sont toutes les fonctions, autres que les prédicats, qui agissent sur les données spatiales afin de créer de nouveaux objets ou de renvoyer les informations sur les objets. Une étude comparative des SGBD spatiaux par rapport aux fonctions spatiales supportées est présentée dans le Tableau 1.4.

Table 1.4 - Comparaison des SGBD spatiaux : les fonctions spatiales

 

MySQL/MyGIS

PostgreSQL/ Post- Gis

Oracle/Oracle Spatial

Fonctions

Supporte la plupart

Supporte l'ensemble

Supporte l'ensemble

d'information

des fonctions d'infor-

des fonctions d'infor-

des fonctions d'infor-

 

mation définies par

mation définies par la

mation définies par la

 

la norme OGC : par
exemple les fonction

norme OGC.

norme OGC.

 

Point_On_Surface et

 
 
 

IsSimple ne sont pas disponibles.

 
 

Fonctions de

Néant

Supporte toutes les

Oracle locator ne dis-

création

 

fonctions de création de la norme OGC et en dispose d'autres.

pose d'aucune fonc-

tion de création d'objet. Ces fonctionnalités sont ajoutées par la cartouche payante

 
 
 

Oracle Spatial qui en
propose d'autres non
définies par la norme

 
 
 

OGC.

1.2.6 Système de référence spatiale

Les données géographiquess étant représentées sur une surface presque sphérique, il est nécessaire de les projeter grâce à des formules mathématiques afin de les représenter sur des surfaces planes (carte ou écran). Les données ainsi transformées, sont dans un nouveau Système de Référence Spatiale (SRS). A ce titre, les différents SGBD spatiaux offrent des fonctionnalités très variées que nous présentons dans le Tableau 1.5.

Table 1.5 - Comparaison des SGBD spatiaux : Le Système de référence spatiale

 

MySQL/MyGIS

PostgreSQL/ Post- Gis

Oracle/Oracle Spatial

Système de ré-
férence spatial

Ne permet pas le

changement de SRS.

Permet le changement de SRS.

Permet le changement de SRS.

Gestion des

identifiants de projection

Ne permet pas de tra- vailler avec des objets ayant différents identi- fiants de projection.

Ne permet pas de tra- vailler avec des objets ayant différents identi- fiants de projection.

Permet de travailler

avec des objets ayant différents identifiants de projection.

Gestion des

coordonnées géocentriques

Le calcul sur les sys- tèmes géocentriques n'est pas pertinent.

Le calcul sur les sys- tèmes géocentriques n'est pas pertinent.

Gère correctement les coordonnées géocentriques.

1.3 Les logiciels SIG libres mettant en oeuvre le Webmap-

ping

Le Webmapping, est un domaine en pleine expansion grâce au développement des solutions Open Source. Suivant la philosophie GNU qui autorise la copie, la diffusion du logiciel et la modification du code source, ces programmes généralement gratuits et d'utilisation libre émergent à un rythme soutenu.

1.3.1 Les logiciels SIG propriétaires

Il s'agit des logiciels qui appartiennent à un éditeur et qui sont protégés par des licences. On retrouve sur le marché un nombre important dont les plus connus sont : la famille ArcGIS, Geoconcept, Mapinfo, Arcview et Autocad.

Ces solutions commerciales ont été évitées pour des raisons de besoins fonctionnels.

1.3.2 Les logiciels SIG libres

Ce sont des applications livrées gratuitement et parfois avec leurs sources, que l'on peut donc modifier à volonté pour l'adapter à ses besoins. On distingue les logiciels SIG généralistes et les logiciels SIG avec des clients légers.

1.3.2.1 Les logiciels SIG généralistes

Ils fonctionnent en mode client-serveur; sauf que dans ce cas le client est lourd. On peut citer :

- Grass : c'est le plus ancien logiciel SIG libre, le plus complet et développé en C++. Il se connecte directement à PostGIS pour traiter les données spatiales et supporte beaucoup de formats. Mais il est lourd avec une installation difficile. Il existe sous différentes plateformes et pour différents systèmes d'exploitation à noyau UNIX.

- Openjump : il est compatible avec tous les systèmes d'exploitation et est développé en java. Openjump prend en compte les connexions PostGIS ou WMS 9. Son inconvénient majeur est l'absence de fonctionnalités. Openjump s'organise en effet sous la forme d'un noyau gérant les fonctions SIG de base, sur lesquelles peuvent se greffer de nombreux plugin. Ces plugin ajoutent des fonctionnalités diverses, souvent disponibles uniquement dans les logiciels SIG avancés (interpolation, requêtes spatiales, mise en page, représentations graphiques, etc.).

- QuantumGIS : il est développé en C++, simple d'utilisation, et se connecte facilement à PostGIS. Il permet également d'importer des shapefiles10 dans PostGIS. QuantumGIS ne permet pas la modification de la géométrie d'une couche ni les requêtes attributaires et spatiales.

- UDIG (User Friendly Desktop Internet GIS) : il est construit autour de la plateforme Java Eclipse et peut se connecter à PostGIS. Son installation dans un environnement Windows est facile. Son avantage majeur est qu'il permet des modifications sur la géométrie des couches chargées en mettant directement à jour la table de données distant. Par contre il ne permet pas de faire des analyses thématiques ni de faire des requêtes spatiales [6].

9. WMS : Web Map Service, permet de produire des cartes de données géoréférencées à partir des serveurs de

données.

10. shapefiles : fichier de forme, issu du monde des SIG et qui contient des informations spatiales.

Table 1.6 - Comparaison des logiciels SIG généralistes

 

GRASS

OpenJump

QuantumGIS

UDIG

Langage de pro- grammation

C++

Java

C++

Java

Systèmes d'ex-

ploitation

Multiplateforme

Multiplateforme

Multiplateforme

Multiplateforme

Bases de don-

nées supportés

PostGIS,

ODBC, My-

GIS, Oracle

PostGIS, Oracle, ArcSDE

PostGIS

PostGIS, Oracle, DB2, ArcSDE

Standards OGC supportés

WMS, WFS

(Web Feature

Service), GML

(Geography Markup Lan-
guage)

WMS, WFS,

GML, SFS

(Simple feature

SQL)

WMS, WFS,

GML, SFS

WMS, WFS-T

(WFS transac-

tionnel), GML,

SFS

Licence

GNU/GPL

GNU/GPL

GNU/GPL

GNU/LGPL

1.3.2.2 Les solutions clients-serveurs

De base, les solutions côté serveur Open Source apportent la possibilité à partir d'un navigateur Internet classique de visualiser des couches géographiques générées dynamiquement. Ces solutions respectent le principe du Webmapping. Il s'agit entre autres de :

- MapLab : il est une suite logicielle intégrée destinée à faciliter le déploiement de solutions de Webmapping. MapLab permet de construire graphiquement son mapfile, visualiser l'ensemble des données et y ajouter par exemple des couches à partir des requêtes WMS sur un serveur cartographique distant.

- MapServer : MapServer est un programme CGI 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. 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. Il est écrit en C et est multiplateforme. MapServer peut être utilisé en CGI ou avec MapScript. MapScript est une API C qui s'interface avec PHP, Perl, C#, Java et permet d'utiliser les fonctions de MapServer à partir de ces scripts.

Plus dur à mettre en oeuvre, il est aussi néanmoins plus souple et permet d'obtenir précisément le résultat attendu. MapServer a plusieurs avantages à savoir : l'adaptabilité et la flexibilité, l'interopérabilité, la stabilité remarquable et l'évolution rapide. Cependant, la solution MapServer nécessite un effort en développement. Il ne garantit pas la qualité graphique des cartes [7].

- CartoWeb : il n'est pas un serveur cartographique mais un client léger qu'on installe sur le serveur des données pour interagir avec celles-ci. Il permet la visualisation et la manipulation des données vectorielles et raster. CartoWeb se connecte avec PostGIS, s'intègre facilement dans un environnement Apache, PHP 5, Mapserveur 4.5 mais n'est pas compatible avec PHP 4. Son installation est complexe et nécessite une configuration particulière.

- GeoServer : GeoServer est un serveur open source développé en Java. Il supporte les standards de l'OGC : WMS, WFS et WCS (Web Coverage Service). Il possède une interface permettant de construire facilement des fichiers standardisés qui peuvent ensuite être partagés par différents types de clients (OpenLayers,uDig, ...). Ayant hérité tous les avantages de Java, Geoserver est multiplateforme. Sa configuration est facile avec une interface simple. GeoServer a une structure homogène en utilisant GeoAPI, GeoTools et en respectant la norme OGC. Il permet de se connecter facilement à PostGis pour extraire des données spatiales à partir d'une table ou d'une requête paramétrable. Avec GeoServer on note une finesse dans le rendu des cartes. Cependant, GeoServer est lent par rapport à MapServer, nécessite l'installation d'un JDK 1.4 ou plus et il est difficile de trouver une bonne documentation [8].

Table 1.7 - Comparaison des logiciels SIG client/serveur

 

MapLab

MapServer

CartoWeb

GeoServer

Langage de pro- grammation

C

C

PHP

Java

Systèmes d'ex-

ploitation

Multiplateforme

Multiplateforme

Windows, Linux

Multiplateforme

Bases de don-

nées supportés

PostGIS, Oracle

PostGIS, Oracle

PostGIS, MY-

GIS

PostGIS, Oracle,
ODBC, ArcSDE

Standards OGC supportés

WMS, WFS

WMS, WFS,

WCS, WMC

Web Service

SOAP complé-

tant WMS et
WFS

WMS, WFS,

WCS

Licence

GNU/GPL

GNU/FDL

GNU/GPLv2

GNU/GPLv2

1.4 Choix et proposition de solution

Après une étude comparative, nous avons choisi les outils qui répondent le mieux à nos besoins. Les critères suivants sont pris en compte :

- l'application doit être développée avec des outils libres et open sources;

- l'application doit être consultée n'importe où avec un client léger comme un navigateur : mode client-serveur;

- pas besoin de plugins supplémentaires pour afficher des cartes;

Au niveau applicatif, nous optons pour GlassFish vu sa souplesse, sa double fonctionnalité de serveur Web et serveur d'application. De plus, GlassFish est disponible sous une licence gratuite et est incorporé dans NetBeans, l'environnement de développement que nous avons choisi.

Pour la génération des couches cartographiques, GeoServer a été choisi comme Serveur géographique garantissant un meilleur rendu des cartes et une meilleure sécurité. Implémenté en Java, son choix nous permet d'avoir une homogénéité au niveau de tout le système à mettre en place.

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

nous portons notre choix sur le second du fait qu'il est libre et gratuit. Il est quasiment aussi performant que Oracle Locator qui est quant à lui un produit propriétaire et non gratuit. De plus PostgreSQL/PostGIS est facilement accessible par GeoServer, notre serveur géographique.

En résumé, nous proposons un système qui correspond à une architecture quatre tiers composée des éléments suivants :

- un client léger comme un navigateur Web;

- un serveur d'application : GlassFish;

- un serveur géographique : GeoServer ;

- un serveur de données : PostgreSQL/PostGIS.

L'architecture finale proposée se présente comme suit :

Figure 1.1 - Architecture technique du système

1. Le client émet une requête (i.e. appelle une URL) pour demander une ressource au serveur. La réponse à cette requête peut être une page HTML simple (statique) ou une page dynamique générée par une application Web.

2. Le serveur Web se charge du traitement de la requête http. Lorsque la réponse à la requête est une page statique, elle est directement fournie par le serveur Web.

3. Si le serveur http s'aperçoit que la requête reçue est destinée au serveur d'applications, il la lui transmet. Les deux serveurs sont reliés par un canal, nommé connecteur.

4. Le serveur d'applications (exemple : Glassfish ) reçoit la requête à son tour. Il est, lui, en mesure de la traiter. Il exécute donc le morceau d'application (la Servlet) auquel est destinée

la requête, en fonction de l'URL. Cette exécution peut nécessiter des images cartographiques d'où l'interpellation du serveur géographique (exemple : GeoServer) ou la consultation des sources de données attributaires comme des bases de données (exemple : PostgreSQL, 5' sur le schéma).

5. Lorsque le traitement de la requête fait appel à une image cartographique, le serveur d'application fait recourt au serveur géographique qui produit l'image correspondant et l'envoie.

6. Pour produire une image cartographique, le serveur cartographique a besoin des données géographiques qu'il demande au SGBD (PostgreSQL/PostGIS) via une requête.

7. Une fois sa réponse générée, le serveur d'applications la renvoie, par le connecteur, au serveur Web. Celui-ci la récupère comme s'il était lui-même allé chercher une ressource statique.

8. La réponse est dorénavant du simple code HTML, compréhensible par un navigateur. Le serveur http peut donc retourner la réponse au client.

Conclusion

Le présent chapitre a exposé les différentes technologies en rapport avec ce projet et des études comparatives des outils libres pouvant nous aider à la mise en oeuvre du système. Ainsi nous avons exploré plusieurs outils parmi lesquels nous avons choisi les plus adaptés à notre solution. Ceci nous permet d'aborder les phases de l'analyse et de la conception avec des outils appropriés.

CHAPITRE DEUX

MoDELisATioN ET coNcEpTioN DE LA

soLuTioN

Introduction

Dans la mise en place d'un système informatique, la phase d'analyse permet de décrire à travers un modèle compréhensible les différentes composantes de ce système. Dans ce chapitre, il s'agit dans un premier temps de présenter les besoins et l'environnement du système à développer et dans un deuxième temps de modéliser tout ceci dans un langage compréhensible et universel comme UML. Enfin, on proposera une solution conceptuelle qui répond aux besoins définis et spécifiés lors de la phase d'analyse.

2.1 Spécification des besoins et méthodologie adoptée

Il devient beaucoup plus commode de partir des besoins de l'utilisateur pour concevoir une application qui répond au mieux à ses exigences. Ainsi, il nous revient de bien déterminer ces besoins et de se servir de méthodes éprouvées pour la planification et la modélisation.

2.1.1 Spécification des besoins

Les besoins sont d'ordre fonctionnel et d'ordre non-fonctionnel. 2.1.1.1 Les spécifications fonctionnelles

Les besoins fonctionnels sont précis et varient d'un utilisateur à un autre comme suit : tout utilisateur peut visualiser, localiser ou demander l'occupation d'un domaine précis ;

- l'occupant d'un domaine peut formuler et envoyer des plaintes via le système;

- le Chargé des Affaires Domaniales peut consulter les plaintes afin de proposer d'éventuelles interventions;

- le Maire doit recevoir du système, des demandes et générer automatiquement les décrets d'autorisation;

- l'occupant est informé par courrier électronique et par SMS de l'avis d'autorisation, suite à la génération de son arrêté d'autorisation.

2.1.1.2 Les spécifications non-fonctionnelles

La spécification non-fonctionnelle décrit le système informatique dans lequel l'application sera implantée, son interaction avec les autres composantes du système informatique. Dans le cas de ce système, les différents besoins non-fonctionnels sont les suivants :

- le seul client nécessaire pour l'utilisation de l'application devra être un navigateur Web;

- tous les outils et bibliothèques à utiliser pour l'implémentation du SIG devront être gratuits et libres d'utilisation;

- l'application doit être hautement paramétrable afin de faciliter l'évolution du noyau du SIG par l'ajout de nouvelles couches de domaine et l'extension dans toute la commune sans grande modification du code source;

- la gestion des données doit être centralisée et facilitée par une application dédiée; - le serveur cartographique doit être accessible via une page d'accueil;

- l'interface doit être simple et ergonomique.

2.1.2 Méthodologie adoptée

Il est généralement nécessaire de se servir de méthodes approuvées pour la modélisation et la planification de tout processus. La démarche utilisée dans ce projet est inspirée de la philosophie proposée par Pascal Roques dans l'article « Une démarche de modélisation "agile" pour passer des besoins des utilisateurs au code» [10].

La mise en place d'un SIG est une tâche complexe et ardue, et nécessite une démarche-projet rigoureuse pour atteindre les objectifs assignés. C'est ainsi que pour ce projet nous avons adopté la méthode UP (Unified Process) qui est centré autour de l'utilisateur [10]. L'analyse est structurée

autour de trois axes que sont :

- l'analyse fonctionnelle à travers laquelle nous décrivons les différents cas d'utilisation;

- l'analyse dynamique qui nous permet de décrire le cycle de vie de l'objet par les diagrammes de séquence;

- l'analyse statique qui permet la description de la structure des objets grâce aux diagrammes des classes.

2.2 Analyse fonctionnelle

Dans cette section, les différents acteurs, leurs rôles et les fonctions étendues du système seront identifiés et présentés.

2.2.1 Identification des acteurs

Un acteur représente l'abstraction d'un rôle joué par des entités externes (utilisateur, dispositif matériel ou autre système) qui interagissent directement avec le système étudié [10]. Nous avons identifié les acteurs suivants qui interagissent avec le système :

- citoyen : un utilisateur dont les fonctionnalités se limitent à la visualisation, la localisation et la demande d'un domaine;

- occupant de domaine : c'est un citoyen qui a déjà reçu une autorisation d'occupation de domaine et qui peut formuler et consulter des plaintes;

- personnel administratif : il s'agit de tout agent de l'administration communale autorisé pour l'usage des fonctionnalités comme la consultation des demandes, la consultation des plaintes et la consultation des interventions;

- Maire : il est un personnel administratif bénéficiant d'une fonctionnalité particulière qui est la génération automatique des arrêtés d'autorisation;

- Chargé des Affaires Domaniales (CAD) : le CAD est également un personnel administratif qui peut proposer des interventions sur les domaines ayant fait l'objet d'une plainte. administrateur du système : c'est lui qui gère le système. Il met à jour la base de données spatiales et gère les différents utilisateurs.

2.2.2 Identification des cas d'utilisation

Un cas d'utilisation (use case) représente un ensemble de séquences d'actions réalisées par le système et produisant un résultat observable et intéressant pour un acteur particulier. Un cas d'utilisation modélise un service rendu par le système. Il permet de décrire ce que le futur système devra faire, sans spécifier comment il le fera. L'ensemble des cas d'utilisation doit décrire exhaustivement les exigences fonctionnelles du système [10].

Le Tableau 2.1 résume les cas d'utilisation ou fonctionnalités de notre système.

Table 2.1 - Les cas d'utilisation du système

N

Cas d'utilisation

Principaux acteurs

1

s'authentifier

Tous les acteurs sauf un citoyen visiteur

2

Consulter les domaines

Tous les acteurs

3

Demander un domaine

Citoyen

4

Formuler une plainte

Occupant d'un domaine

5

Consulter une demande

Personnel administratif

6

Consulter une plainte

Personnel administratif

7

Consulter un document

Personnel administratif

8

Consulter des interventions

Personnel administratif

9

Générer un arrêté d'autorisation

Maire

10

Proposer une intervention

CAD

2.2.3 Les diagrammes de cas d'utilisation

Utilisé dans l'activité de spécification des besoins, le diagramme de cas d'utilisation montre les interactions fonctionnelles entre les acteurs et le système étudié [10].

2.2.3.1 Diagramme de cas d'utilisation du citoyen (visiteur et occupant)

Figure 2.1 - Diagramme de cas d'utilisation : Citoyen

Commentaire

- Tout citoyen peut visualiser un domaine et lancer une demande pour son occupation. - L'occupant d'un domaine est un citoyen autorisé à formuler et à consulter des plaintes.

2.2.3.2 Diagramme de cas d'utilisation du personnel administratif (Maire, Chargé des Affaires Domaniales et autres)

Figure 2.2 - Diagramme de cas d'utilisation : Personnel administratif

Commentaire

- Le Maire et le Chargé des Affaires Domaniales sont des personnels administratifs.

- En dehors de la visualisation des domaines, ils peuvent consulter les demandes, les plaintes et les interventions sur les domaines.

- La consultation des plaintes relatives à un domaine peut aboutir à la consultation des interventions correspondantes et vice versa.

- Après avoir consulté une plainte, le Chargé des Affaires Domaniales peut proposer des interventions sur le domaine concerné.

- La consultation d'un domaine peut aboutir à la consultation des demandes dont elle a fait l'objet et vice versa.

- Après avoir consulté une demande, le Maire peut générer le décret autorisant son occupation.

2.2.3.3 Diagramme de cas d'utilisation de l'administrateur

Figure 2.3 - Diagramme de cas d'utilisation : Administrateur

Commentaire

L'administrateur est le gestionnaire de tout le système. La gestion de l'utilisateur s'exprime

par l'ajout d'un nouvel utilisateur, la suppression ou la modification du profil d'un utilisateur. L'administrateur peut aussi supprimer, modifier ou ajouter un domaine.

2.2.4 Description textuelle des cas d'utilisation

2.2.4.1 Le cas d'utilisation «s'authentifier» Acteurs

Les acteurs sont : l'administrateur, le Maire, le Chargé des Affaires Domaniales, l'occupant de domaine.

Objectifs

L'utilisateur peut accéder au formulaire d'authentification pour saisir son login et son mot de passe afin de pouvoir se connecter au système.

Pré conditions

- L'utilisateur a accès à Internet ou à l'intranet;

- L'utilisateur a un compte utilisateur.

Scénarii avec succès

1. le système affiche le portail d'accueil;

2. l'utilisateur demande la connexion;

3. le système affiche le formulaire d'authentification;

4. l'utilisateur saisit le profil, le login et le mot de passe;

5. le système vérifie le profil, le login et le mot de passe;

6. le système affiche la page personnelle de l'utilisateur.

Scénarii alternatifs

5 a- L'utilisateur saisit un profil et/ou un login et/ou un mot de passe incorrecte(s).

1. le système refuse la connexion et demande à nouveau le profil et/ou le login et/ou le mot de passe.

Post conditions

L'utilisateur est authentifié et est enregistré dans la session courante; la page personnelle de l'utilisateur est affichée.

2.2.4.2 Le cas d'utilisation «visualiser un domaine» Acteurs

Les acteurs sont tous les utilisateurs.

Objectifs

Tous les citoyens peuvent accéder au portail d'accueil du système et demander la visualisation d'un domaine précis.

Pré conditions

- L'utilisateur a accès à Internet ou à l'intranet;

Scénarii avec succès :

1. le système affiche le portail d'accueil;

2. l'utilisateur demande la visualisation d'un domaine;

3. le système affiche le formulaire de requête et la zone d'affichage de la carte;

4. l'utilisateur demande l'affichage de tous les domaines;

5. le système affiche la carte du domaine;

6. l'utilisateur sélectionne l'outil zoom+ et clique sur la carte;

7. le système effectue le zoom avant à partir du point de clic;

8. l'utilisateur sélectionne l'outil zoom- et clique sur la carte;

9. le système effectue le zoom arrière à partir du point de clic;

10. l'utilisateur clique sur un domaine;

11. le système affiche les informations relatives à la zone sélectionnée.

Scénarii alternatifs

4 a- L'utilisateur demande une visualisation avancée des domaines;

1. le système affiche les zones de saisie des critères d'affichage;

2. l'utilisateur saisit les critères et lance la requête;

5 a- le système ne trouve aucune carte qui réponde aux critères de sélection;

1. le système n'affiche aucune carte et propose à l'utilisateur de lancer une nouvelle requête;

6 a- l'utilisateur tente de faire un zoom sans afficher au préalable une carte;

1. le système affiche un message pour demander à l'utilisateur d'afficher une carte.

Post conditions

- L'utilisateur a trouvé le domaine cherché.

2.2.4.3 Le cas d'utilisation «demander un domaine» Acteurs

Les acteurs sont tous les utilisateurs.

Objectifs

Tous les citoyens peuvent accéder au portail d'accueil du système et formuler une demande de l'autorisation d'occupation d'un domaine.

Pré conditions

- L'utilisateur a accès à Internet ou à l'intranet;

Scénarii avec succès

1. le système affiche le portail d'accueil;

2. l'utilisateur choisit la demande d'un domaine;

3. le système affiche le formulaire de saisie des informations d'identification du demandeur et du domaine;

4. l'utilisateur saisit les informations requises et les valide;

5. le système vérifie la validité des informations saisies;

6. le système enregistre la demande;

Scénarii alternatifs

5 a- Les informations saisies sont erronées;

1. le système rejette l'enregistrement de la demande et alerte l'utilisateur.

Post condition

- La demande de l'utilisateur est enregistrée.

2.2.4.4 Le cas d'utilisation «formuler une plainte» Acteurs

Les acteurs sont les occupants de domaine.

Objectifs

Un citoyen occupant un domaine peut accéder à sa page personnelle pour formuler des plaintes suite à une anomalie constatée sur son domaine.

Pré conditions

- L'utilisateur a accès à Internet ou à l'intranet;

- l'utilisateur doit avoir un compte utilisateur.

Scénarii avec succès

1. le système affiche le portail d'accueil;

2. l'utilisateur se connecte;

3. le système affiche la page personnelle de l'utilisateur;

4. l'utilisateur demande de formuler une plainte;

5. le système affiche le formulaire de saisie de la plainte;

6. l'utilisateur saisit des informations d'identification du domaine, la plainte et les valide;

7. le système vérifie la validité des informations d'identification du domaine;

8. le système enregistre la plainte;

Scénarii alternatifs

7 a- Les informations d'identification saisies sont erronées;

1. le système rejette l'enregistrement de la plainte et alerte l'utilisateur.

Post condition

La plainte de l'utilisateur est enregistrée.

2.2.4.5 Le cas d'utilisation génération de décret d'autorisation Acteurs

L'acteur est le Maire.

Objectifs

Le Maire peut faire générer automatiquement un arrêté autorisant l'occupation d'un domaine suite à la demande d'un citoyen.

Pré conditions

- Le Maire a accès à Internet ou à l'intranet;

- le Maire doit avoir un compte utilisateur;

- une demande d'autorisation a été faite.

Scénarii avec succès :

1. le système affiche le portail d'accueil;

2. le Maire se connecte;

3. le système affiche la page personnelle du Maire;

4. le Maire demande de générer une autorisation d'occupation de domaine;

5. le système affiche le formulaire de génération d'arrêté;

6. le Maire saisit les références de la demande et les valide;

7. le système vérifie l'existence de la demande;

8. le système envoie des informations au système de gestion financière des domaines;

9. le système de gestion financière des domaine autorise l'attribution du domaine;

10. le système génère le décret d'autorisation;

11. le système crée un compte pour le demandeur;

12. le système envoie un courrier électronique et un SMS (Short Message System) au demandeur via un serveur de messagerie;

13. le système enregistre l'arrêté d'autorisation sur le serveur FTP;

Scénarii alternatifs

7 a- La demande saisie n'existe pas.

1. le système alerte le Maire sur l'invalidité de la référence saisie et le cas d'utilisation prend fin.

9 a- Le système de gestion financière des domaines n'autorise pas l'attribution du domaine. 1. le système alerte le Maire sur le refus de l'attribution;

2. un courrier avec avis non favorable est envoyé au demandeur et le cas d'utilisation prend fin.

Post conditions

- Le domaine est attribué;

- l'occupant a un compte utilisateur;

- un courrier comportant une copie de l'arrêté d'autorisation est envoyé au demandeur; - une copie de l'arrêté d'autorisation est enregistrée sur le serveur FTP.

2.3 Analyse dynamique

L'analyse dynamique permet le suivi de l'évolution des objets et la compréhension de leur fonctionnement dans le système. Elle se base sur plusieurs diagrammes dont le diagramme de séquence [10].

2.3.1 Les diagrammes de séquence système

Au niveau analyse nous utilisons le diagramme de séquence système pour décrire selon un point de vue temporel et de façon chronologique les interactions entre les acteurs externes et le système.

2.3.1.1 Diagramme de séquence système : Authentification

Figure 2.4 - Diagramme de séquence système : Authentification

Commentaire

- tout utilisateur authentifié accède à sa page personnelle en fonction de son profil;

- pour les raisons de sécurité, après trois tentatives de connexion l'utilisateur est redirigé vers la page d'accueil.

2.3.1.2 Diagramme de séquence système : Visualisation de domaine

Figure 2.5 - Diagramme de séquence : Visualisation de domaine

Commentaire

L'utilisateur a la possibilité de demander un affichage simple, sans critère, ou de demander un affichage avancé en saisissant des critères de sélection.

2.3.1.3 Diagramme de séquence système : Demande de domaine

Figure 2.6 - Diagramme de séquence : Demande de domaine

Commentaire

La prise en compte d'une demande est subordonnée à la saisie de certaines informations nécessaires pour créer un compte utilisateur à un citoyen dont la demande est acceptée.

2.3.1.4 Diagramme de séquence système : Génération d'arrêté d'autorisation

Figure 2.7 - Diagramme de séquence : Génération d'arrêté d'autorisation

Commentaire

La synchronisation entre le système et le système de gestion financière des domaines est nécessaire afin d'autoriser seulement la génération des arrêtés des demandeurs solvables;

- le demandeur recevra un courrier électronique pour avis favorable ou non à sa demande;

afin de garder la trace des arrêtés générés, le système enregistre chaque arrêté généré sur un serveur FTP.

2.4 Analyse statique

L'analyse statique est la phase de l'analyse qui s'occupe de la description structurelle des différentes composantes du système. Dans cette section nous allons décrire les différentes classes d'objets à travers le diagramme des classes. En tenant compte des interactions qu'il peut y avoir entre les différentes classes, nous pouvons les réorganiser dans le diagramme de paquetage.

2.4.1 Diagramme de classes

L'étape typiquement orientée objet de l'analyse est la décomposition d'un domaine d'intérêts en classes conceptuelles représentant les entités significatives de ce domaine. Il s'agit simplement de créer une représentation virtuelle des objets du monde réel dans un domaine donné. Dans la notation UML, le modèle conceptuel se résume en un ensemble de diagrammes de classes [10].

Le diagramme de classes de la Figure 2.8 montre les différentes classes du système avec les interactions entre elles.

Figure 2.8 - Diagramme de classes du système

2.4.2 Diagramme de paquetage

L'analyse des rapports sémantiques entre les différentes classes nous a permis d'identifier quatre (4) paquetages à savoir : gestion des utilisateurs, gestion des plaintes, gestion des demandes et les entités géographiques. Le Tableau 2.2 récapitule les différentes classes ayant constitué chaque paquetage. On en déduit le diagramme de paquetage de la figure 2.9.

Table 2.2 - Classification des classes par paquetage

paquetages

Classes

Gestion utilisateur

DEMANDEUR, OCCUPANT, UTILISATEUR

Gestion plainte

PLAINTE, PROPOSITION_INT,

TRAVAUX

Gestion des demandes

DEMANDE, DECRET, TACTIVITE

Entités géographiques

ZONE, DOMAINE, BATIMENT,

ROUTE, BOUTIQUE

Figure 2.9 Diagramme de paquetage du système

2.5 Conception

2.5.1 Le modèle relationnel

En informatique, une base de données relationnelles est un stock d'informations décomposées et organisées dans des matrices appelées relations ou tables conformément au modèle de données relationnelles. Le modèle de données relationnelles est basé sur la notion de relation qui est une matrice contenant un ensemble de groupes de valeurs (les n-uplets) stockés dans les enregistrements d'une base de données. Les règles ci-après sont appliquées pour passer du diagramme des classes au modèle relationnel :

R1 : Une classe se transforme en relation.

R2 : Une classe d'association, qu'elle soit simple, agrégation ou composition, se transforme en relation.

R3 : Une association devient une relation.

R4 : Dans une relation d'héritage, ne dupliquer dans les relations sous-types que l'identifiant du sur-type.

R5 : Les clés primaires des classes reliées par une classe d'association migrent vers cette dernière et se transforment en clés étrangères.

A partir du diagramme des classes du système (Figure 2.8) le modèle relationnel suivant est déduit :

DEMANDEUR(ID_Ddeur, IFU, RefCiv, Nom, Prenom, Date_Nais, LieuNais, Nationalite, Profession,Adresse,Tel,Email,Commune,Arrondissement,Village)

UTIISATEUR(ID_UTIL, Nom_UTIL, Pren_UTIL, Login_UTIL, PW_UTIL, Profil_UTIL) OCCUPANT(ID_UTIL, ID_Ddeur)

TACTIVITE(ID_Act, Desc_Act)

TRAVAUX(ID_TRAV, Des_TRAV)

DECRET(ID_DECRET, Lib_DECRET, Empl_DECRET, Date_Effet, Date_Exp, #ID_Dem) ZONE(ID_ZONE, Desc_ZONE, Geom_ZONE, Composer_de)

ROUTE(ID_ROUTE, Long_ROUTE, Desc_ROUTE, Geom_ROUTE)

DOMAINE(ID_DOM, Surf_DOM, Desc_Dom, DomOccuper, PrixLocation, Geom_DOM, #ID_ZO

BATIMENT(ID_Bat, desc_Bat, Geom_Bat, #ID_DOM)

BOUTIQUE(ID_BOUT,Desc_BOUT, BoutOccuper PrixLocation,#ID_Bat) DEMANDE(ID_Dem, Date_Dem, Activite, Debut_Occ, Fin_Occ, #ID_DOM, #ID_BOUT, #ID_Act, #ID_Ddeur)

PLAINTE(ID_PLAINTE, DATE_PLAINTE, Obj_PLAINTE, DETAIL_PLAINTE, #ID_BOUT, #ID_DOM, #ID_UTIL)

PROPOSITION_INT(ID_PROPO, Date_PROPO, Date_Deb_ExecP, Date_Fin_ExecP ,Date_D Date_Fin_ExecEff, Observation, Executer, #ID_PLAINTE)

NECESSITER(#ID_PROPO, #ID_TRAV)

TRAVERSER(#ID_DOM, #ID_ROUTE)

2.5.2 Diagrammes d'états de navigation

UML offre la possibilité de représenter graphiquement l'état de navigation dans l'interface homme-machine en produisant des diagrammes dynamiques qu'on appelle diagrammes de navigation. Le concepteur a le choix d'opter pour cette modélisation entre des diagrammes d'étatstransitions et des diagrammes d'activités. Puisque nous allons modéliser un comportement événementiel dans le cas d'espèce, nous optons pour les diagrammes d'états de navigation par acteur.

Figure 2.10 - Diagramme d'états de navigation du citoyen

Figure 2.11 - Diagramme d'états de navigation du Maire

Conclusion

La phase d'analyse a permis de cerner le contour du système à travers les différents diagrammes fonctionnels, dynamiques et statiques afin d'aboutir à la conception. Cette phase permet de bien canaliser la phase suivante abordée dans le chapitre III à savoir le déploiement et la mise en oeuvre d'un prototype du SYGeD1 .

1. SYGeD : Système de Gestion des Domaine

CHAPITRE TROIS

DEpLoiEMENT ET MiSE EN (EuvRE D'uN

pRoToTypE Du SYGED

Introduction

Ce dernier chapitre du mémoire sera consacré à la mise en oeuvre de la solution retenue. Elle permettra d'aborder de façon détaillée le déploiement des différentes composantes du système et l'implémentation de l'application Web qui lui servira de portail. Les différents tests permettront d'évaluer les performances du prototype et de détecter ses limites.

3.1 Déploiement du Système

3.1.1 Architecture physique du système

Les modèles de déploiement et de configuration matérielle s'expriment tous deux à l'aide d'un diagramme de déploiement.

Le modèle de configuration matérielle a pour but d'exprimer les contraintes de mise en oeuvre au niveau physique. On y trouve les noeuds et les connexions physiques du système, qui sont les différents types de machines connectées par des moyens divers. Le modèle de configuration matérielle permet de spécifier, de documenter et de justifier tous les choix d'organisation physique en fonction des machines dédiées aux diverses fonctions techniques du système [10] .

La Figure 3.1 représentant le diagramme de déploiement de notre système décrit la répartition physique des fonctions-métiers du système et la localisation des différents serveurs.

Figure 3.1 - Diagramme de déploiement du SYGeD

Nous proposons une architecture physique dont la communication est basée sur le protocole TCP/IP.

Au niveau applicatif, l'échange de données entre le serveur d'application (également serveur Web) et le SGBD se fait grâce au JDBC (Java DataBase Connectivity) qui est une API Java très utilisée pour l'accès aux bases de données. De même, entre le serveur de données et le serveur géographique, l'API JDBC est utilisé pour les échanges des données. Par ailleurs, les différents clients demandent des services au serveur d'application en émettant des requêtes basées sur le protocole http.

L'internaute (contribuable ou personnel administratif) par le biais d'un navigateur émet une

requête http qui sera reçue par le serveur Web. Cette requête peut demander une ressource statique ou une ressource dynamique. Lorsqu'il s'agit d'une ressource statique, elle est directement fournie par le serveur Web. Une requête qui demande une ressource dynamique (image cartographique par exemple) est redirigée par le serveur Web vers le serveur d'application qui est capable de la traiter. Ce dernier exécute les morceaux de servlets concernés et interroge le serveur géographique chargé de la production des cartes. Ceci peut nécessiter la consultation de la source de données spatiales. Une fois la carte produite, elle est renvoyée au serveur d'application qui la présente à son tour au serveur Web sous forme de page HTML. Ainsi, le serveur Web est capable de l'interpréter pour enfin présenter la réponse au client sous forme d'une page statique.

3.1.2 Politique de sécurité adoptée

Il faut remarquer au niveau du diagramme de déploiement une DMZ (DeMilitarized Zone 1) regroupant le serveur d'application, le serveur géographique et le serveur de données. Il s'agit d'une zone dont l'accès est régi par la politique de sécurité définie comme suit :

- le trafic d'un réseau externe vers la DMZ est autorisé s'il s'agit d'une requête adressée au serveur d'application (requête http);

- le trafic du réseau externe vers le réseau interne (LAN) est interdit;

- le trafic du réseau interne vers la DMZ est autorisé seulement pour les requêtes http adressées au serveur d'application;

- le trafic du réseau interne vers le réseau externe est autorisé.

Deux pare-feux, l'un situé entre la DMZ et le réseau extérieur et l'autre entre la DMZ et le réseau intérieur, sont délégués pour la gestion de ces politiques de sécurité.

3.1.3 Matériels requis

Les matériels suivants sont nécessaires pour la mise en oeuvre du système :

- des micro-ordinateurs pour les machines clientes, ayant minimum 2 Go de RAM et 2 GHz de processeur;

un serveur IBM sur lequel seront installés les deux serveurs (Web et d'application), le Système de Gestion de Base de Données et le Serveur Géographique.

1. DMZ : région d'un intranet dotée d'une sécurité intermédiaire entre l'extérieur et l'intérieur.

- un routeur Cisco 8 ports pour interconnecter les différents périphériques.

3.1.4 Outils logiciels requis

Les logiciels et les principales API suivants sont nécessaires pour la réalisation du prototype : - système d'exploitation Windows (XP, Vista ou 7) ou Linux;

- un JDK (Eclipse ou NetBeans);

- un Système de Gestion de Base de Données doté de sa composante spatiale : PostgreSQL 9.0 avec sa composante spatiale PostGIS 1.5.

- GeoServer 2.1.1 fera office de serveur géographique.

- OpenLayers, une API JavaScript utilisée pour l'affichage des cartes côté client après leur réalisation par le serveur géographique;

- GlassFish;

- un navigateur récent (Internet Explorer, Opéra, Mozilla Firefox etc.);

- js_mail 1.4, une bibliothèque d'API Java qui permet l'envoie des messages électroniques via un serveur SMTP (Simple Mail Transfer protocol).

3.2 Réalisation de la base de données

3.2.1 Structuration des tables géométriques

La base de données est implémentée sur le SGBD PostgreSQL version 9.0 avec sa composante spatiale PostGIS version 1.5. Nous notons ici une particularité avec les tables ayant des colonnes géométriques. En effet, ces tables se créent en deux étapes à savoir :

- la création de la table avec ses colonnes attributaires;

la création de ses colonnes géométriques qui peut se faire de deux manières. La première manière consiste à utiliser la fonction ADDGEOMETRYCOLUMN() qui prend en paramètre le nom de la base de données, le nom de la table contenant la colonne géométrique, le nom de la colonne géométrique, l'identifiant du système de référence (SRID), le type géométrique et la dimension de l'objet. Ainsi la table GEOMETRY_COLUMNS est remplie automatiquement avec les paramètres passés dans ladite fonction. La deuxième manière qui est moins courante, consiste à agir directement sur la table de méta données GEOMETRY_COLUMNS en uti-

lisant la méthode "INSERT INTO".

Les requêtes ci-après permettent la création de ces tables ayant des colonnes géométriques.

Première étape : création des colonnes attributaires

create table ZONE (

ID_Zone varchar(10) not null PRIMARY KEY,

Desc_Zone varchar(256)

);

create table ROUTE (

ID_Route varchar(10) not null PRIMARY KEY,

Desc_Route varchar(256),

Long_Route varchar(256)

);

create table Domaine (

ID_Dom varchar(10) not null PRIMARY KEY,

surf_Dom int2,

ID_Zone varchar(10),

FOREIGN KEY (ID_Zone) references ZONE

) ;

create table BATIMENT (

ID_Bat varchar(10) not null PRIMARY KEY,

Desc_Bat varchar(256),

ID_Dom varchar(10),

FOREIGN KEY (ID_Dom) references DOMAINE

) ;

create table BOUTIQUE (

ID_Bout varchar(10) not null PRIMARY KEY,

Desc_Bout varchar(256),

Prixlocation int2,

ID_Bat varchar(10),

FOREIGN KEY (ID_Bat) references BATIMENT );

Deuxième étape : création des colonnes géométriques

select AddGeometryColumn ('SYGeDOK','BATIMENT','Geom_Bat' ,4326 2,'POINT',2); select AddGeometryColumn ('SYGeDOK','ROUTE','Geom_Route' ,4326,'LINESTRING',2) ; select AddGeometryColumn ('SYGeDOK','DOMAINE','Geom_Dom' ,4326,'POLYGON',2); select AddGeometryColumn ('SYGeDOK','ZONE','Geom_Zone' ,4326,'POLYGON',2); select AddGeometryColumn ('SYGeDOK','ZONE','est_composee_de' ,4326,'MULTIPOLYGON',2);

3.2.2 Acquisition des données

Les données destinées à la production de la base de données géographiques proviennent de diverses sources :

- images satellites;

- photographies aériennes; - cartographies existantes; - données recueillies sur le terrain (à l'aide d'un récepteur GPS).

Le dernier mode sera utilisé pour la réalisation du prototype.

3.2.2.1 Les récepteurs GPS

Le GPS (Global Positioning System) est un système de positionnement par satellites capables de donner n'importe où sur le globe une position à quelques mètres près.

A l'origine, le GPS a été conçu afin de fournir aux forces armées américaines un système de repérage global de très bonne précision [6]. Afin de permettre aux applications civiles et militaires d'utiliser ce système, les États-Unis ont imaginé le compromis suivant :

- un service de grande précision réservé aux militaires, c'est le mode PPS (Precise Positioning System) ;

2. 4326 : l'identifiant associé au système de référence WGS84 dans notre SGBD spatial.

- un second service aux possibilités dégradées (environ 100 mètres) auquel aurait accès toute

personne muni d'un récepteur, c'est le mode SPS (Standard Positioning System).

Le mode PPS exploite pleinement le système pour une précision de moins de 10 mètres. Le mode SPS qui utilise une électronique simplifiée est en plus soumis a une dégradation volontaire des signaux satellitaires pour une précision de 100 mètres environs.

Tous les satellites émettent en même temps sur 2 fréquences L1 : 1.575 GHz et L2 : 1.227 GHz. Les données repérées par un récepteur GPS étant l'altitude, la latitude et la longitude; celle-ci se compte de 0 degré à 180 degré, positivement vers l'est et négativement vers l'ouest.

3.2.2.2 Le traitement des données

Les données recueillies étant exprimées selon les unités des coordonnées sphériques non compréhensibles par les SGBDRS, il faut les convertir dans un système de projection donné.

Les systèmes de projection sont un ensemble de techniques géodésiques permettant de représenter la surface de la Terre dans son ensemble ou en partie sur la surface plane d'une carte [6]. C'est une relation mathématique qui fait correspondre aux coordonnées géographiques d'un point quelconque de la terre, des coordonnées cartésiennes. On distingue les projections suivantes :

- la projection cylindrique (Projection de Peters, Projection de Robinson, Projection UTM

(Universal Transverse Mercator));

- la projection conique (Projection conique conforme de Lambert, Projection d'Albers);

- la projection azimutale ou planaire zénithale : une projection cartographique dans laquelle on projette l'ellipsoïde sur un plan tangente en un point.

Le WGS84 a été développé par le département américain de la défense. Il a été obtenu à partir d'observations Doppler sur satellites. Il utilise la projection cylindrique et particulièrement la projection UTM qui est constituée de 60 fuseaux de 6 degrés d'amplitude en longitude [6]. Ce système est accessible au travers des éphémérides radiodiffusées par les satellites GPS . Ainsi, tout utilisateur de GPS obtient directement et de manière implicite des coordonnées référencées dans le système WGS84.

Lorsque les coordonnées cartésiennes sont obtenues après traitement, l'insertion des données dans la table correspondante se fait de la manière suivante :

Exemple d'insertion des données dans la table domaine

insert into domaine values ('D02_DBR' ,0,'Z1',GeometryFromText('POLYGON((65 50,85 60,80 80,60 60, 65 50))',4326),'domaine bâtiment riderk',0);

3.3 Configuration du serveur géographique

Lorsqu'un utilisateur envoie une requête http pour afficher une carte dans le navigateur, cette requête est redirigée vers le serveur géographique qui, à son tour, communique avec le serveur de base de données pour avoir les données nécessaires à la production de la carte demandée. GeoServer 2.1.1 est le serveur géographique utilisé pour le prototype. Dans un premier temps, il doit être configuré pour communiquer avec PostgreSQL/PostGIS, le serveur de données.

Après son démarrage, GeoServer offre la possibilité à l'utilisation de créer son espace de travail (par exemple SYGeD). Après avoir créé l'espace de travail, il peut configurer une source de données dans cet espace. La configuration se fait pour les sources de base de données en fournissant les informations telles que :

- le nom de l'espace de travail;

- le nom de la source de données;

- le nom ou l'adresse IP du serveur de données;

- le port utilisé par le serveur de données;

- le nom de la base de données;

- le nom d'utilisateur;

- le mot de passe.

Figure 3.2 - Configuration de GeoServer pour PostgreSQL/PostGIS

3.3.1 Définition d'une couche cartographique

Une base de données géographiques peut être définie comme un ensemble de couches superposables. La conception d'une carte revient à sélectionner les différentes couches (couche des domaines, couche des bâtiments, etc.) qui entre dans sa composition. La définition d'une couche géographique se fait au niveau du serveur géographique. Pour se faire, GeoServer offre la possibilité de prendre directement les données d'une table ou de se servir d'une requête pouvant mettre en jeu plusieurs tables. La requête suivante définit une couche qui montre un domaine dont l'identifiant est fourni en paramètre :

select * from domaine where id_dom = '%iddom%'

Figure 3.3 - Définition d'une couche avec une requête.

3.3.2 Définition de style pour les couches cartographiques

Geoserver offre la possibilité de créer une feuille de style définissant l'apparence d'affichage de la couche à laquelle elle est associée. C'est une feuille de script XML qui décrit les données à afficher sur les cartes et leur aspect graphique suivant des critères. Le code XML suivant définit le style associé à la couche "domaine". Suivant ce style, les domaines non occupés sont coloriés en vert, les domaines occupés sont coloriés en rouge et sur chaque domaine la description est affichée.

<?xml version="1.0" encoding="ISO-8859-1"?>

<StyledLayerDescriptor version="1.0.0" xmlns="http :// www.opengis.net/sld" xmlns :ogc="http :// www.opengis.net/ogc"

xmlns :xlink="http :// www.w3.org/1999/xlink"

xmlns :xsi="http :// www.w3.org/2001/XMLSchema-instance"

xmlns :gml="http :// www.opengis.net/gml"

xsi :schemaLocation="http :// www.opengis.net/sld

http :// schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"> <NamedLayer>

<Name>Les domaine du marché de Dogbo</Name>

<UserStyle>

<Name>typedomaine</Name> <Title>Style des domaine</Title>

<Abstract>simple style pour représenter les domaines</Abstract>

<FeatureTypeStyle>

<Rule>

<Title>oui</Title>

<ogc :Filter>

<ogc :PropertyIsLessThan>

<ogc :PropertyName>occuper</ogc :PropertyName>

<ogc :Literal>1</ogc :Literal> </ogc :PropertyIsLessThan> </ogc :Filter>

<PolygonSymbolizer>

<Fill>

<!- couleur verte pour domaine non occupé->

<CssParameter name="fill">4DFF4D</CssParameter>

<CssParameter name="fill-opacity">0.7</CssParameter>

</Fill>

</PolygonSymbolizer>

</Rule>

<Rule>

<Title>domaine occupé</Title> <ogc :Filter>

<ogc :PropertyIsGreaterThan>

<ogc :PropertyName>occuper</ogc :PropertyName>

<ogc :Literal>0</ogc :Literal> </ogc :PropertyIsGreaterThan> </ogc :Filter>

<PolygonSymbolizer>

<Fill>

<!- couleur rouge pour domaine occupé ->

<CssParameter name="fill">CC3333</CssParameter>

<CssParameter name="fill-opacity">0.7</CssParameter>

</Fill> </PolygonSymbolizer>

</Rule> <Rule>

<Title>Boundary</Title>

<LineSymbolizer>

<Stroke>

<CssParameter name="stroke-width">0.2</CssParameter>

</Stroke>

</LineSymbolizer>

<TextSymbolizer>

<Label>

<ogc :PropertyName>desc_dom </ogc :PropertyName>

</Label>

<Font>

<CssParameter name="font-family">Times New Roman</CssParameter>

<CssParameter name="font-style">Normal</CssParameter>

<CssParameter name="font-size">14</CssParameter>

</Font> <LabelPlacement>

<PointPlacement>

<AnchorPoint>

<AnchorPointX>0.5</AnchorPointX>

<AnchorPointY>0.5</AnchorPointY>

</AnchorPoint>

</PointPlacement>

</LabelPlacement>

</TextSymbolizer>

</Rule>

</FeatureTypeStyle>

</UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

3.4 Présentation du prototype

3.4.1 La page d'accueil

La page d'accueil comprend trois principales parties à savoir la bannière, la zone de navigation et le corps (voir Figure 3.4). La zone de navigation comporte les boutons accueil, visualiser, connexion et demander.

- le bouton "accueil" permet à l'utilisateur de revenir à tout moment à la page d'accueil; - le bouton "visualiser" permet à tout visiteur de visualiser les domaines;

- le bouton "connexion" permet à un utilisateur, qui a un compte utilisateur, de se connecter pour accéder à sa page personnelle afin d'avoir plus d'options;

- le bouton "demander" permet à un internaute quelconque d'accéder à la page de demande d'un domaine ou d'une boutique.

Figure 3.4 - Page d'accueil de la plateforme de gestion des domaines

3.4.2 Visualisation de domaines

La page de visualisation de domaines est constituée de deux parties. Une partie gauche où sont affichées les options d'affichage avancées et une partie droite où s'affiche la carte selon l'option choisie. La Figure 3.5 donne un aperçu de cette page.

Figure 3.5 - Page de visualisation des domaines

3.4.3 Demande de domaine ou de boutique

Première étape

Le processus de demande d'un domaine ou d'une boutique commence par un clic sur le bouton "Demande". Le système recherche et affiche uniquement les domaines ou les boutiques disponibles afin de permettre à l'usager de faire son choix (voir Figure 3.6).

Figure 3.6 - Page d'affichage des domaines et boutiques libres

Deuxième étape

Après avoir consulté les domaines ou les boutiques disponibles, l'internaute clique sur l'action "Demander" du domaine ou de la boutique qu'il veut. Ainsi, il accède au formulaire de demande de la Figure 3.7.

Figure 3.7 - Formulaire de demande d'un domaine

3.4.4 Authentification et accès à la page personnelle

Conformément à ce qui est prévu au niveau de la conception, tout utilisateur qui veut accéder à sa page personnelle doit, après avoir cliqué sur le bouton connexion, renseigner les champs profil, login et password puis valider. Pour cela, nous avons associé au bouton valider un module qui vérifie les valeurs saisies avant d'afficher la page personnelle si ces valeurs sont valides (voir Figure 3.8).

Figure 3.8 - Authentification et accès à la page personnelle du Maire

3.4.5 Génération d'arrêté d'autorisation

Première étape

Lorsque le Maire est sur sa page personnelle, il a la possibilité de choisir l'une des opérations prévues dans la liste déroulante "opération". Ces opérations sont les cas d'utilisation qui le concernent. S'il choisit de générer un arrêté, le système lui affiche toutes les demandes en cours comme le montre la Figure 3.7. Nous avons associé à cette option un module qui applique un filtre à la carte afin d'afficher uniquement les domaines qui ont fait l'objet d'une demande en cours (voir Figure 3.9).

Figure 3.9 - page d'affichage des demandes en cours

Deuxième étape

La page de la génération proprement dite montre les détails concernant une demande. Cette page s'affiche lorsque le Maire clique sur le lien "détail" d'une demande. La Figure 3.10 montre son aperçu.

Figure 3.10 - page de génération des arrêtésd'autorisation

3.5 Limites du prototype

Le prototype réalisé illustre un système de Webmapping dynamique qui s'appuie uniquement sur les technologies JSP et Servlets avec des outils libres. Toutefois, le système que nous avons proposé ne prend pas en compte les analyses géographiques.

Une autre limite réside dans la non prise en compte de l'affichage en 3D des objets géométriques. En effet, cette fonctionnalité serait propice pour bien explorer les objets dans toutes leurs dimensions. Il faut aussi noter que pour le moment, notre système ne communique pas avec le système de gestion financière des domaines. L'intégration de cette fonctionnalité pourra permettre au système d'avoir de façon automatique les données sur l'état de solvabilité des demandeurs. Ainsi, la prise de décision pour la génération des arrêtés d'autorisation serait beaucoup plus automatique.

Ces limites recensées peuvent être levées dans un avenir très proche.

Conclusion

Le déploiement et la réalisation du prototype ont été décrits de long en large dans le présent chapitre. Nous avons aussi effectué et présenté les différents essais qui ont permis d'apprécier la performance du système. S'il est vrai que les objectifs fixés au départ ont été atteints, il est tout aussi avéré que le système de Webmapping proposé présente quelques limites qui peuvent rapidement être levées.

Conclusion générale et Perspectives

Les systèmes de Webmapping constituent un moyen de plus en plus important dans la diffusion des cartes géographiques. Dans ce projet, nous nous sommes donné comme objectif principal, la conception d'un système de Webmapping dynamique au service des administrations locales pour la gestion de l'allocation des domaines. Dans ce cadre, nous avons utilisé les technologies JSP et Servlets et des bibliothèques Java pour mettre en oeuvre un prototype.

Le système proposé permet de diffuser les cartes géographiques et de suivre de visu l'évolution de l'occupation des domaines. Son dynamisme permet aux internautes de bien cibler le domaine ou la boutique voulu pour en faire la demande. Il dispose d'une grande possibilité d'extension et est portable.

Grâce aux différents tests, nous pouvons conclure que les objectifs ont été atteints. Toutefois, notons que le système proposé ne prend en compte ni les analyses géographiques, ni la présentation en 3D des objets.

Afin d'enrichir ce travail, nous envisageons quelques perspectives :

- introduire les analyses géographiques pour bien gérer les conflits de proximité;

- implémenter une présentation en 3D des objets. Le contribuable peut donc bien apprécier le domaine ou la boutique qui fait l'objet de sa demande;

- mettre le système de Webmapping en interaction avec le système de gestion financière afin de rendre la décision d'autorisation plus automatique.

Bibliographie

[1] I. Baldé : Mise en place d'une plateforme de cartographie dynamique, Mémoire Ingénieur de conception en Génie Informatique, Ecole Supérieure Polytechnique de Dakar, 2008.

[2] http :// fr.wikipedia.org/wiki/PHP, consulté le 12 décembre 2011.

[3] http :// fr.wikipedia.org/wiki/Active_Server_Pages, consulté le 12 décembre 2011.

[4] M. Tranchant, Veille technologique :UE NFE107 Architecture et Urbanisation de Systèmes d'Informations, Rapport technique, décembre 2008.

[5] Centre National d'Etudes Spatiales France: Rapport de l' étude des bases de données spatialisées, http :// cct.cnes.fr/cct05/public/2007/documents/Etude_comp_bases_ donnees_spatialisees/rapport_etude_spatiale_final.pdf, Mars 2007.

[6] A. Bakary : Conception et mise en oeuvre d'un SIG pour le suivi des investissements publics au Cameroun, Mémoire Ingénieur de conception en informatique, Ecole Nationale Supérieure Polytechnique de Yaoundé, 2009.

[7] O. Courtin : MapServer-Présentation, http :// www.ird.fr/informatique-scientifique/documents/sgbd/bds/mapserver_presentation.pdf, mars 2008.

[8] mappemonde.mgm.fr/num8/internet/int05401.html, La cartographie SIG en ligne ou Web mapping : les outils «libres», 2005.

[9] J. M. DOUDOUX : Développons en Java, version 1.6, http :// www.jmdoudoux.fr/java/dej/indexavecframes.htm, 2011.

[10] P. Roques, UML2 Modéliser une application Web, Editions Eyrolles, 4 ème Edition, 2008.






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








"L'imagination est plus importante que le savoir"   Albert Einstein