Architecture d un système d information géographique mobile



Documents pareils
Module BD et sites WEB

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architectures web/bases de données

Une proposition d extension de GML pour un modèle générique d intégration de données spatio-temporelles hétérogènes

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

ArcGIS. for Server. Comprendre notre monde

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

ArcGIS. for Server. Sénégal. Comprendre notre monde

UE 8 Systèmes d information de gestion Le programme

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Cours CCNA 1. Exercices

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

PG208, Projet n 3 : Serveur HTTP évolué

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Conception, architecture et urbanisation des systèmes d information

BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS

Information utiles. webpage : Google+ : digiusto/

Conception des systèmes répartis

Nouveautés ArcGIS 10.1 for Server

Un SIG collaboratif pour la recherche historique Partie. Partie 1 : Naissance et conception d un système d information géo-historique collaboratif.

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

CARTOGRAPHIE EN LIGNE ET GÉNÉRALISATION

Prototype de canal caché dans le DNS

Mise en place d'un serveur d'application SIG au Conseil général de Seine-et-Marne

CORBA. (Common Request Broker Architecture)

Cisco Certified Network Associate

Réflexion sur la mise en place d'un système mobile d'aide à la navigation destiné aux services d'urgence basée sur une solution libre.

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Les Architectures Orientées Services (SOA)

Présentation du module Base de données spatio-temporelles

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Qu est-ce que ArcGIS?

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Compte Rendu d intégration d application

Programmation Web. Madalina Croitoru IUT Montpellier

Administration de systèmes

La directive INSPIRE en Wallonie: le géoportail et l infrastructure de diffusion des géodonnées en Région wallonne (InfraSIG(

Conception des bases de données : Modèle Entité-Association

Mise en œuvre des serveurs d application

Les diagrammes de modélisation

Chapitre 1 Windows Server

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Analyse,, Conception des Systèmes Informatiques

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Université de Bangui. Modélisons en UML

Messagerie asynchrone et Services Web

Glossaire. base de données géographiques Voir géodatabase (GDB).

Les Géodatabases en 9.2

UML (Diagramme de classes) Unified Modeling Language

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Windows Internet Name Service (WINS)

UML (Paquetage) Unified Modeling Language

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

BES WEBDEVELOPER ACTIVITÉ RÔLE

Cours en ligne Développement Java pour le web

Architecture distribuée

Comment booster vos applications SAP Hana avec SQLSCRIPT

ArcGIS Mobile 9.3. Cédric Pesty Gael Simon. Conférence SIG 2008 Ateliers Techniques. S'il vous plait! Merci d'éteindre vos appareils portables

Prise en compte des ressources dans les composants logiciels parallèles

Patrons de Conception (Design Patterns)

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?

Surveiller et contrôler vos applications à travers le Web

La mémorisation des mots de passe dans les navigateurs web modernes

18 TCP Les protocoles de domaines d applications

Cours n 12. Technologies WAN 2nd partie

Rappel sur les bases de données

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

La Geo-Business Intelligence selon GALIGEO avec 26/10/2005 1

Le modèle client-serveur

Visual Paradigm Contraintes inter-associations

NFP111 Systèmes et Applications Réparties

Sessions en ligne - QuestionPoint

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Présentation générale du projet data.bnf.fr

L3 informatique TP n o 2 : Les applications réseau

Java et les bases de données

Bases de données Cours 1 : Généralités sur les bases de données

RAPPORT DE CONCEPTION UML :

LEA.C5. Développement de sites Web transactionnels

Cours Bases de données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

WEA Un Gérant d'objets Persistants pour des environnements distribués

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

L accès à distance du serveur

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

Transcription:

Architecture d un système d information géographique mobile Un modèle d architecture client-serveur pour les systèmes d information géographique mobiles Alain Bouju Arunas Stockus Frédéric Bertrand Patrice Boursier Laboratoire Informatique, Image, Interaction Université de La Rochelle Avenue Michel Crépeau 17042 La Rochelle cedex 01 {alain.bouju,arunas.stockus,frederic.bertrand,patrice.boursier}@univ-lr.fr RÉSUMÉ. Nous présentons les concepts d un système d information géographique mobile destiné à la navigation, ainsi que sa mise en œuvre via une architecture logicielle reposant sur l utilisation du web. Une des caractéristiques essentielles de notre travail réside dans le développement d une architecture client-serveur flexible pouvant s adapter à des clients fixes ou mobiles, munis ou non de moyens de géolocalisation. Le développement de cette architecture s appuie sur une bibliothèque de classes permettant d unifier les concepts de source de données géographiques et de visualisation de ces données. Notre architecture permet au client d exprimer des requêtes dont l exécution utilise l historique des requêtes précédentes. Nous présentons également un état de l art sur les différents développements réalisés dans le domaine des systèmes d information géographique mobiles. ABSTRACT. We present the concepts of a mobile geographical information system and their implementation via a software architecture relying on the use of the Web. One of the essential characteristics of our work resides in the development of a flexible client-server architecture which can adapt to fixed or mobile customers, provided or not with means of geolocalisation. The development of this architecture relies on a library of classes unifying the concepts of geographical data source and visualization of these data. Our architecture makes it possible to the customer to express requests whose execution uses the history of the previous requests. We also present a state of the art on the various developments existing in the area of mobile geographical information systems. MOTS-CLÉS : SIG mobiles, architecture, client-serveur, bibliothèque. KEYWORDS: mobile GIS, architecture, client-server, library. Géomatique 13/2003. SIG transport, pages 225 à 251

226 Géomatique 13/2003. SIG transport 1. Introduction De nos jours, les utilisateurs de systèmes informatiques possèdent un accès permanent à des sources d informations remises régulièrement à jour. Ils disposent de moyens en évolution rapide permettant de rechercher et d accéder, à tout moment, à des informations via des réseaux informatiques. Cette possibilité est maintenant offerte aux utilisateurs de systèmes embarqués et de systèmes mobiles. L évolution technologique permet actuellement l utilisation de nouveaux outils intégrant les capacités d un ordinateur, d un téléphone mobile et de moyens de localisation. Ces avancées technologiques sont à l origine de ce travail, qui a pour objectif la réalisation d un système permettant à un utilisateur mobile d interroger des sources de données, d en extraire les informations de son choix et de les visualiser. Il s agit là des fonctionnalités minimales d un système d aide à la navigation pour un utilisateur mobile. Les moyens de communication mobiles présentent un certain nombre de limitations dont les plus importantes sont le faible débit du transfert d informations et la perte momentanée de connexion. L architecture que nous avons développée prend en compte ces aspects via un système de cache d objets. Les données interrogées sont vues comme des collections de données spatiales géoréférencées. La position de l utilisateur mobile aide au choix des données traitées en plus des critères exprimés par l utilisateur. Elle permet de sélectionner les données liées à la position courante de l utilisateur. L architecture proposée peut être qualifiée d architecture web. En effet, elle propose la visualisation des informations via un navigateur web, elle utilise le protocole de communication HTTP et repose sur une architecture de type client-serveur. La conception et le développement d une plate-forme expérimentale figuraient parmi les objectifs initiaux de ce travail. La communication avec des serveurs de données distants, la gestion de la cartographie embarquée et le positionnement de clients mobiles en sont les caractéristiques les plus importantes. La réalisation d une plateforme expérimentale a permis une validation pratique des solutions proposées. La mise en œuvre a soulevé certaines questions de nature plus pratique. Les données traitées au sein du système peuvent varier en termes de structure, de localisation et de mode d accès. Nous souhaitons assurer à un utilisateur un accès transparent à n importe quelle donnée, quelque soit le contexte de l application (application web, application classique). La conception du système répond à cette problématique en séparant la présentation des données de leur accès et en uniformisant ainsi la représentation des données pour le reste du système. Deux types d utilisation peuvent être envisagés pour la plate-forme logicielle réalisée. D une part, c est une bibliothèque logicielle proposant certaines fonctionnalités de manipulation des données spatiales : lecture de données géoréférencées, application d opérations spatiales, gestion du GPS, etc. Ainsi, elle peut être utilisée pour le développement d applications nécessitant une partie seulement des fonctionnalités. D autre part, la plate-forme est considérée comme une suite de modules mettant en

Architecture d un SIG mobile 227 œuvre un enchaînement de traitements cohérents selon un assemblage lié à la logique de l application. Bien qu il puisse subir des modifications afin de répondre aux besoins spécifiques d une application, le traitement des données prévu dans chaque module répond à une spécification cohérente vis-à-vis des autres modules. La section 2 introduit les caractéristiques principales des systèmes mobiles, et plus particulièrement celles liées aux sources de données et à l accès aux données. La section 3 présente les principes de l architecture du système développé. Les principaux composants du système sont décrits dans la section 4. La mise en œuvre et quelques expérimentations sont présentées dans la section 5. Enfin, la section 6 propose un bilan du travail réalisé et décrit certaines perspectives de développement. 2. Caractéristiques des SIG mobiles L accès à des collections de données est un des aspects important pour un système d information. Cet accès doit prendre en compte la variété des sources de données, mais aussi les techniques utilisées pour le transfert et le traitement effectif des données. 2.1. Les sources de données Nous différencions les sources de données selon différentes caractéristiques. Le type des données visualisables correspond généralement à deux formes de représentation : vectorielle et rasteure. La première est plus expressive mais n est pas toujours disponible. La seconde est un format souvent disponible en imagerie satellitaire ou aérienne. Le format des données décrivant un même phénomène peut avoir une structure différente. Par exemple, deux cartes vectorielles peuvent représenter la même ville mais être codées dans deux formats différents. Cette différence est souvent liée aux moyens de création et de traitement des données. Ces moyens peuvent être logiciels, i.e. des SIG avec leur propre format de données. Cette différence de format peut aussi provenir du matériel. Par exemple, les outils GPS permettent de sauvegarder les trajets GPS selon différents formats. Le mode d accès varie suivant les sources de données : la lecture d un fichier local diffère de l accès à une base de données locale. La localisation des données peut être différente selon qu elles sont stockées localement (sur le disque ou dans la mémoire du client) ou bien sur un serveur distant. Dans certains cas, ceci complique la mise en place d un accès uniforme aux données, même si elles ont un format unique. Une applet 1 exécutée par un navigateur web. Application Java téléchargée et s exécutant au sein d un navigateur web.

228 Géomatique 13/2003. SIG transport illustre cette problématique. Elle ne peut pas accéder à la fois à des données locales et à des données distantes en raison des restrictions de sécurité imposées par la machine virtuelle Java 2. Notons que c est le cas pour le développement de notre application de navigation, car une partie des données provient de serveurs distants (données cartographiques), et une autre partie est disponible localement (la position établie par le GPS, correspondant à la localisation du mobile). La fréquence de mise à jour précise l aspect dynamique ou statique des données. Dans une application de navigation, les intervalles de modification des données GPS (généralement 1 ou 2 secondes) sont très courts par rapport à la durée d une session de travail (une ou plusieurs heures). Ce sont des données dynamiques. En revanche, certaines cartes vectorielles subissent des changements peu fréquents (hydrographie, relief...). Ces cartes peuvent alors être considérées comme statiques, et les modifications peuvent être ignorées lors d une même session de travail. 2.2. L accès aux données géoréférencées Le traitement numérique des données géoréférencées a longtemps été réservé aux utilisateurs professionnels. La création de bases de données géoréférencées, l analyse, l interrogation et la présentation de ces données nécessite une bonne compréhension des principes de leur organisation et la maîtrise des systèmes d information géographique (SIG). Il existe des SIG dits professionnels proposant un ensemble complet de fonctionnalités pour la gestion de collections complexes de données. Tels sont les outils de la famille ArcGIS proposé par ESRI (comportant ArcView et Arc- Info) (ESRI, 2001), ou encore le SIG orienté objet Smallworld (Smallworld, 1997). Les systèmes de gestion des bases de données (SGBD) actuels intègrent un support pour la gestion de données spatiales. Par exemple, le SGBD Oracle avec une extension OracleSpatial (Oracle Corporation, 2001), le SGBD PostgreSQL avec son extension PostGIS (Blasby, 2001). Le déploiement de tels outils nécessite la formation des utilisateurs, ainsi que des investissements matériels et logiciels parfois importants, ce qui limite la disponibilité de la technologie SIG aux utilisateurs non avertis. Le partage des informations spatiales entre des institutions et l organisation de leur travail collaboratif est à l origine des études sur la coopération entre bases de données spatiales et SIG (Laurini, 1994). Le développement actuel des moyens de communication et d internet permet aux utilisateurs d accéder aux informations en tout moment et en tout lieu. Ainsi, de larges collections de données spatiales deviennent accessibles à un grand nombre d utilisateurs. Ces collections de données peuvent être créées et maintenues avec des outils différents, utiliser des formats hétérogènes de qualité variable et être accessibles via des modes d accès différents. Ces différences compliquent leur utilisation commune, l échange d informations entre SIG, ainsi qu avec d autres systèmes. Ces tendances ont fait émerger récemment un nouveau domaine de recherche et de développement dans le domaine des SIG, appelée interopérabilité des. Ces restrictions peuvent être changées pour les applets dites signées (certifiées).

Architecture d un SIG mobile 229 SIG (Sondheim et al., 1999). Son but est de supprimer ces différences en normalisant les formats de données, en leur associant une sémantique précise, et en uniformisant les interfaces des services (des fonctionnalités) que les SIG actuels peuvent proposer à d autres systèmes et aux utilisateurs. Les solutions sont disponibles à plusieurs niveaux. Il existe des bibliothèques logicielles implémentant des fonctionnalités de gestion et de visualisation des données spatiales. Elles permettent de cacher les différences de représentations des données en proposant à l utilisateur une interface unique indépendante de la source de données. On peut citer dans ce contexte des bibliothèques telles que GeoToolKit ou OpenMap. La bibliothèque GeoToolKit (Balovnev et al., 1997) est un ensemble de classes C++ développées par INT 3. Elles prennent en charge l accès, la visualisation et la manipulation des données spatiales. L ensemble de composants OpenMap est développé par BBN Technologies avec des objectifs similaires (OpenMap, 1998). Il s agit d un ensemble de composants Java (de type JavaBeans) permettant d accéder à une information géographique provenant de sources variées et de la visualiser. Les composants peuvent être assemblés pour bâtir des applications Java dans différents contextes : des applications de bureau «classiques», des applications distribuées, des applets, etc. L interopérabilité des SIG peut être obtenue en définissant des standards permettant d uniformiser les structures de données échangées ainsi que leur mode d accès. Telle est l interface OGDI (Open Geographical Datastore Interface) ou encore la spécification OpenGIS. OGDI (Morin et al., 1997), (Clement et al., 1997) est une interface de programmation (API pour Application Programming Interface) développée par l Institut pour l Interopérabilité de l Information 4. Cette interface a pour but de standardiser l accès à différentes sources de données spatiales. Elle définit une architecture client/serveur basée sur l utilisation de pilotes (drivers). Chaque pilote se charge de l accès aux données et de leur conversion dans un format uniforme. OGDI représente également une bibliothèque logicielle, à l origine implémentée en C (et dernièrement en Java). Elle fournit aux applications la possibilité d intégrer des fonctionnalités de gestion et de visualisation de données spatiales. Beaucoup de SIG et de SGBD actuels proposent le support de OGDI dans leur dernières versions. Le SIG GRASS a été un des premiers à mettre en œuvre OGDI (Byars, Clamons, 1998). La spécification OpenGIS (Buehler et al., 1998) représente un effort encore plus important dans l interopérabilité des SIG. Développée par le consortium OpenGIS, cette spécification a pour but de proposer des outils pour une représentation mathématique et conceptuelle commune des phénomènes spatiaux. Elle définit aussi un modèle commun pour l implémentation de services permettant d accéder, de gérer, de. Il existe également une version Java appelée J/GeoToolKit.. Depuis septembre 2001, son développement est aussi supporté par la communauté Open Source sous la forme d un de ses projets (http://ogdi.sourceforge.net).

230 Géomatique 13/2003. SIG transport représenter et de partager des données spatiales entre les membres de la communauté informatique. Il existe actuellement des prototypes d applications avec un support de la spécification OpenGIS (Behrens et al., 1997), (Fonseca et al., 1997), ainsi que des applications et des bases de données «professionnelles» (leur liste est disponible sur le site web de OpenGIS (OpenGIS, 1994)). L intégration de données spatiales hétérogènes est obtenue en développant des services qui regroupent un ensemble de sources de données très variées. Ils proposent aussi une interface d accès (Wang et al., 1999) aux informations disponibles dans ces sources. La bibliothèque électronique Alexandria (ADL pour Alexandria Digital Library) développée à l Université de Californie est un des exemples les plus marquants. Le but du projet ADL est de concevoir un système permettant d accéder, d interroger et de modifier des collections d informations géoréférencées (pas seulement des cartes numériques). L architecture d ADL est de type client-serveur, l accès aux données reposant sur des communication TCP/IP via les couches des applications intermédiaires (Wu et al., 1996), (Frew et al., 2000). L interface web est un des moyens utilisés pour la visualisation et l interrogation des données. L utilisation d internet, et en particulier de navigateurs web, pour le transfert, le traitement et la visualisation d informations géographiques est actuellement d un grand intérêt pour le développement des SIG. Du point vue de l architecture, les techniques peuvent être regroupées en deux catégories en fonction du lieu de traitement des données : sur le serveur ou sur le client. Les scripts CGI sont un exemple classique de traitements exécutés du côté serveur (Gundavaram, 1996). D autres méthodes, comme les scripts ASP (Active Server Page), PHP, ou encore les servlets 5 Java peuvent être considérées comme des méthodes dérivées, car elles suivent le même schéma PSfrag replacements d exécution. web Système de fichiers (Exécution CGI) Navigateur Requête HTTP 1 4 Document Web Internet Serveur HTTP 2 Systeme de fichiers (Execution CGI) Document Web 3 Figure 1. Architecture web classique Ces techniques utilisent le schéma «classique» d interaction entre un navigateur et un serveur web (figure 1). Typiquement, un formulaire HTML est utilisé pour collecter les informations d un utilisateur (une requête) et pour les envoyer au ser-. Application Java traitant des requêtes HTTP et fonctionnant sur le serveur.

Architecture d un SIG mobile 231 veur. Ensuite, elles sont traitées par un programme particulier (script CGI, PHP), et le résultat du traitement est renvoyé au navigateur sous la forme d un document HTML. Dans le cas du traitement de données spatiales, on collecte les paramètres d une requête spatiale, et après l avoir exécutée sur le serveur, on reçoit une page HTML avec une image de la carte générée. Le serveur de planification de voyages MapQuest (MapQuest.com, 2000), ou encore l interface permettant d interroger la bibliothèque Alexandria illustrent cette approche. Ces techniques présentent quelques inconvénients. Le traitement est principalement effectué sur le serveur, et le client ne permet que la visualisation des résultats. Ceci implique une charge élevée sur le serveur et des communications intensives avec le client. Elle ne permet pas d établir une connexion permanente entre le client et le serveur pour une session de travail. Par conséquent, la réutilisation du résultat des requêtes précédemment exécutées demeure difficile. Ce type d inconvénient peut être évité en utilisant des moyens permettant de tracer l exécution des requêtes d un client. Les «traces» sont stockées sur le serveur, ou bien sur le client. Un exemple de la dernière approche est décrit dans (Szmurlo et al., 1998) où est présenté un Antéserveur géographique. Les scripts CGI sont utilisés pour effectuer le traitement des données, et les résultats intermédiaires sont stockés sur le serveur. Les cookies (petits paquets d information mémorisés par le navigateur) sont utilisés afin de simuler une connexion permanente au serveur durant la session de travail. Les techniques de traitements destinés au client se basent sur le principe qu une partie ou la totalité du traitement des données est effectuée sur le client, indépendamment du serveur. On obtient ceci à l aide de code exécuté dans l environnement d un navigateur web. Les plug-ins, les applets Java et les modules ActiveX sont les composants logiciels les plus souvent utilisés. Un plug-in est un composant qui traite un type particulier de données. Un navigateur l exécute chaque fois qu il accède à une page web contenant des références sur un type particulier de donnée. L utilisation d un plug-in offre plus de flexibilité que les scripts exécutés sur le serveur. Étant des modules de code exécutable, les plug-ins permettent d effectuer des calculs locaux et d utiliser des modes plus avancés d échange de données avec un serveur (connexions permanentes, chargement progressif des données, etc.). Autodesk MapGuide (Autodesk, 1997) est un exemple de plug-in permettant de visualiser des données spatiales via l interface d un navigateur web. L utilisation de plug-ins a un inconvénient : le composant doit être installé sur un navigateur avant d être utilisé. Il dépend donc du navigateur et du système d exploitation, et il doit être développé pour chaque cas particulier. Comme dans le cas précédent, les applets Java et les modules ActiveX sont des composants logiciels exécutés par un navigateur ou par un système d exploitation. La différence réside dans le fait que le code correspondant est chargé à partir d un serveur (code mobile), de la même manière que des pages HTML, des images et d autres données. Il peut être exécuté par un navigateur web et sur n importe quelle plate-

232 Géomatique 13/2003. SIG transport forme, à condition que le navigateur puisse exécuter les applets Java ou les modules ActiveX. Actuellement, plusieurs SIG professionnels possèdent des modules pour la visualisation de données en utilisant l interface des navigateurs web. Il existe aussi un grand nombre de prototypes permettant de traiter différents types de données spatiales. Un prototype de système baptisé GeoLens est présenté dans (Behrens et al., 1997), dont la partie visible pour un utilisateur est une applet Java. Le prototype lui-même est basé sur la spécification OpenGIS et supporte plusieurs formats d échange pour accéder aux données. Une approche similaire (Berg et al., 1997) est prise pour le prototype Lava. Il utilise une connexion internet pour accéder aux données géographiques et une applet Java pour leur traitement et leur visualisation, similaire à l applet GAEA présentée dans (Kotzinos et al., 1999). Dans (Kvedarauskas et al., 1997), on présente une bibliothèque de composants logiciels appelée GeoLib. Un module ActiveX est utilisé pour la visualisation de données géoréférencées. Avec l évolution de l informatique mobile, il apparaît des systèmes possèdant une architecture web, et leur traitements sont réalisés en majeure partie sur le client : systèmes de navigation (Stockus et al., 2000), (Kotsakis et al., 2001), services utilisant la localisation des clients mobiles (Location Based Services) (Virrantaus et al., 2001). Dans ces différents exemples, les composants logiciels reçoivent les données géoréférencées directement à partir de leurs sources (les fichiers sont accédés via le serveur web ou par des connexions directes aux bases de données). Ils peuvent aussi les acquérir via des applications spécialisées intermédiaires (middleware en anglais). Généralement, ces applications proposent une interface uniforme d accès aux données et effectuent une partie du traitement des données. 3. Architecture du système réalisé En définissant l architecture du système, nous avons eu comme perspective de faciliter l accès aux sources de données géoréférencées en prenant en compte certaines restrictions et choix techniques. 3.1. Contraintes et principes de mise en œuvre Les caractéristiques et exigences que nous imposons au système sont les suivantes : le système est bâti sur une architecture client-serveur. La source principale de données est un serveur, et le client (mobile) peut accéder et charger les données au fur et à mesure, en fonction de ses besoins. La position du client mobile est le principal critère pour le choix des données ; la réalisation est basée sur les technologies web. Les outils de visualisation d informations sur le web (les navigateurs web) constituent l environnement de présenta-

Architecture d un SIG mobile 233 tion d informations. Les données sont transférées à l aide de communications de type internet (protocole HTTP ou de protocoles de plus bas niveau comme TCP ou UDP). Ainsi, la plate-forme étudiée peut être vue essentiellement comme un moyen d accès et de visualisation d informations géoréférencées. 3.2. Principe adopté Nous avons choisi un environnement de mise en œuvre (Bouju et al., 1999) fondé sur des technologies web. La communication étant un aspect essentiel dans les systèmes mobiles, et comme cette dernière peut être interrompue à tout moment, nous avons opté pour le traitement des données sur le client. Ainsi le système peut continuer à fonctionner durant une interruption des communications en utilisant les données disponibles en local. Les applications sont écrites avec le langage Java. Cette approche nous permet de considérer le code d une application (applet) comme téléchargeable. Il peut être obtenu à partir d un serveur de données et ensuite exécuté localement. Rappelons que le langage Java (Gosling et al., 2000) permet de développer des applications portables dont le code (compilé en pseudo-code) est indépendant de la plate-forme d exécution. Cette indépendance est assurée par la machine virtuelle Java. Elle constitue le véritable environnement d exécution des applications et sert d intermédiaire entre les application Java et le système d exploitation. Une application Java peut donc être exécutée dans tout environnement possédant une machine virtuelle sans recompilation du code. Ainsi, un navigateur web possédant une machine virtuelle Java peut constituer un environnement d exécution d applications Java. Le système présenté n est pas un système de gestion de bases de données. Il constitue un système permettant l accès distant, la présentation et la visualisation de données stockées sur un serveur distant à partir de systèmes mobiles. Il ne propose pas de gestion des données (création, mise à jour...). Nous considérons que des outils spécialisés seront utilisés pour ces différentes tâches. 3.3. L architecture web L architecture du système repose sur le modèle client-serveur. La figure 2 présente l organisation du système dans le cas général. Nous supposons qu il est déployé dans un contexte web, où nous utilisons un serveur web comme moyen d accès aux données et un navigateur web comme environnement de présentation. Les données peuvent se situer sur un serveur distant (par exemple, une carte numérique) ou localement (les données du GPS connecté à l ordinateur du client).

234 Géomatique 13/2003. SIG transport Page HTML Code Applet Fichiers Serveur Serveur Web Serveur distant Client Navigateur Web Présentation (Applet) Serveur local BD Données locales (GPS, fichiers) Figure 2. Architecture générale dans un environnement web : composants et flux de données Les parties principales du système sont les suivantes : Le serveur distant. Cette application gère l accès à différentes sources de données : bases de données, données stockées dans des fichiers, etc. C est aussi un gestionnaire de données, car elle peut répondre aux requêtes des utilisateurs en les exécutant elle-même ou en les redirigeant vers des bases de données. Le serveur distant constitue le point d accès aux données pour le reste du système. Le serveur local. Cette application gère la communication avec les serveurs distants et l accès aux sources de données locales. L ensemble de ces fonctionalités se réduit uniquement à la gestion des communications : il redirige les connexions du client en se connectant aux sources de données et en renvoyant la réponse. Le serveur n effectue aucune gestion de données, ni exécution de requêtes. Ce fonctionnement est similaire au fonctionnement des serveurs proxy utilisés sur le web (Wessels et al., 1998). L applet. Une applet Java est exécutée par un navigateur web. Elle représente le gestionnaire des données sur le client. L applet effectue la visualisation de données, gère le cache de données et exécute les requêtes utilisateur (dans le cas où les données nécessaires à la requête sont disponibles sur le client). Les serveurs (local et distant) fournissent au client (l applet) une interface d accès aux données. Ils masquent l hétérogénéité des sources de données, et assurent, pour le client, l uniformité de l accès et de la structure des données. À titre d exemple, on peut citer le serveur local qui gère le GPS connecté à l ordinateur. Il reçoit le flux de données du GPS et en extrait la position actuelle du mobile. La gestion de ce périphérique repose sur un code qui dépend du système d exploitation (appelé «code natif»). La séparation du code d accès aux données et de celui de leur gestion permet de rendre la partie présentation des données moins complexe et plus indépendante de la plate-forme d exécution.

Architecture d un SIG mobile 235 Le principe de fonctionnement est simple. Au début d une séance de travail, le navigateur télécharge la page web contenant la référence au code de l applet. Un fichier de configuration représente un des paramètres de l applet. Il contient des informations sur les cartes qui doivent être présentées par l applet au cours de la session de travail. Une fois téléchargée, l applet débute son exécution en initialisant la communication avec le serveur distant. Puis elle charge la description de la carte à présenter, initialise les structures locales de données (la définition des couches) et envoie les premières requêtes d initialisation d instance de la carte. Lorsqu on dispose d une information de géolocalisation du système, ou une zone d intérêt on peut sélectionner, parmi les informations disponibles sur le serveur, celles qui correspondent à une zone de travail 6. Le système maintiendra à jour un ensemble de données permettant de répondre aux besoins de l utilisateur. L architecture peut être modifiée afin de répondre à des besoins spécifiques d utilisation du système. Une de ces modifications peut être la suppression du serveur local et/ou distant : Absence du serveur local. Cette modification est possible lorsque nous n avons pas besoin d utiliser les ressources locales (par exemple, le positionnement en temps réel). L applet communique alors directement avec le serveur distant. La figure 3 (a) présente l architecture modifiée ; Serveur Client Serveur Client Page HTML Code Applet Serveur Web Navigateur Web Présentation (Applet) Page HTML Code Applet Serveur Web Navigateur Web Présentation (Applet) Fichiers Serveur distant Fichiers Serveur local BD BD Données locales Figure 3. Architecture logicielle sans serveur local (a) et sans serveur distant (b) Cette architecture peut être utilisée pour la création des applications où la performance de transfert ne nécessite pas de traitement particulier. Par exemple, une application de surveillance de clients mobiles dont les positions sont centralisées dans une base de données. Absence du serveur distant. Dans ce cas, tout le traitement des données doit être effectué sur le client. Ceci correspond à un scénario où l exécution des requêtes. Zone plus large englobant la zone de visualisation.

236 Géomatique 13/2003. SIG transport s effectue uniquement sur le client. L applet doit aussi gérer différents modes d accès aux sources de données distantes. Cette modification est illustrée par la figure 3 (b) ; Cette architecture peut être utilisée pour la création des clients «autonomes» pour lesquels les serveurs distants ne constituent pas des sources de données souvent accédées. Absence des serveurs (local et distant). Ce dernier cas correspond à l architecture la plus simple, car aucune application, locale ou distante, ne nécessite d être installée. La figure 4 présente ce cas. Cette configuration peut être utilisée pour des présentations simples. Par exemple, la visualisation des cartes numériques dans les pages web. À noter également que dans cette architecture, les aspects de la gestion efficace du transfert de données ne peuvent pas être traités. Serveur Client Page HTML Code Applet Serveur Web Navigateur Web Présentation (Applet) Fichiers BD Figure 4. Architecture logicielle sans les deux serveurs Ces modifications de l architecture peuvent impliquer une modification des applications, et en particulier une modification de l applet. Certaines fonctionnalités doivent être ajoutées ou supprimées, en particulier celles liées à l accès aux données. 4. Les principes de conception et les composants du système Nous présentons ici certains aspects de la conception et de la mise en œuvre du système. Rappelons que nous distinguons deux niveaux d utilisation de la plate-forme. Au niveau développement, la plate-forme représente une bibliothèque de classes définissant les structures de données et les méthodes permettant d effectuer certains traitements sur les données. Par extension, la plate-forme représente également un ensemble de modules effectuant chacun un traitement spécialisé des données. Ces différents modules sont conçus pour fonctionner ensemble et permettent ainsi de faciliter le développement d applications.

Architecture d un SIG mobile 237 4.1. La bibliothèque de classes La mise en œuvre peut être vue comme un ensemble de classes permettant de télécharger les données dans la mémoire du programme et d appliquer certaines opérations sur ces données. Cette mise en œuvre suit les définitions que nous donnons dans notre modèle formel. 4.1.1. Modèle et type de données Notre espace de modélisation est défini par : Les valeurs : afin de décrire les propriétés de nos objets nous manipulons des valeurs telles que des nombres réels, des entiers, des caractères et des chaînes de caractères. Dans la modélisation formelle nous ne prenons pas en compte les caractéristiques particulières de chacun de ces domaines. Nous nous intéressons donc uniquement aux valeurs sans préciser le type et nous utilisons un domaine généralisé des valeurs alphanumériques que nous notons. Le temps : nous introduisons le domaine des valeurs de temps. Bien que le temps soit continu, nous considérons le domaine comme un domaine discret. Les valeurs dans ce domaine représentent les instants du temps et sont mesurées en unités temporelles (en secondes par exemple) ; L espace : nous représentons l espace par le domaine. Nous considérons comme un domaine à deux dimensions. Les valeurs de, que nous appelons valeurs géométriques, représentent la projection d objets spatiaux du monde réel dans deux dimensions (le plan). Les objets pouvant avoir des formes différentes et complexes, on considère leur approximation et leur discrétisation correspondant à trois types principaux : les points, les lignes et les régions. Il faut noter que le modèle, tel qu il est actuellement défini, ne traite pas les aspects topologiques notamment la topologie du réseau routier. Il est orienté visualisation de données. Pour l utilisation de ce modèle dans des applications de type «aide à la navigation», il serait nécessaire de l enrichir avec les relations topologiques entre les objets. Les principaux objets géométriques simples : Point : un point est un couple, où et sont deux nombres réels définissant ses coordonnées spatiales. L interprétation de et dépend du système de coordonnées et de la projection choisis ; PolyLigne : une polyligne connexe est une suite de points, où chaque couple "! définit un segment # $ %& ' (!'*) avec +-,./%0213, ; Région : une région connexe simple est une suite de points / 45 définissant un polygone simple sans trous. Cette suite définit aussi une polyligne 6 délimitant la région (la frontière de la région). Dans ce cas, le dernier et le premier points de la polyligne forment un segment # 4 7*) ; Région connexe : une région connexe munie de trous est définie comme une paire 68/9:6 6 <;, 03=?>, où 6 est la frontière de la région, et 6 sont les frontières des trous (s ils existent).

238 Géomatique 13/2003. SIG transport Nous voyons que le point est un objet de base pour la définition d objets plus complexes. Notons par @AB l ensemble des points utilisés dans la définition d un objet spatial A. Nous appelons ces points, les «sommets» d un objet géographique. Les objets donnés dans les définitions précédentes sont des objets connexes. Certains objets du monde réel peuvent être composites (des constructions composées de plusieurs bâtiments, des espaces verts, des routes passant sous des tunnels, etc.) et ils nécessiteraient une modélisation «non connexe». Ainsi, nous définissons des objets géométriques complexes et non connexes, construits à partir d objets connexes (figure 5). À partir de ces objets géométriques simples, nous construisons les objets géométriques complexes : MultiPoint : il représente un point généralisé composé d un ensemble de points (simples) : C- 7D/& 'E, 0F=G,. MultiLigne : elle représente une ligne non connexe H composée d un ensemble de polylignes connexes : HIJHK&HLB, 0M=N,. MultiRegion : elle représente une région non connexe O composée d un ensemble de régions connexes : OP-OQ:OR, 0M=G, PSfrag replacements SNTVUWYXYZ\[:X^]_W SNTVUWYXY`LXab]dc SNTVUWYXYe5cabXY[:] Figure 5. Objets géométriques complexes Nous considérons les objets géométriques définis par les définitions 4.1.1 comme étant les valeurs du domaine. Sémantiquement, ces valeurs définissent la forme de l objet ainsi que sa position absolue. L organisation des informations dans notre modèle suit la définition classique des cartes géographiques : les objets sont regroupés dans des couches, et celles-ci forment une carte. Les objets possèdent des propriétés (des attributs) géométriques et temporelles, ce qui permet de les relier à l espace et au temps. Une modélisation similaire existe dans (Sistla et al., 1998) ou (Erwig et al., 1997), où les objets sont définis comme ayant des attributs géométriques et temporels. Nous considérons les objets d une carte comme des entités pouvant contenir des informations alphanumériques ou multimédias. Les objets sont regroupés dans des couches suivant leur structure et leur sémantique. Cette organisation des objets est

Architecture d un SIG mobile 239 similaire à celle utilisée dans les bases de données, et notamment les bases de données objets (Atkinson et al., 1989). Notre modèle de carte est un modèle objet. Il est basé sur le modèle formel utilisé dans (Lagorce et al., 1997) et peut être vu comme une spécialisation de celui-ci en permettant d intégrer des informations spatio-temporelles. Formellement, une carte est composée de couches, chacune des couches étant caractérisée par des attributs associés. Soient deux ensembles f et g dénombrables et disjoints de noms de couches fhi9kj jmld ; et de noms d attributs gno9kp &pbld ;. On définit une signature comme une expression jlqo, où jsrff et représente un domaine généralisé de valeurs alphanumériques correspondant aux propriétés des objets (nombres réels, entiers, chaîne de caractères,... ). Un attribut est comme un couple p<jdqt u. Une carte v est définie comme un couple vwjhx*y8, où : 1) HIJj:j l &jmb est une suite finie de noms de couches de f ; 2) y est un ensemble de définitions d attributs p<jsqo z, où j est dans H. Pour tout j5r{h, un attribut p est défini dans j une fois au plus (la définition p<&j q} z apparaît une fois au plus dans y ). Intuitivement, la définition d une carte est une suite de couches, chacune ayant un ensemble d attributs associés. Elle correspond à la définition d un schéma pour une base de données. Elle décrit la structure des objets regroupés dans une couche (les attributs) et indique les couches constituant une carte. Nous pouvons noter que H est une suite mais pas un ensemble dans la définition d une carte v. Nous imposons de cette manière un ordre parmi les couches. Bien qu au niveau formel cet ordre n ait pas d importance, il en a lors d utilisations pratiques. Par exemple, lors de la visualisation de la carte, l ordre des couches dans la liste peut indiquer l ordre de superposition de ces couches. 4.1.2. Structures de données Les structures utilisées pour le stockage des données dans la mémoire du programme correspondent aux définitions et aux types donnés précédemment. La figure 6 présente brièvement les classes les plus importantes selon la notation UML (Unified Modeling Language) (Object Management Group, 2003). Un objet représente une entité d information gérée au sein du système. C est une instance de la classe ~B. DƒE E ˆ. Un objet est composé d un identificateur et possède une description géométrique. Chaque objet comporte aussi une liste de propriétés. Le contenu de la liste correspond à la structure définie dans la couche à laquelle l objet appartient. Les objets concrets sont définis par des classes dérivant de la classe ~. E DƒE b E :ˆ. Dans une sous-classe, on spécialise les objets et on donne la réalisation de certaines méthodes. Par exemple, les méthodes kše.œ et kše.œb.ˆ Ž. permettent respective-

š 240 Géomatique 13/2003. SIG transport ment d afficher l objet dans la fenêtre d une application et d afficher les informations détaillées sur l objet. Pour faciliter la gestion des objets par le système, on associe aux objets du système un identificateur. Il est représenté par une instance de la classe : et contient un ensemble d informations sur l objet : son identificateur proprement dit (il est unique dans une couche) et sa date de modification. ObjectSet 1 0..1 Geometry Map 0..* MapObject 1 ID moment 0..* Layer 1 1 VisuParameter Figure 6. Les principales classes des objets d une carte Une collection d objets est représentée par la classe ƒe b E ˆB b ˆ. Elle propose des opérations de mise à jour de la collection et d accès à ses objets. Une couche est représentée par une instance de la classe B.. Elle représente une collection d objets à laquelle on associe la description des propriétés des objets (leurs attributs). La couche propose des méthodes pour accéder aux propriétés d un objet. La couche possède également des paramètres de visualisation des données et la liste des requêtes ayant comme résultat cette couche. Une carte représente une liste de couches. Elle définit donc l organisation des couches les unes par rapport aux autres. La géométrie d un objet est définie par une des classes de la hiérarchie présentée dans la figure 7. La géométrie simple est modélisée par trois classes principales : EŽk Bˆ, B D E EŽk E et VŽ.. La frontière de la région est une extension de la B D B <Žk E, où le dernier et le premier point sont connectés. Une région avec des trous est modélisée par la classe B. VŽD. qui, en plus, contient une liste des frontières des trous. Les objets de la géométrie simple sont des objets connexes. Les objets non connexes sont modélisés par les classes héritant de la classe B :œ Bžb b :œv ˆ b : ~ Ÿ DˆVŽ: Ž Bˆ, ~ Ÿ.ˆVŽ Žk E et ~ Ÿ.ˆVŽk VŽD D. Chacune des ces classes contient une liste d objets géométriques simples. Toutes ces classes proposent des méthodes permettant d accéder aux éléments de chaque objet géométrique : les points, les segments, le rectangle englobant, etc. Ces éléments sont modélisés par des classes dites «classes géométriques de base» :

Architecture d un SIG mobile 241 Geometry SimpleGeometry ComplexGeometry Region PolyLine 1..* Point 1..* MultiPoint MultiLine HoleRegion 1..* 1..* Boundary MultiRegion Figure 7. Les classes de la géométrie d objets B Žk Bˆ. pour un point défini dans un espace à deux dimensions, b œv. Bˆ pour un segment droit, E. pour un rectangle englobant. Lors de la définition de la géométrie dans notre modèle de données, nous nous sommes basés sur l OpenGIS Simple Features Specification (OpenGIS, 1994). Notre modèle est également proche de la norme SQL/MM (ISO, 2000). Il comporte des définitions similaires des types géométriques simples (points, polylignes, polygones) et des collections associées (multipoints, etc.). Cependant notre modèle est moins riche, notamment en ce qui concerne les opérations pouvant être réalisées. La norme SQL/MM donne également une définition plus précise des directions et des angles (utilisés pour établir la position des objets). Cette différence se justifie par la nature des objectifs de ces définitions. SQL/MM est une norme que les SGBD doivent respecter afin de fournir les solutions complètes pour le stockage et le traitement de données spatiales. Pour notre part, nous avons considéré uniquement le transfert et la visualisation d informations et nous nous sommes limités au modèle minimal permettant de représenter les données et d effectuer des opérations simples comme leur recherche et leur sélection. Il est également à noter que la géométrie modélise la forme et la position spatiale d un objet, mais elle ne précise pas son type. Dans certains modèles (par exemple, dans GeoLib (Kvedarauskas, 1999)) on trouve des classes spéciales pour les images rasteures, les étiquettes (label) de texte et d autres types d objets dans la hiérarchie des classes géométriques. Nous utilisons les objets ~D DƒE b ˆ pour gérer ce type de données. 4.1.3. Accès aux données L accès aux sources de données est géré à l aide de «pilotes». On propose un ensemble de pilotes pour accéder aux différents types de données : les données sauvegardées dans un fichier ( <Ž. b <Ž: ), stockées dans un SGBD ( B ˆ. E. b VŽk )

242 Géomatique 13/2003. SIG transport ou envoyées par un flux de données ( ˆb bkœ b VŽ: B ). Ils masquent les différences de formats, de structure et de mode d accès aux données au reste du système. Ils effectuent aussi la conversion des données de leur format d origine au format interne au système. Les pilotes établissent une connexion avec la source de données en fonction de la description donnée (une requête, le nom d un fichier, etc.) et renvoient comme résultat une collection d objets correspondants (un DƒE b E :ˆ b ˆ ). Lorsque les pilotes sont utilisés comme une bibliothèque de classes, leur choix doit être explicite, i.e. c est l utilisateur qui choisit le pilote utilisé pour accéder aux données. Lorsque la communication est gérée par le gestionnaire de communication, le choix du pilote se fait en fonction de la description des données disponibles dans le système. 4.1.4. Opérations Les opérations spatiales sont mises en œuvre de manière indépendante par rapport aux données sur lesquelles elles peuvent être appliquées. Ainsi, il est possible de modifier les opérations (par exemple, télécharger une nouvelle version à partir du serveur), sans pour autant changer le contenu des objets. Operation UnaryPredicat BynaryPredicat UnaryFunctionDbl BynaryFunctionDbl Contains Intersects Perimeter Area Distance Figure 8. La hiérarchie des opérations Les différentes opérations sont classées en prédicats unaires/binaires ou fonctions unaires/binaires (cf. figure 8). Chacune de ces classes doit implémenter une méthode B B œ qui prend, comme paramètres, un ou deux objets de type ~. Dƒ b E ˆ. Elle renvoie comme résultat une valeur booléenne ou réelle. L ensemble des opérations implémentées correspond à celles proposées lors de la définition du modèle formel. Il peut être étendu en définissant de nouvelles opérations (pas nécessairement spatiales). L ensemble des classes contient aussi l implémentation d opérations plus complexes : le test de couverture d un rectangle par un ensemble de rectangles donnés, le calcul d angles entre les segments, etc. Elles ne font pas partie de la hiérarchie présentée sur la figure 8 et constituent la base pour l implémentation des algorithmes présentés dans les chapitres précédents (algorithmes de mise en correspondance et de test d inclusion sémantique des résultats des requêtes, etc.).

Architecture d un SIG mobile 243 4.1.5. Gestion du GPS Les classes de traitement des données GPS (la figure 9) permettent d accéder à ce périphérique (un GPS connecté au port série par exemple) et de décoder les données GPS. Le GPS est représenté par un objet de la classe ž ˆ. Il peut produire un flux de données qui est ensuite décodé à l aide d un décodeur (un objet de la classe ž E D B ). À son tour, le décodeur redirige les données vers les consommateurs de données, i.e. les programmes utilisateurs. Un paquet de données concernant une position GPS est stocké dans un objet de la classe ž B ˆ. Cet objet comporte une suite d informations sur la position : les coordonnées, le temps, la précision, etc. Le décodeur GPS décode les données à partir de n importe quel flux de données Java ( k b bÿbˆ ˆb :œ ). Leur source peut être de type ž B bˆ, mais également n importe quel fichier avec des données GPS enregistrées précédemment ou une autre source. <<Interface>> GPSDataConsumer 0..* GPSDecoder <<Interface>> GPSStreamListener GPSData NMEA183 0..* 0..1 GPSPort GGA GLL VGT Figure 9. Les classes pour la gestion du GPS Nous proposons l implémentation d un certain nombre de décodeurs, et en particulier les décodeurs de trames GPS au format NMEA183 (NMEA, 2000) 4.1.6. Les requêtes La figure 10 présente le diagramme des classes correspondant à la définition des requêtes et de leurs résultats. Suivant la définition formelle, chaque requête est composée d une référence sur sa condition de sélection, de la liste des couches sur lesquelles elle est définie et de la couche à laquelle appartient son résultat. Nous distinguons deux types de requêtes : la requête «principale» ( DŸE. b ) et les requêtes restreintes (Ẽ ŸE b ). La requête principale correspond à la requête initiale formulée par l utilisateur ou générée par l utilisateur. Sa condition contient donc la condition initiale de sélection. La requête restreinte correspond à une restriction appliquée à la requête initiale. Sa condition correspond uniquement à la condition de restriction. La condition de la requête effectivement exécutée est la conjonction de la condition initiale et de celle de la restriction. La requête initiale possède une liste de requêtes restreintes associées. Chacune des requêtes restreintes possède une réponse associée. Ceci correspond donc à l historique de la requête.

244 Géomatique 13/2003. SIG transport ObjectSet AbstractQuery Condition 0..1 1 1 1 Result RQuery 1 0..* Query Figure 10. Les classes de requêtes et de réponses 4.2. Composants du système Pour faciliter le développement d applications, la plate-forme propose un ensemble de modules, que nous appelons aussi gestionnaires. Chacun d eux prend en compte différents aspects du traitement des données : la visualisation, l analyse de requêtes, la communication, etc. Leur mise en œuvre est basée sur les structures de données et les opérations présentées dans la section précédente. Chaque gestionnaire réalise un ensemble de fonctionnalités et définit une interface permettant de les appeler. Les gestionnaires ne proposent que des solutions générales pour la gestion des données. Ils peuvent ou doivent être spécialisés lors du développement d une application concrète. L organisation des modules assurant la présentation sur le client sera décrite plus en détails, car elle intègre un grand nombre de modules. 4.2.1. La gestion de la présentation La figure 11 montre l organisation modulaire de la présentation de données sur le client. Les gestionnaires composant la présentation sont les suivants : Gestionnaire de la carte. C est le gestionnaire central autour duquel sont organisés les autres gestionnaires. Sa tâche principale consiste à recevoir et rediriger les requêtes ainsi que leurs réponses. En fonction du résultat de l analyse des requêtes, il prend une décision sur le lieu d exécution des requêtes. Lorsque les requêtes peuvent être exécutées localement, il établit le dialogue avec le gestionnaire de données. La communication via le gestionnaire de communication est initialisée à chaque fois que la requête doit être envoyée à des sources de données externes à la présentation. Gestionnaire de visualisation. Ce gestionnaire accomplit deux tâches. Il définit un environnement pour la visualisation des données de la carte. En particulier, il fournit un objet graphique assurant l affichage des objets de la carte. Le gestionnaire convertit aussi les actions de l utilisateur sur les objets de type «requêtes» qui peuvent être traités par le reste du système. Ces actions sont variées : des requêtes de sélection de données, le changement d échelle de visualisation des données, le changement d organisation des couches (leur visibilité ou leur ordre).