CHAPITRE IV : ARCHITECTURE DU SYSTÈME
Après identification et analyse des besoins des
utilisateurs, après modélisation de notre système
d'information géographique, nous présentons dans ce chapitre
l'architecture détaillée de celui-ci. Notre système est
développé en deux parties principales : une partie "serveur"
constituée de la base de données et du service cartographique,
une partie "client" qui est une application web construite suivant le design
pattern Modèle-Vue-Contrôleur.
IV.1. Le module serveur
IV.1.1. La base des données géographiques:
PostgreSQL/PostGIS
PostgreSQL est un puissant système de gestion de base
de données relationnel objet (SGBDRO). Il a été
publié sous la licence de style BSD et est donc un logiciel libre. Comme
avec beaucoup de logiciels libres, PostgreSQL n'est pas contrôlé
par une société unique mais par une communauté de
développeurs et de sociétés qui le développent.
PostgreSQL a été conçu depuis le début en
conservant à l'esprit qu'il serait potentiellement nécessaire de
l'étendre à l'aide d'extensions particulières. La
possibilité d'ajouter de nouveaux types, et des nouvelles fonctions.
Grâce à cela, une extension de PostgreSQL peut être
développée par une équipe de développement
indépendante.
PostGIS, c'est une extension de PostgreSQL pour manipuler des
informations géographiques (spatiales) sous forme de
géométries (points, lignes, polygones). Il confère au
système de gestion de base de données PostgreSQL le statut de
base de données spatiales en ajoutant les trois supports suivants : les
types de données spatiales, les index spatiaux et les fonctions
spatiales. Étant donné qu'il est basé sur PostgreSQL,
PostGIS bénéficie automatiquement de toutes les capacités
de celui-ci ainsi que le respect des standards de cette implémentation
[12].
30
IV.1.1.1. Index spatiaux et étendue
Une base de données ordinaire fournit des
méthodes d'accès connues sous le nom d'index pour permettre un
accès efficace et non séquentiel à un sous ensemble de
données. L'indexation des types non géographiques (nombre,
chaînes de caractères, dates) est habituellement faite à
l'aide des index de type arbres binaires.
L'ordre naturel des nombres, des chaînes de
caractères et des dates est assez simple à déterminer. En
effet, chaque valeur est inférieure, plus grande ou égale
à toutes les autres valeurs. Mais, étant donné que les
polygones peuvent se chevaucher, peuvent être contenus dans un autre et
sont représentés par un tableau en deux dimensions (ou plus), un
arbre binaire ne convient pas pour indexer les valeurs. Les vraies bases de
données spatiales fournissent un index spatial qui répond
plutôt à la question : « quel objet se trouve dans une
étendue spécifique ? ». Une étendue correspond au
rectangle de plus petite taille capable de contenir un objet
géographique.
Figure 15: Exemples d'étendues [12]
Les étendues sont utilisées car répondre
à la question : « est-ce que A se trouve à
l'intérieur de B ? » est une opération coûteuse pour
les polygones mais rapide dans le cas où ce sont des rectangles.
Même des polygones et des lignes complexes peuvent être
représentés par une simple étendue. Les index spatiaux
doivent réaliser leur ordonnancement rapidement afin d'être
utiles. Donc au lieu de fournir des résultats exacts, comme le font les
arbres binaires, les index spatiaux fournissent des résultats
approximatifs. La question « quelles lignes sont à
l'intérieur de ce polygone » sera
31
interprétée par un index spatial comme : «
quelles lignes ont une étendue qui est contenue dans l'étendue de
ce polygone ? » [12].
|