jeudi 15 mai 2008

Le peer-to-peer

Ça y est, hier midi eut lieu le dernier cours de cette année scolaire... Cela ne signifie pas pour autant que je n'ai plus de travail à faire. Au contraire, il reste toujours des examens à passer. Ce post est ainsi l'occasion de vous parler un peu de ce cours que je suivais en parallèle avec celui de programmation par contraintes : le peer-to-peer (pair à pair en français).
Qui n'a jamais entendu parler de peer-to-peer (P2P en abrégé) ? Dernièrement on a souvent désigné le P2P comme un fléau de l'Internet, causant la ruine de l'industrie du disque et du cinéma à coup de téléchargements illégaux. On a encore en tête le procès contre Napster ou Kazaa et récemment ici en Suède la tentative de fermer le site PirateBay plateforme d'échange de fichiers par BitTorrent. Permettre à des utilisateurs d'échanger des musiques et des films gratuitement, sans aucun contrôle, quelle hérésie ! On eut brulé vif des gens pour moins que ça au Moyen-Age. Le P2P, c'est la mort du droit d'auteur, du petit chanteur, du petit cinéaste. C'est jeter à la rue des orchestres entiers. Diffuser de la musique n'est plus maintenant l'apanage du disquaire, tout internaute en a maintenant le pouvoir dans les limites autorisées par sa bande passante. Le P2P est un vice, une calamité... Quelle est donc cette monstruosité sortie des profondeurs infernales de l'Internet sur laquelle nous jetons aisément l'opprobre ?
En réalité, le raisonnement consistant à dire que le P2P est la 8ème plaie d'Egypte est aussi pertinent que celui qui affirme que l'invention de la roue est la cause des accidents de la route. On a trop tendance à trouver des causes boucs émissaires, des raccourcis faciles : les 35 heures à l'origine de tous les maux en France par exemple... Mais là n'est pas le sujet. Le P2P, lui, n'a pas échappé à cette règle.
En réalité, expliquons ce qu'est réellement le P2P car trop de gens le rapprochent de l'échange illégale de fichiers sur Internet. Ce n'est pas exactement ça. En réalité, il s'agit d'un paradigme, d'une architecture d'interaction entre machines d'un réseau. L'Internet actuelle est surtout fondé sur le paradigme client-serveur. Typiquement, quand vous (le client) désirez aller sur un site Web, vous contactez une machine distante, le serveur, (comme www.google.com) qui vous retourne une page HTML que vous affichez ensuite dans votre navigateur Internet. Si vous voulez obtenir une autre page, vous recontactez ce serveur qui vous envoie à nouveau une page HTML, et ainsi de suite... Le nombre de machines impliqués dans cette conversation s'élève donc à 2: vous (le client) et le serveur...
Pour le P2P, vous n'avez pas ce type de conversation. Par exemple, quand votre ordinateur se connecte à un réseau de P2P, il ne sait pas à priori qui est à l'intérieur de ce réseau. Ainsi, vous effectuez une requête dans cette amoncellement de millions d'ordinateurs et espérez recevoir un résultat. Dans le cas, des applications P2P contreversées, ce type de requête est : "je veux britney_spears.mp3". Mais cela peut servir à un nombre incalculable d'autres choses : partager la puissance de calcul des plusieurs ordinateurs, diffuser des médias en streaming, la téléphonie sur Internet (Skype), des DNS, faire de la réplication de données...
Le principal avantage du P2P est sa possibilité de mise à l'échelle et son faible coût. Il n'est de secret pour personne que le nombre d'ordinateurs connectés à Internet croît quasi exponentiellement. Exploiter la puissance de tous ces ordinateurs connectés ensemble serait très avantageux. Au contraire, un serveur capable de répondre à des millions de requêtes en même temps coûte incroyablement cher surtout quand il tombe en panne... Pour le P2P, cela n'est plus un problème.
Cependant, le P2P est quelque chose de vraiment compliqué à mettre en oeuvre, d'où un cours à KTH... Comment par exemple synchroniser plusieurs horloges dans un réseau P2P ? Comment trouver une donnée disséminée sur un réseau sans serveur central ? Comment réagir dans un système où les ordinateurs sont susceptibles de quitter et de joindre le réseau en permanence ?... Bref, tant de questions fort intéressantes qui sont l'occasion de nombreux articles scientifiques assez faciles à comprendre, du moment qu'on lit l'anglais. C'est d'ailleurs sur ces lectures d'articles que le cours était fondé, une manière de procéder originale, mais efficace. Aussi, on eut droit à quelques travaux pratiques pour simuler le comportement de différents algorithmes de P2P... Un cours que je conseillerais à quiconque est intéressé par tout ce qui a un rapport avec les systèmes distribués.
Voilà, j'espère que ce post a un peu démystifié le peer-to-peer et fait table rase de quelques préjugés. Si vous désirez approfondir le sujet, je vous conseille l'article de wikipédia ou sinon contactez-moi.

à 10:46 | Labels: , , , |

0 comments: