WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mutualisation de requêtes XQuery sur des Flux RSS dans un environnement Pair-à-Pair

( Télécharger le fichier original )
par Mohammed Salah Benamira
Université de Versailles Saint Quentin en Yvelines - Master 2 Recherche 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

3.5 Jointure entre Flux RSS et document XML

Pour permettre plus d'opérations sur les flux RSS et de les compléter avec des données plus riches, on a ajouté l'option qui permet à un pair d'exécuter une jointure entre un flux RSS et des sources XML.

Pour mieux comprendre l'utilité de cette option, prenons l'exemple d'un utilisateur qui s'intéresse au flux RSS «voitures», et plus précisément qu'à un certains nombre de voitures.

Pour recevoir que ce qu'il veut, l'utilisateur stocke les noms des voitures qui lui intéressent dans un fichier XML et le publie dans la DHT, qu'il appelle «mes_voitures.xml», et effectue la jointure entre le flux RSS« voitures» et le document XML «mes_voitures.xml».

Exemple :

L'utilisateur s'intéresse aux voitures monospaces qui ont été publiées les 5 derniers jours (d'où la clause Temps Valide=5) :

For $i in document (`voitures')/rss/channel/item

For $j in document (`mes_voitures.xml')/voiture

Where contains($i/title, $j/nom) and contains($j/type, `Monospace')

Return $i

Temps Valide = 5 jours

3.5.1 Problèmes

Dans l'exemple précédent, on a supposé que le pair qui va exécuter la requête possède le flux RSS et le document XML.

PB1. Il se peut que le pair qui a fait la meilleure offre pour fournir le flux RSS, ne soit pas celui qui possède le document XML. En d'autres termes, le flux RSS et le document XML ne sont pas sur le même pair, ceci constitue un frein pour notre travail.

PB2. Un autre problème se pose aussi, si on regarde l'exemple ci-dessus, on va constater que pour rechercher la source `voitures', on ne dispose pas de mot clé associé c'est-à-dire d'un paramètre qui garantie une recherche pertinente de sources, on ne dispose que du chemin ($i/title).

3.5.2 Solution

Pour résoudre le premier problème, on s'est inspiré de l'approche e-commerce, en procédant à un éclatement de la requête en deux parties [3], une partie RSS et une autre XML, grâce à la DHT, on cherche les pairs qui contiennent la source RSS, ensuite ceux qui ont fait les meilleures offres, pareil pour la source XML.

Pour le second problème, on s'est contenté de publier les chemins. Ainsi, pour la requête ci- dessus, pour chercher le flux `voitures', on ne cherche que le chemin $i/title.

Pour mieux comprendre les deux solutions décrites ci-dessus, voyons cet exemple.

Exemple :

L'utilisateur s'intéresse aux voitures monospaces qui sont publiées les cinq derniers jours, mais, après la sélection des meilleures offres, il s'avère que, le flux `voiture' est localisé sur le pair P1 et le document XML `mes_voitures.xml' est localisé sur le pair P2.

For $i in document (`voitures')/rss/channel/item

For $j in document (`mes_voitures.xml')/voiture

Where contains($i/title, $j/nom) and contains($j/type, `Monospace')

Return $i

Temps valide = 5 jours

Ø Eclatement de la requête :

Q1= For $i in document (`voitures')/rss/channel/item

Where dateToday-5 <= $i/pubDate <= dateToday

Return $i

Q2= For $j in document (`mes_voitures.xml')/voiture

Where contains ($j/nom, `Monospace')

Return $j/nom

Ø Envoi des requêtes :

Envoyer Q1 P1= Résultat1

Envoyer Q2 P2= Résultat2

Ø Reconstitution du résultat final :

For $i in document (`Résultat1')/rss/channel/item

For $j in document (`Résultat2')/voiture

contains($i/title, $j/nom)

Return $i

Remarque :

Dans la requête Q2, on a effectué la restriction et la projection au plus haut niveau, pour que transitent dans le réseau que les données nécessaires, dans le but de réduire au maximum la charge du réseau [2].

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Je ne pense pas qu'un écrivain puisse avoir de profondes assises s'il n'a pas ressenti avec amertume les injustices de la société ou il vit"   Thomas Lanier dit Tennessie Williams