• Aucun résultat trouvé

Comparaison avec d’autres approches

Chapitre 5 : Evaluation des requêtes de localisation

3. Optimisation de l’évaluation des requêtes dépendantes de la localisation

3.5. Comparaison avec d’autres approches

Différentes solutions ont été proposées ces dernières années concernant l’optimisation de la

distribution de requêtes dans les réseaux P2P. Dans cette section, nous positionnons nos

travaux par rapport à ces différents travaux.

L’optimisation de la recherche d’informations dans les réseaux P2P est actuellement un

domaine de recherche très actif. En effet, le développement des applications P2P et leurs

lacunes au niveau des performances encourage nt les propositions de nouvelles solutions

optimisant à la fois les temps et les ressources alloués pour la recherche mais également les

réponses obtenues. Les solutions actuelles reposent sur différentes techniques telles que les

variations de politiques de parcours, l’utilisation de métadonnées telles que des statistiques

ou des index, l’utilisation de cache ou encore la réplication. L’objectif principal de ces

différentes techniques est de minimiser le nombre de messages transitant sur le réseau en

limitant le nombre de nœuds visités pour l’évaluation d’une requête. Ce nombre de nœuds

est donc, suivant les différentes techniques, sélectionné afin de répondre de façon optimale à

la requête émise. Limiter le nombre de nœuds visités par une requête permet de réduire le

temps de réponse et de limiter l’utilisation de la bande passante du réseau.

Nous présentons dans cette section certaines solutions basées sur une ou plusieurs des

techniques ci-dessus. Premièrement, la solution proposée par Yang et al. [YAN 01], appelée

itération sur la profondeur (iterative deepening en anglais) propose une adaptation du

parcours en largeur initialement utilisée dans le réseau Gnutella. Le principe de cette solution

est d’exécuter différents parcours en largeur d’abord en augmentant successivement les

profondeurs limites de ces parcours. La recherche est arrêtée lorsque la requête est satisfaite

ou lorsque la profondeur maximale est atteinte. Une politique de parcours P = {a, b, c}

spécifie les profondeurs successives des parcours en largeur. Les tests effectués par les

auteurs démontrent l’intérêt d’une telle méthode : celle-ci permet d’obtenir satisfaction pour

la requête tout en limitant le nombre de nœuds explorés par rapport à une recherche basée

sur un parcours en largeur d’abord classique. Cependant, les temps de réponse obtenus

demeurent très importants étant donné que la recherche peut être réitérée plusieurs fois.

Proposée également par Yang et al. [YAN 01], la technique de parcours en largeur dirigé

permet d’envoyer directement la requête à un sous-ensemble de nœuds sélectionnés afin de

recevoir de nombreuses réponses rapidement. Pour sélectionner intelligemment ce

sous-ensemble de nœuds, chaque nœud maintient localement des statistiques sur ses voisins. Dans

l’article [YAN 01], les statistiques proposées sont simples : par exemple le nombre de

résultats obtenues par chaque voisin pour les requêtes précédentes ou la latence de la

connexion avec chaque voisin. En fonction de ces statistiques, différentes heuristiques sont

développées pour sélectionner les meilleurs voisins vers qui envoyer la requête. Des

exemples de ces heuristiques sont : quels sont les nœuds voisins qui ont renvoyés le plus

grand nombre de résultats ?, quels sont les nœuds voisins qui ont les moins longues files de

messages en attente ? etc. Les expérimentations effectuées montrent que les coûts sont

largement réduits étant donné que le nombre de nœuds visités peut être fortement diminué et

la qualité des réponses obtenues ne décroît pas de façon significative par rapport à un

parcours classique.

De nombreuses solutions utilisent des métadonnées pour optimiser l’évaluation de la requête.

Des solutions telles que la stratégie des index locaux ou encore les stratégies de recherche

locale présentées dans [ADA 01] sont basées sur l’utilisation d’index sur chaque nœud.

Chaque nœud stocke localement un index du contenu d’autres nœuds présents dans le

système. Ces solutions permettent aux requêtes d’être évaluées sur une large fraction des

informations disponibles tout en limitant le nombre de nœuds réellement visités par la

requête. Cependant, ces solutions présentent différentes contraintes. Les nœuds doivent,

ainsi, accepter de stocker des informations supplémentaires sur leurs disques. De plus, les

mises à jour des index peuvent devenir coûteuses et difficiles dans un environnement

fortement dynamique.

En opposition avec les solutions basées sur l’utilisation d’index sur le contenu, Crespo et al.

[CRE 02] proposent d’utiliser des index pour définir le parcours ou le « routage sémantique»

de la requête sur les différents nœuds du système. Cette solution permet aux nœuds d’avoir

des index de taille souvent plus restreinte que pour les index de contenu étant donné qu’ils

seront proportionnels au nombre de voisins et pas aux nombres d’informations. L’index

définit, pour chaque voisin, le nombre de documents accessibles. Pour faciliter la recherche,

les différents documents sont classés par domaine. Un exemple d’index de routage est décrit

dans le tableau 5.6 : l’index décrit est l’index du nœud A. Le nœud A a deux voisins B et C.

Si nous recherchons un document sur les bases de données, le nœud A va envoyer la requête

au nœud B d’abord car il a accès à un plus grand nombre de document concernant ce sujet.

Cette solution permet de limiter les coûts de recherche d’information tout en assurant une

réponse satisfaisante. A l’inverse des solutions utilisant les index sur le contenu, la taille des

index est limitée, cependant, cette solution demande la mise en place de mécanismes de

mises à jour d’index complexes et parfois coûteux si l’environnement est très dynamique.

L’article [JOS 03] résume les différentes approches d’utilisation des métadonnées dans les

recherches P2P. Les avantages en terme de performances sont souvent démontrés cependant

l’utilisation de métadonnées issues d’autres nœuds nécessite la mise en place de mécanisme

pour maintenir la cohérence de ces métadonnées.

Nb total de docs Bases de données Réseaux Systèmes répartis

A 100 0 80 10

B 150 20 10 30

C 60 0 0 50

Tableau 5.6. Un exemple de tableau de correspondance pour le coefficient de similarité entre 2 localisations

Les solutions proposées actuellement pour optimiser la recherche dans les réseaux P2P sont

principalement dédiées aux systèmes P2P de l’Internet tels que Gnutella. Elles ont donc pour

principal objectif d’optimiser les coûts tout en maintenant la qualité des réponses obtenues.

Les coûts à optimiser au sein des systèmes P2P sont principalement les coûts liés à l’envoi

de la requête et à la réception des messages. Les solutions cherchent à minimiser l’utilisation

de la bande passante et l’utilisation de la puissance CPU des différents nœuds utilisée lors de

l’envoi et la réception des messages. Ces solutions ne considèrent pas comme une contrainte

l’espace de stockage disponible sur les différents nœuds. Or, dans les applications de

proximité, les terminaux nomades peuvent être incapable ou refuser de stocker des

informations supplémentaires telles que des métadonnées décrivant les données de ses

voisins. De plus, l’environnement dynamique des applications de proximité rend impossible

le maintien de la cohérence d’un cache ou de métadonnées.

De plus, la recherche d’informations dans les systèmes P2P se limite souvent à une

recherche de fichiers (audio par exemple). De ce fait, aucun coût d’évaluation de requête

n’est pris en compte. Dans le service de localisation ISLANDS, tout type d’informations

peut être recherché et un langage d’interrogation évolué est utilisé. L’évaluation de ces

requêtes ajoute donc un coût non négligeable dans la recherche d’informations, en particulier

si cette requête est évaluée sur des terminaux nomades.

4. Conclusion

Nous avons présenté dans ce chapitre, le modèle d’évaluation des requêtes dépendantes de la

localisation. Différentes stratégies d’évaluation ont été proposées afin d’optimiser les coûts

nécessaires à l’évaluation d’une requête dépendante de la localisation. Ces stratégies

reposent sur différents choix d’ordonnancement des différentes étapes et sur l’utilisation

d’un nœud de service. Ces stratégies ont été testées afin de déduire les coûts pour chacune

d’elles et de déduire l’environnement auquel elles s’adaptaient le mieux. Nous avons

également discuté de l’impact de la sélection de l’espace de reche rche dans ces stratégies. Il

serait intéressant de pouvoir expérimenter une application de proximité en environnement

réel afin d’en déduire certaines informations concernant le comportement des différents

utilisateurs. En effet, nous pourrions par exemple, définir la quantité moyenne

d’informations partagées, la fréquence des requêtes émises, les évolutions du nombre de

nœuds en fonction des heures de la journée, etc. Ces statistiques nous permettraient d’affiner

nos choix en terme de stratégies d’évaluation et de sélection de l’espace de recherche.

Chapitre 6