2.4 Approche StreamGlobe pour le traitement de flux
Cette partie présente le système StreamGlobe
[2]. Ce système permet de construire un réseau pair-à-pair
(P2P) faisant transiter des flux XML continus, potentiellement infinis. Ce
système doit permettre à n'importe quel utilisateur
(c'est-a-dire périphérique) de s'abonner aux différents
flux qu'il souhaite et ce, sans limitations vis-à-vis de ses
capacités. De plus, dans un souci de performances, cette partie
décrit les optimisations intégrées à StreamGlobe
pour exploiter au mieux les ressources du réseau dont il se sert,
réduire le trafic réseau et éviter sa congestion,
réduire la charge sur les pairs. Nous verrons dans une première
partie l'architecture de StreamGlobe. Puis nous verrons les optimisations
faites et leurs impacts.
2.4.1 Architecture de StreamGlobe
StreamGlobe définit deux grandes catégories de
pairs :
Ø Les Thin-Peers : ce sont des pairs ayant peu de
capacité de calculs (par exemple : téléphone cellulaire,
PDA, ...)
Ø Les Super-Peers : ce sont de pairs pouvant faire des
calculs complexes (par exemple : des serveurs, des ordinateurs personnels
fixes, ...). Ils forment le backbone du réseau.
L'architecture de StreamGlobe est découpée en
une série de couches. Le nombre de couches présent chez un pair
diffère selon sa capacité de calculs.
Il y a en tout 4 couches :
La première, la plus basse de toutes, est obligatoire
sur chaque pair. Il s'agit d'un middleware de grille nommé Globus
Toolkit (GT). Ce middleware est construit avec une approche orientée
services. Il vise les environnements dynamiques
hétérogènes à large échelle et il permet de
garantir une certaine QOS. Parmi les différents services qu'il propose,
StreamGlobe utilise principalement le mécanisme de communication
(données XML) et de services de GT. Cependant, comme il s'agit d'un
middleware de grille (chaque machine peut échangée avec n'importe
quelle autre machine du réseau), la sémantique des réseaux
P2P n'est pas respectée (chaque pair dialogue avec son entourage proche
qui forme son voisinage). C'est précisément là où
la seconde couche intervient. Cette couche est présente sur chaque pair
obligatoirement. Elle permet de recréer une topologie P2P en
recréant un voisinage entre les pairs. Il est à noter que
StreamGlobe n'impose aucune topologie P2P particulière (P2P
structuré ou non).
Les deux couches supérieures sont spécifiques au
traitement du flux de données et aux optimisations. Elles sont
optionnelles et ne sont présentes que sur les pairs possédant
suffisamment de ressources de calculs. Au-dessus de ces deux dernières
couches se trouve l'interface de StreamGlobe. Elle permet aux pairs de
s'abonner à un flux en faisant connaitre les informations qu'ils
souhaitent recevoir (sous forme de requête XQuery). Les pairs serveurs
successifs du réseau (ie. les Super-Peers) vont transformer le flux de
données selon le schéma XML transmis par le pair client. Ainsi,
le flux livré sera exactement conforme aux volontés de ce
dernier.
La seconde fonction de cette couche est l'enregistrement de
flux continus par une source. Là encore, la source transmet le
schéma XML et les données brutes (provenant majoritairement de
capteurs) pour que les Super-Peers remettent en forme le flux selon les
attentes du schéma.
Au sein de chacune des trois dernières couches (couche
réseau, traitement de flux, optimisation), une partie est
dédiée à la gestion des métadonnées. Elles
permettent par exemple de tenir les informations sur le voisinage réseau
pour la couche réseau. Pour un Super-Peers, ces
métadonnées pourront intervenir dans la construction de la
topologie de son sous réseau local, etc... Ces métadonnées
permettent le bon fonctionnement de StreamGlobe.

Figure 3 : Architecture StreamGlobe.
|