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

CHAPITRE 3 : NOTRE PROPOSITION

3 Notre proposition : Mutualisation des requêtes XQuery

Afin de résoudre la problématique citée dans le chapitre 1, nous avons proposé une solution qui marie les deux approches « Mutualisation des requêtes XQuery »  et « e-commerce » en s'inspirant fortement des deux approches décrites dans l'état de l'art.

3.1 Principe de la mutualisation

Le principe de la mutualisation est le suivant : un pair P calcule une requête XQuery sur un flux RSS et les autres pairs voulant calculer la même requête s'abonnent à P et récupèrent le résultat.

On veut factoriser au maximum les calculs dans le réseau pair à pair.

Avant d'aborder le principe de fonctionnement de notre proposition, voyons maintenant quelques définitions :

l Base : Ensemble de flux RSS aspirés

l Cache : Ensemble de XQueries prises en charge (calculées).

l Vue : XQuery calculée à partir du cache.

Comme le mentionne la figure ci-dessous, une requête XQuery peut être exécutée directement sur une Base si elle n'a pas été prise en charge, sinon elle peut être exécutée sur un Cache produisant une Vue

Figure 4: Exécution d'une requête XQuery

3.2 Fonctionnement de la mutualisation

Tout pair ayant exécuté une requête, doit publier les prédicats de cette requête avec un coût dans la DHT. En d'autres termes, faire savoir aux autres que cette requête a été exécutée.

Si un pair P veut exécuter une requête Q, avant d'aller chercher les sources, il doit chercher dans la DHT, s'il y a un pair qui a déjà pris en charge cette requête ou une requête semblable. les requêtes semblables [2] seront expliquées plus loin.

Ici on a 2 cas :

Ø Cas 1 : si aucun pair n'a pris en charge cette requête alors chercher les sources, en d'autres termes, trouver les meilleures bases pour calculer la requête Q.

Ø Cas 2 : si un pair P' a pris en charge la requête Q (ou une sous partie) alors :

- Si le pair P' peut accepter un nouveau client (coût intéressant proposé par P'), alors le pair P s'abonne à P' pour mutualiser la requête Q.

- Sinon chercher les sources, en d'autres termes, trouver les meilleures bases pour calculer la requête Q.

Notre originalité réside dans l'intégration du coût dans la DHT, ainsi le pair P va connaître le coût directement, sans avoir à envoyer des messages à P' pour connaître le coût.

3.3 Requête semblables (proches)

Deux requêtes sont semblables [2] ou proches, si le résultat de l'une est inclus dans l'autre

Exemple 1 :

Q1= For $i in document(`Equipe.xml')/rss/channel/item

Where contains($i/title, `Foot') and contains($i/title, `PSG')

Return $i

Q2= For $i in document(`Equipe.xml')/rss/channel/item

Where contains($i/title, `Foot') and contains($i/title, `PSG')

and contains($i/title, `2008')

Return $i

Exemple 2 :

Q1= For $i in document(`Equipe.xml')/rss/channel/item

Where contains($i/title, `Foot')

Return $i

Q2= For $i in document(`Equipe.xml')/rss/channel/item

Where contains($i/title, `Foot')

Return $i/description

Dans les deux exemples ci-dessus, le résultat de Q2 est bien inclus dans le résultat de Q1, donc pour factoriser les calculs au maximum afin de réduire la charge des pairs, si le pair P1 a pris en charge la requête Q1, et s'il y a un pair P2 qui veut exécuter Q2, il suffit que P2 s'abonne à P1, et que ce dernier exécute Q2 sur le résultat de Q1.

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








"Nous devons apprendre à vivre ensemble comme des frères sinon nous allons mourir tous ensemble comme des idiots"   Martin Luther King