• Aucun résultat trouvé

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
27
0
0

Texte intégral

(1)

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 œuvreviaune architecture logicielle reposant sur l’utilisa- tion 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, mu- nis 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éogra- phiques 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 égale- ment 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 im- plementationviaa 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 geo- graphical 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

(2)

1. Introduction

De nos jours, les utilisateurs de systèmes informatiques possèdent un accès per- manent à 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 informationsviades réseaux informatiques. Cette possibilité est maintenant of- ferte aux utilisateurs de systèmes embarqués et de systèmes mobiles. L’évolution tech- nologique 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 fonctionnali- té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 limita- tions 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 aspectsviaun 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 pro- pose la visualisation des informationsviaun 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 don- né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 pla- teforme 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 trai- té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’im- porte quelle donnée, quelque soit le contexte de l’application (application web, appli- cation 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éa- lisé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, applica- tion 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

(3)

œ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 sec- tion 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.

Letypedes données visualisables correspond généralement à deux formes de re- pré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 satelli- taire ou aérienne.

Leformatdes 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.

Lemode d’accèsvarie suivant les sources de données : la lecture d’un fichier local diffère de l’accès à une base de données locale.

Lalocalisationdes données peut être différente selon qu’elles sont stockées loca- lement (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 applet1 exécutée par un navigateur web

. Application Java téléchargée et s’exécutant au sein d’un navigateur web.

(4)

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 Java2. 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 car- tographiques), et une autre partie est disponible localement (la position établie par le GPS, correspondant à la localisation du mobile).

Lafréquence de mise à jourpré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 modifica- tions 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’ana- lyse, 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’informa- tion 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 utili- sateurs, 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 communica- tion 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 acces- sibles à 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 viades modes d’accès différents. Ces différences com- pliquent 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éeinteropérabilitédes

. Ces restrictions peuvent être changées pour les applets ditessignées(certifiées).

(5)

SIG (Sondheimet 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 propo- ser à 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épen- dante de la source de données. On peut citer dans ce contexte des bibliothèques telles que GeoToolKit ou OpenMap. La bibliothèque GeoToolKit (Balovnevet al., 1997) est un ensemble de classes C++ développées par INT3. 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 typeJavaBeans) 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 « clas- siques », des applications distribuées, desapplets, etc.

L’interopérabilité des SIG peut être obtenue en définissant des standards permet- tant 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 (Morinet al., 1997), (Clementet al., 1997) est une interface de program- mation (APIpourApplication Programming Interface) développée par l’Institut pour l’Interopérabilité de l’Information4. 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 don- né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 (Buehleret 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 mo- dè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).

(6)

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 (Behrenset al., 1997), (Fonsecaet 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 ser- vices qui regroupent un ensemble de sources de données très variées. Ils proposent aussi une interface d’accès (Wanget al., 1999) aux informations disponibles dans ces sources. La bibliothèque électronique Alexandria (ADL pourAlexandria Digital Library) développée à l’Université de Californie est un des exemples les plus mar- quants. Le but du projet ADL est de concevoir un système permettant d’accéder, d’in- terroger 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/IPviales couches des applications in- termédiaires (Wuet al., 1996), (Frewet 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 tech- niques 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é ser- veur (Gundavaram, 1996). D’autres méthodes, comme les scripts ASP (Active Server Page), PHP, ou encore lesservlets5 Java peuvent être considérées comme des mé- thodes dérivées, car elles suivent le même schéma d’exécution.

Systeme de fichiers (Execution CGI) 1

2

3 4

Web

Web

PSfrag replacements

Navigateur

Requête HTTP

Document Document

web Internet Serveur

HTTP

Système de fichiers (Exécution CGI)

Figure 1.Architecture web classique

Ces techniques utilisent le schéma « classique » d’interaction entre un naviga- teur 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.

(7)

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 bi- bliothèque Alexandria illustrent cette approche.

Ces techniques présentent quelques inconvénients. Le traitement est principale- ment 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 re- quê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 der- nière approche est décrit dans (Szmurloet al., 1998) où est présenté unAnté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. Lescookies(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épendam- ment du serveur. On obtient ceci à l’aide de code exécuté dans l’environnement d’un navigateur web. Lesplug-ins, lesappletsJava et les modules ActiveX sont les compo- sants logiciels les plus souvent utilisés.

Unplug-inest un composant qui traite un type particulier de données. Un naviga- teur 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’unplug-inoffre plus de flexibilité que les scripts exécutés sur le serveur. Étant des modules de code exécutable, lesplug-insper- mettent 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 don- nées, etc.). Autodesk MapGuide (Autodesk, 1997) est un exemple deplug-inpermet- tant de visualiser des données spatialesvial’interface d’un navigateur web.

L’utilisation deplug-insa 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’exploita- tion, et il doit être développé pour chaque cas particulier.

Comme dans le cas précédent, lesappletsJava 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-

(8)

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 visua- lisation 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 (Behrenset al., 1997), dont la partie visible pour un utilisateur est uneappletJava. 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 (Berget al., 1997) est prise pour le pro- totype Lava. Il utilise une connexion internet pour accéder aux données géographiques et uneappletJava pour leur traitement et leur visualisation, similaire à l’applet GAEA présentée dans (Kotzinoset al., 1999). Dans (Kvedarauskaset 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 : sys- tèmes de navigation (Stockuset al., 2000), (Kotsakiset al., 2001), services utilisant la localisation des clients mobiles (Location Based Services) (Virrantauset al., 2001).

Dans ces différents exemples, les composants logiciels reçoivent les données géo- référencées directement à partir de leurs sources (les fichiers sont accédésviale ser- veur web ou par des connexions directes aux bases de données). Ils peuvent aussi les acquérirviades applications spécialisées intermédiaires (middlewareen 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’in- formations sur le web (les navigateurs web) constituent l’environnement de présenta-

(9)

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’ac- cès et de visualisation d’informations géoréférencées.

3.2. Principe adopté

Nous avons choisi un environnement de mise en œuvre (Boujuet al., 1999) fondé sur des technologies web. La communication étant un aspect essentiel dans les sys- tè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 conti- nuer à 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 (Goslinget 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’inter- mé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 consti- tue 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 ges- tion 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).

(10)

Client

Serveur Web

Navigateur Web Présentation (Applet)

Serveur distant

Serveur local

BD Page HTML

Code Applet

Fichiers

Données locales (GPS, fichiers) Serveur

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 don- nées : bases de données, données stockées dans des fichiers, etc. C’est aussi un ges- tionnaire 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 dis- tants 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’ef- fectue aucune gestion de données, ni exécution de requêtes. Ce fonctionnement est si- milaire au fonctionnement des serveursproxyutilisés sur le web (Wesselset al., 1998).

L’applet. UneappletJava est exécutée par un navigateur web. Elle représente le gestionnaire des données sur le client. L’appleteffectue 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’ordi- nateur. 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’exploita- tion (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.

(11)

Le principe de fonctionnement est simple. Au début d’une séance de travail, le na- vigateur 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’appletau cours de la session de travail.

Une fois téléchargée, l’appletdébute son exécution en initialisant la communi- cation 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 in- formation 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 travail6. 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’utili- sation 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’appletcommunique alors directement avec le serveur distant. La figure 3 (a) présente l’architecture modifiée ;

Serveur Client

Serveur Web

Navigateur Web Présentation

(Applet)

Serveur distant

BD Page

HTML Code Applet

Fichiers

Serveur Client

Serveur Web

Navigateur Web Présentation

(Applet)

Serveur local

BD Fichiers

Données locales Page

HTML AppletCode

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 perfor- mance de transfert ne nécessite pas de traitement particulier. Par exemple, une appli- cation 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.

(12)

s’effectue uniquement sur le client. L’appletdoit 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ésenta- tions 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

BD Fichiers HTMLPage

AppletCode

Serveur Web

Navigateur Web Présentation

(Applet)

Figure 4.Architecture logicielle sans les deux serveurs

Ces modifications de l’architecture peuvent impliquer une modification des ap- plications, 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éfi- nissant les structures de données et les méthodes permettant d’effectuer certains trai- tements sur les données. Par extension, la plate-forme représente également un en- semble 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.

(13)

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 ca- ractè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 uni- quement 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 appelonsvaleurs géométriques, représentent la projection d’objets spatiaux du monde réel dans deux di- mensions (le plan). Les objets pouvant avoir des formes différentes et complexes, on considère leur approximation et leur discrétisation correspondant à trois types princi- paux : 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: unpoint 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: unerégion connexe simpleest une suite de points / 45 définis- sant un polygone simple sans trous. Cette suite définit aussi une polyligne6 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: unerégion connexe munie de trousest définie comme une paire

68/9:6

6

<;

,03=?> , où6 est la frontière de la région, et6 sont les frontières des trous (s’ils existent).

(14)

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 spatialA . 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. Cer- tains 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 ob- jets 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 connexeH 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 en- semble 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 unecarte. Les objets possèdent des propriétés (des attributs) géométriques et tem- porelles, ce qui permet de les relier à l’espace et au temps. Une modélisation simi- laire existe dans (Sistlaet al., 1998) ou (Erwiget 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

(15)

similaire à celle utilisée dans les bases de données, et notamment les bases de données objets (Atkinsonet al., 1989).

Notre modèle de carte est un modèle objet. Il est basé sur le modèle formel utilisé dans (Lagorceet 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 ca- ractérisée par des attributs associés.

Soient deux ensemblesf et g dénombrables et disjoints de noms de couches

fhi9kj jmlD; et de noms d’attributs gno9kp &pblD; . On définit une signa- ture comme une expressionjLqo , 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 couplep<jdqtu.

Une cartev est définie comme un couplevwJHx*y8, où : 1)HIJj:jl &jmB est une suite finie de noms de couches def ;

2)y est un ensemble de définitions d’attributs p<jsqoz, oùj est dansH . Pour tout j5r{H , un attribut p est défini dansj une fois au plus (la définition p<&j|q}z

apparaît une fois au plus dansy ).

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 queH 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 pra- tiques. 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 pro- gramme 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).

Unobjetrepré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-

(16)

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 sys- tème unidentificateur. 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.

Map

ObjectSet

Layer 0..*

0..* VisuParameter

11

ID moment MapObject

0..*

1 0..*

1

11 11 Geometry 0..1 0..1

Figure 6.Les principales classes des objets d’une carte

Unecollection d’objetsest 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.

Unecoucheest 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 cartereprésente une liste de couches. Elle définit donc l’organisation des couches les unes par rapport aux autres.

Lagéométried’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éo- mé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 » :

(17)

Geometry

SimpleGeometry ComplexGeometry

Region

Boundary

MultiPoint Point

1..*

1..*

MultiLine PolyLine

1..*

1..*

MultiRegion HoleRegion

1..*

1..*

1..*

1..*

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 respec- ter 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 visuali- sation 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 sauve- gardées dans un fichier (¢<Ž.†…’b•<Ž:£…’• ), stockées dans un SGBD (B’ˆ.¡E‰.…’b•VŽk£…’• )

(18)

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 effec- tuent 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 rap- port 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 com- plexes : 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.).

(19)

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.

NMEA183

GGA GLL VGT

GPSData

GPSDecoder GPSDataConsumer<<Interface>>

0..*

0..* GPSStreamListener<<Interface>>

GPSPort 0..1 0..*

0..1 0..*

Figure 9.Les classes pour la gestion du GPS

Nous proposons l’implémentation d’un certain nombre de décodeurs, et en parti- culier 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¦ŸE…’•b” ). La requête princi- pale correspond à la requête initiale formulée par l’utilisateur ou générée par l’utilisa- teur. 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.

(20)

ObjectSet Condition

RQuery Query

11 0..*0..*

Result

AbstractQuery

1 1

0..1 11

0..1 1 1

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 don- né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 orga- nisé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 communicationviale 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éfi- nit 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).

(21)

des Donnees Gestionnaire

Gestionnaire

Gestionnaire Gestionnaire

Gestionnaire Gestionnaire

de Visualisation

(§.¨:©*ª«D¬/­.¬k®¯k° ) de la Carte («D¬±«D¬/­.¬k®¯k° )

des Requêtes (²/ª.¯k°:³«D¬­.¬k®:¯k° )

des Données

(´D¬kµ¬«D¬­.¬k®:¯k° )

de Communication (¶·¹¸k¸.«D¬­.¬®¯k° )

d’Index (º*­D»¯k¼«D¬­.¬k®:¯k° )

½2¾

½2¾

½2¿

½2¿

½ ¿ À

À

Figure 11.L’architecture modulaire de la présentation

Gestionnaire des requêtes. Ce gestionnaire effectue l’analyse des nouvelles re- quêtes vis-à-vis des requêtes déjà exécutées. Les résultats de cette analyse sont ensuite utilisés pour la prise de décision sur le lieu d’exécution des requêtes.

Gestionnaire des données. Il gère l’accès à l’ensemble des objets disponibles sur le client. Les résultats des requêtes sont sélectionnées dans ce module.

Gestionnaire de communication. e gestionnaire prend en charge la communica- tion avec les sources de données. Cette communication est effectuée à l’aide de pilotes de communication. Ses fonctionnalités consistent principalement au choix des pilotes en fonction d’une requête proposée, à l’établissement de la communication avec les sources de données et au renvoi du résultat obtenu.

Gestionnaire d’index. Le gestionnaire d’index n’est pas nécessairement inclus dans la partie présentation des données. Il gère l’index spatial des données dispo- nibles sur le client, et il permet de sélectionner les objets candidats pour le résultat des requêtes.

L’envoi de messages entre les modules s’effectue soitvial’appel d’une méthode, soitviaun mécanisme d’événements Java. Le premier cas correspond à l’appel de mé- thode classique de la programmation objet : lorsqu’un module appelle une méthode d’un autre module, le premier reste bloqué jusqu’à la fin de l’exécution de la méthode (les messagesvÂÁ dans la figure 11). Après exécution de la méthode, le premier mo- dule peut recevoir son résultat et continuer l’exécution. Ce type de dialogue (commu- nication synchrone) est maintenu entre le gestionnaire de la carte et les gestionnaires de données, des requêtes et de l’index.

(22)

Dans le deuxième cas, les modules communiquent en émettant des événements.

Un module appelle un autre module en invoquant une de ces méthodes. Cet appel n’est pas bloquant, et le premier module peut continuer son exécution (les messages

vI dans la figure 11). Lorsque le traitement du message est fini, le deuxième module envoie un événement au premier pour l’informer de la fin d’exécution du message et lui transmettre un résultat éventuel (les messages à ). Le gestionnaire de la carte dialogue de cette manière avec les gestionnaires de la visualisation et de la commu- nication. L’implémentation de ces trois modules utilise le mécanisme dethreads(flux d’exécution) du langage Java. Ces gestionnaires peuvent donc s’exécuter en parallèle dans la même application (communication asynchrone).

4.2.2. Le gestionnaire GPS

Ce gestionnaire facilite la gestion d’un GPS connecté à l’ordinateur. La gestion de l’accès au GPS, le décodage des données GPS et la sauvegarde des données dans des fichiers sont les principales fonctionnalités de ce module. Il permet aussi la simulation du fonctionnement d’un GPS à partir des données sauvegardées précédemment.

L’organisation modulaire du système diffère suivant le but recherché. L’architec- ture de la partie de présentation (d’uneapplet) suit le schéma donné dans la figure 11.

Le serveur distant est organisé de manière similaire, ayant pour différence l’absence du gestionnaire de visualisation. La mise en œuvre du serveur local est principalement basée sur le gestionnaire GPS et certaines fonctionnalités du gestionnaire de commu- nication.

5. Mise en œuvre et expérimentations

La plate-forme développée constitue une bibliothèque de modules logiciels avec des fonctionnalités prédéfinies permettant la gestion de données géoréférencées, leur transfert et leur visualisation.

Ces modules logiciels ont été utilisés à plusieurs reprises dans d’autres travaux de recherche et d’autres projets. Les structures de données ont été élaborées lors de travaux menés au laboratoire L3i sur la définition des relations d’orientation entre les objets spatiaux (Malkiet al., 2000). Elles constituaient une base pour des travaux ex- périmentaux. Ceci nous permet d’envisager l’intégration de nouvelles fonctionnalités sur le raisonnement spatial dans la bibliothèque de classes et de les proposer dans des applications futures.

Ces modules logiciels ont été utilisés pour la réalisation d’un prototype embar- qué permettant la visualisation de cartes et la localisation des véhicules (interface de l’application présentée sur les figures 12 et 13). Il permet d’étudier l’optimisation des transferts d’informations (Stockuset al., 2001) en connaissant la localisation de l’uti- lisateur.

La partie « visualisation de données » a été utilisée dans un prototype développé dans le cadre du projet européen Magic Tour Net (ESPRIT 961578). Ce projet était la

(23)

suite du projet Magic Tour (ESPRIT 8752), dont le but était le développement d’un système auteur facilitant la création d’applications multimédia dédiées au tourisme. Le projet Magic Tour Net était une extension de celui-ci vers la création de présentations touristiquesviainternet (Boursier, 1997). La composante de présentation (applet) était incluse dans ce projet pour la visualisation de données géographiques sur un site web.

Figure 12.Prototype développé sur un assistant personnel

Les classes de gestion du GPS sont utilisées dans la mise en œuvre d’une plate- forme expérimentale dans le cadre du projet européen ELCIDIS (Electric Vehicle City Distribution Systems) (ELCIDIS, 1997). Le but de ce projet est le développement d’un système de distribution des marchandises utilisant des véhicules électriques. La plate- forme expérimentale permet de suivre à l’aide d’un GPS les parcours de livraison des marchandises au centre ville de La Rochelle. Les classes GPS ont servi pour l’acqui- sition, la conversion et la sauvegarde des trajets GPS.

6. Conclusion et perspectives

Nous avons présenté les principaux aspects d’un système d’information géogra- phique mobile. Nous avons décrit son architecture générale et son organisation interne.

Le système développé a permis d’étudier les problèmes inhérents aux SIG mobiles : la limitation du transfert d’information par la réutilisation des données et les décon- nexions fréquentes. Cette étude s’est accompagnée d’une réalisation de prototypes et la participation à de nombreux projets. 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.

De nouveaux travaux ont récemment débuté au sein de l’équipe REVIM dans le domaine de l’indexation spatiale dans un contexte mobile. Actuellement, cette pro-

(24)

blématique constitue un axe principal de recherche, mais les premières expérimenta- tions ont déjà été effectuées (Chuaet al., 2001). Elles s’appuient sur la bibliothèque de structures de données et de traitement de la plate-forme présentée.

Réafficher la carte Organiser les couches

Afficher la position

Centrer la carte

autour de la position Mettre en

correspondance Afficher la page d’informations

Changer l’échelle

Le véhicule

L’échelle

Figure 13.Fonctionnalités du prototype (version fonctionnant sur PC portable).

D’autres travaux (Follinet al., 2003) sont menés pour permettre une meilleure ges- tion des problèmes de changement d’échelle. Notre objectif est d’adapter la quantité d’informations transférées à l’échelle d’utilisation des données et en permettant éga- lement une réutilisation des données fournies d’autres échelles.

Le système que nous avons développé repose sur l’utilisation d’un modèle où les données sont bien structurées sur le serveur. Nous travaillons sur des évolutions permettant une prise en compte plus souple des données en utilisant les nouveaux formats d’informations semi-structurées tel que GML (OpenGIS Consortium, 2003).

Notre expérience nous incite à penser qu’il sera nécessaire d’ajouter à ces formats des mécanismes d’indexation performants.

(25)

Ces modules logiciels ont été utilisés à plusieurs reprises dans d’autres travaux de recherche et d’autres projets. Ils constituaient une base pour des travaux expéri- mentaux. Ceci nous permet d’envisager l’intégration de nouvelles fonctionnalités sur le raisonnement spatial dans la bibliothèque des classes, et de les proposer dans des applications futures.

Remerciements

Les auteurs tiennent à remercier pour leur coopération et leur soutien financier la Communauté d’Agglomération de La Rochelle et la région Poitou-Charentes.

7. Bibliographie

Atkinson, M., Bancilhon, F., DeWitt, D., Dittrich, K., Maier, K., Zdonik, S. (1989). « The Object-Oriented Database System Manifesto ». Proceedings of the First International Conference on Deductive and Object-Oriented Databases, p. 223–240, Kyoto, Japan.

Autodesk (1997). « Autodesk MapGuide : State-of-the-art network-centric GIS application architecture for publiching and accessing geodata ». Autodesk White Paper.

Balovnev, O. T., Breunig, M., Cremers, A. B. (1997). « From GeoStore to GeoToolKit : The Second Step ». Symposium on Large Spatial Databases, p. 223–237.

Behrens, C., Shklar, L., Basu, C., Yeager, N., Au, E. (1997). « The Geospatial Interopera- bility Problem : Lessons Learned from Building the GoeLens Prototype ». International Conference on Interoperating Geographic Information Systems.

Berg, C., Tuijnman, F., Vijlbrief, T., Meijer, C., Uitermark, H., Oosterom, P. (1997). « Multi- server Internet GIS : Standardization and Practical Experiences ».International Conference on Interoperating Geographic Information Systems.

Blasby, D. (2001). « Building a Spatial Database in PostgreSQL ». Open Source Database Summit, Providence, Rhode Island.

Bouju, A., Stockus, A., Bertrand, F., Boursier, P. (1999). « Client-server Architecture for Ac- cessing Multimedia and Geographic Databases within Embedded Systems ». Proceedings of 10th International Workshop on Database and Expert Systems Applications (DEXA’99), p. 760–764, Florence, Italy.

Boursier, P. (1997). « Integration of Multimedia and GIS technologies : the Magic Tour and Magic Tour Net projects ». Proceedings:ÄYÅ European Workshop on EC-funded GIS projects (EC-GIS’97), Bruxelles, Belgique.

Buehler, K., McKee, L. (1998). « Introduction to Interoperable Geoprocessing and the OpenGIS Specification ». Open GIS Consortium Technical Committee, Third edition.

http://www.opengis.org/techno/guide.htm.

Byars, B., Clamons, S. (1998). « GRASS is back ! ».GeoWorld, 11(2) :60–67.

Chua, J., Bouju, A., Stockus, A. (2001). « Application of Spatial Indexing for Spatial Data Access in Mobile Environment ». Rapport de Stage, Université de La Rochelle, Laboratoire d’Imagerie Industrielle et d’Informatique - L3i.

Références

Documents relatifs

PHP langage spécialisé pour les applications web (utilisé en conjonction avec Apache) ; MySQL comme serveur de base de données. 5 Projet : réalisation

Cette expression « arabo-musulmane » est utilisée pour évoquer une pratique médicale, issue des théories du monde grec, qui s ’ est développée dans la culture musulmane, sans

À titre d’exemple, les firmes ont reçu a minima près de 10 milliards de dollars pour développer les candidats vaccins contre la Covid-19 : Sanofi/GlaxoSmithKline et John- son

On décompose le volume du liquide en rotation en couronnes cylindriques de rayon r, d’épaisseur dr et de hauteur z(r). Exprimer le volume dV d’une telle couronne. En supposant que

L’argu- ment est que plus de 90% des requérants d’asile provenant de pays à haute endémi- cité sont renvoyés chez eux et qu’ils n’au- ront donc pas accès à une prise en

En revanche, certaines utilisations comme le continu (streaming) nécessitent l'emploi d'un protocole plus léger et plus rapide, comme UDP (User Datagram Protocol ou protocole

• Un serveur peut répondre aux demandes de service de plusieurs clients : les requêtes arrivées et non traitées sont stockées dans une file d’attente.

– Comment casser la relation forte entre client et serveur, comment rendre le client indépendant du serveur pour l'appel.