• Aucun résultat trouvé

Gestion de la dépendance des résultats par rapport à la localisation du client

Chapitre IV Architecture logicielle pour traiter des requêtes dépendant de la

3. Description de l’architecture logicielle

3.3. Gestion de la dépendance des résultats par rapport à la localisation du client

Le traitement des requêtes RDL implique l’utilisation de plusieurs modules de l’architecture. Dans cette sous-section, nous nous focalisons surtout sur les composantes du module Transformations permettant de tenir compte de la dépendance des résultats par rapport à la localisation du client. Rappelons que les SGBD existants ne permettent pas de tenir compte de la localisation des clients mobiles et de leurs directions. En fait, ils ne permettent pas d’évaluer les opérateurs de proximité ou d’orientation tels que nous les avons définis dans le langage LDQL (cf. chapitre III). Il est donc indispensable d’ajouter des méthodes au-dessus du SGBD afin de tenir compte de ces contraintes et de permettre l’évaluation de ces opérateurs. Ces méthodes sont implantées dans le module Transformations. Ainsi, ce dernier prend comme paramètres d’entrée l’identifiant du client idCl et une requête Q exprimée dans le langage LDQL5. Ce module retourne une requête spatiale Q’ exprimée dans un langage SQL étendu et pouvant être évaluée par le SGBD utilisé (e.g. Oracle ou DB2). Selon le type de la requête RDL prise comme entrée (e.g. RDL, RDL continue, RDL avec des contraintes de temps réel), ce module retourne des informations sur ses contraintes telle que son échéance. La transformation d’une requête RDL (Q) en une requête spatiale (Q’) nécessite l’utilisation de quatre composantes du module Transformations (Figure 8) à savoir : (i)

détermination du type de requête et identification de ses contraintes, (ii) détermination de la localisation du client, (iii) dérivation des prédicats spatiaux, et (iv) réécriture de la requête. Notons

que le module Transformations s’appuie aussi sur le module Service de Localisation qui sera également présenté dans cette sous-section.

Détermination du Type de Requêtes et de ses Contraintes

Requêtes RDL

Détermination de la Localisation des Clients Mobiles

Dérivation de Prédicats Spatiaux

Réécriture des Requêtes

Requêtes spatiales Service de Localisation Méta-données Objets Cibles Module Transformations

Figure 8 : Principales composantes du module Transformations

Détermination du Type de Requête et de ses Contraintes : ce sous-module analyse

syntaxiquement une requête donnée et extrait ses différentes parties (e.g. les objets cibles, les conditions de dépendance par rapport à la localisation). Cette analyse permet d’identifier les contraintes de la requête et de déterminer son type. Par exemple, en se basant sur des méta- données permettant d’indiquer si un objet cible est mobile ou non, il est possible de savoir à

5

Dans ce chapitre nous considérons que les requêtes sont exprimées dans le langage LDQL présenté dans le précédent chapitre. Il convient de signaler que d’autres langages peuvent être utilisés. Il suffit d’adapter certaines procédures du module Transformation.

ce niveau, si le type de la requête est RDL ou RDL-ROM. Si une échéance est précisée par l’utilisateur, cette contrainte est identifiée à ce niveau et la requête est considérée comme requête RDL avec des contraintes de temps réel. La valeur de cette échéance peut être affectée à une variable globale pouvant être associée à la requête et utilisée par d’autres modules de l’architecture (e.g. le module Gestion des Contraintes de Temps Réel).

Détermination de la Localisation du Client Mobile : vu que les résultats d’une requête RDL

dépendent de la localisation du client la soumettant, la valeur de celle-ci est fixée au niveau de ce sous-module. Ce dernier s’appuie sur le Service de Localisation qui est un autre module de l’architecture permettant de retourner la localisation des clients mobiles (présenté ci-dessous). Rappelons que les conditions de proximité peuvent être relatives à la localisation future du client mobile. Dans ce cas le sous-module Détermination de la Localisation du Client Mobile a pour rôle de prédire la localisation future du client en se basant sur les informations relatives à son mouvement (e.g. vitesse, direction).

Service de Localisation : ce module prend comme entrée l’identifiant du client (idCl) et

renvoie sa localisation. Ce module permet aussi de récupérer la vitesse et la direction du client mobile si celles-ci sont demandées. Pour que notre architecture reste générique nous ne limitons pas à un système de positionnement particulier. En fait, la localisation d’un client mobile peut être déterminée par triangulation (e.g. GSM) et les informations sur la localisation peuvent être stockées dans les bases de données des opérateurs réseaux. Elles peuvent également être émises par le client mobile lui-même (e.g. un client mobile équipé d’un module GPS). Nous ne détaillons pas les techniques permettant de localiser les clients mobiles. Un état de l’art sur ces techniques est proposé dans [PS 01]. Dans notre architecture, le service de localisation est vu comme une boite noire capable de retourner la localisation du client à n’importe qu’elle étape du traitement de la requête. Comme nous l’expliquons plus loin pour tenir compte du déplacement du client après l’envoi de la requête ce module est à nouveau utilisé juste avant le transfert des résultats (par le module Vérifications et Transfert des

Résultats).

Dérivation de Prédicats Spatiaux : ce sous-module permet de dériver des prédicats spatiaux

en tenant compte des conditions de proximité et d’orientation relatives à la localisation et la direction du client mobile. La localisation déterminée par le sous-module Détermination de la

Localisation du Client Mobile ainsi que les opérateurs exprimant la proximité et l’orientation sont

pris comme paramètres d’entrée. Par exemple, lorsqu’un client cherche les objets qui se trouvent à moins de 5 km de sa position, un cercle de centre la localisation du client et de rayon 5 km est généré comme surface de sélection. Un opérateur spatial prenant comme argument cette surface peut être généré. Dans ce sous-module sont implantées des procédures permettant de choisir l’opérateur spatial à utiliser et de déterminer la forme de la surface de sélection selon les conditions d’orientation (e.g. cercle, demi-cercle) et ses paramètres (e.g. centre, rayon). Les procédures permettant de déterminer les prédicats spatiaux à partir des conditions de proximité et d’orientation sont détaillées dans le cinquième chapitre.

Réécriture de la Requête : ce sous-module permet la réécriture de la requête Q en intégrant

les prédicats spatiaux déterminés par le module Dérivation de Prédicats Spatiaux. La requête Q’ obtenue est exprimée dans un langage SQL étendu et peut être évaluée par le SGBD sous- jacent.

Dans cette sous-section, nous avons présenté les éléments du module Transformations impliqués dans la prise en compte des conditions de dépendance par rapport à la localisation.

Les procédures implantées dans les différents sous-modules sont détaillées dans le cinquième chapitre.