Gestion des transactions dans un environnement
L’étude de la gestion des transactions dans un environnement P2P requiert d’abord la compréhension de quelques concepts de base que nous spécifierons tout d’abord. Il s’agit particulièrement des concepts de P2P. Nous positionnerons par la suite la problématique de notre thème avant d’en venir au traitement proprement dit des transactions dans un système P2P.
Concepts de base des réseaux peer to peer
Définition du concept pair Le terme » pair à pair » fait référence à plusieurs termes apparentés tels que » poste à poste « , » égal à égal « , » peer to peer » (en anglais), ou encore les abréviations comme » P to P » ou » P2P « . Le terme » pair à pair » signifie littéralement une relation d’échange réciproque qui unit directement deux acteurs de même statut. Ce terme désigne, à l’origine sur Internet, une technologie d’échange de fichiers entre internautes permettant à deux ordinateurs de communiquer l’un avec l’autre sans passer par un serveur central qui redistribue les données. I.2. Réseaux P2P En général, un système P2P est composé d’un ensemble de mécanismes permettant la communication entre pairs, d’algorithmes pour localiser les ressources et d’une interface sur l’environnement distribué. La figure 15 décrit en détail la pile de protocoles des P2P. Notons que toutes les couches P2P sont au niveau de la couche application du modèle OSI.
Ce qu’on appelle réseaux P2P, est composé de la configuration du réseau (Overlay network) et des services P2P. a. Configuration du réseau Il est souvent représenté par un graphe direct (N, L) où N représente l’ensemble des nœuds et L les liens entre les différents nœuds. Le routage des paquets est effectué au niveau de la couche réseau du modèle OSI, cependant la décision de routage se fait au niveau de l’application. b. P2P Services Ce sont les différentes fonctionnalités fournies à la couche P2P application : comme la localisation des informations ou l’adjonction d’un nouveau nœud sur le réseau. I.2.1. Caractéristiques Les caractéristiques principales de ces types de réseaux sont : Chaque ordinateur peut prendre part au réseau : Il paye sa participation en autorisant l’accès sur une partie de ses ressources.
Les P2P non-structurés
Les réseaux P2P non-structurés ne font pas correspondre des pairs et des ressources de façon stricte, du à l’absence d’un espace commun d’identificateurs, ou tout simplement à l’absence des identificateurs au sens propre. L’algorithme de recherche est aléatoire dans le sens où la recherche d’une donnée n’a pas un but préétabli qui puisse définir sa finalisation. Les connexions entre les pairs sont aussi aléatoires, parce qu’elles sont établies par convenance ou sans aucune règle, n’ayant pas a priori de relations prédéfinies ou nécessaires entre les pairs. On distingue plusieurs types de P2P non-structurés [16] en fonction de leur mode de fonctionnement. P2P hybrides (Napster) Dans cette architecture, un index central est utilisé pour retrouver d’abord le nœud (son adresse IP et le port de communication) contenant un objet donné dans le réseau. Par la suite, la transmission des données, entre le nœud requérant et le nœud sollicité, s’effectue sans l’intervention de l’index. Un nœud, dés qu’il se connecte sur le réseau obtient l’adresse du nœud stockant l’index central. On parle d’architecture centralisée. Ce type de réseau est très sensible aux pannes et ne passe pas à l’échelle. P2P purs (Gnutella) C’est une architecture décentralisée très robuste où chaque nœud construit son propre index de ses données. Tous les nœuds sont équivalents en termes de comportement. La recherche d’une information est simple : elle s’effectue par diffusion des requêtes à travers le réseau, chaque pair exécute la requête puis la transmet à ses voisins. La diffusion des messages lors des requêtes surcharge le réseau et empêche cette architecture de passer à l’échelle.
Les nœuds avec faible bande passante sont rattachés en mode client-serveur à un super-peer (cluster). Chaque super-peer possède un index des ressources de son cluster. Cela ne va pas sans problème car il introduit de nouveau la sensibilité aux fautes : si un super- peer est en panne cela entraîne l’inaccessibilité de tous les nœuds de son cluster. Mais ce problème est facilement résolu en utilisant une redondance des super-peers qui diminue la charge agrégée des clusters et accélère les recherches.