FR 2895623 A1 20070629 FR 0513272 A 20051223 1 La présente invention concerne un procédé de répartition d'une fonction dans un réseau de pairs et une station appartenant à un tel réseau. Dans l'acception la plus commune, un réseau de pairs (Peer-to- Peer (P2P) network en anglais) se caractérise par un ensemble de stations interconnectées de façon à permettre l'échange de fichiers de telle sorte que le chargement d'un fichier par un membre du réseau se fait par téléchargement à partir d'autres stations de ce réseau. Elle concerne également une station membre de ce réseau de pairs et un produit programme pour mettre en oeuvre le procédé. L'usage de réseaux de pairs ne se limite pas au seul téléchargement. Ils sont également utilisés pour répartir des charges de calcul ou pour assurer des services de télécommunication, tels que, par exemple, des services de téléphonie sur IP comme les propose la Société Skype. Dans un réseau de pairs, l'établissement d'une connexion peut se définir par le nombre de transferts, ou sauts, qu'une demande, initialisée par un membre, doit effectuer parmi les membres du réseau pour atteindre un membre capable d'assurer une réponse à cette demande. On conçoit aisément que le réseau de pairs est d'autant plus efficace qu'une demande a moins de sauts à réaliser pour obtenir une réponse. Un des avantages d'un tel réseau est de permettre de répartir la charge liée à une demande de chargement d'un fichier à partir d'un nombre important de stations de travail au lieu d'être limité à la capacité d'un serveur comme dans un chargement FTP (File Transfer Protocol û Protocole de Transfert de Fichier). On appellera par la suite fonction un fichier d'un réseau de pairs destiné à être réparti parmi les membres du réseau pour assurer le fonctionnement du réseau. Le fichier en question peut être un fichier de données. C'est ainsi que sont en train de se développer des réseaux de téléchargement d'oeuvres multimédia protégées par DRM (Digital Rights Management û gestion numérique des droits d'auteur) pour offrir, par exemple, des services de vidéo à la demande (Video On Demand, VoD). Le fichier peut également être un fichier exécutable. Ainsi, les réseaux de téléphonie sur protocole Internet (VoIP) utilisant le protocole SIP (Session 2 Initiation Protocol û protocole d'initialisation de session) utilisent des fonctions de type Proxy SIP qui sont réparties parmi les utilisateurs et qui servent à initialiser une session de téléphonie. Dans ce cas, l'objectif visé peut ne pas être le téléchargement mais l'exécution de fichier exécutable. Or, classiquement, un réseau de pairs décentralisé n'a pas de méthode pour répartir harmonieusement une fonction. La répartition est fonction de l'historique d'utilisation de la fonction dans le réseau. Ainsi, des zones du réseau ont une densité importante de membres ayant la fonction alors que d'autres zones ont une densité faible créant ainsi des pertes d'efficacité liée à la saturation des stations détenant la fonction ou au nombre de sauts à effectuer pour l'atteindre. Le but de l'invention est donc de remédier à cet inconvénient par un mécanisme qui permette une répartition homogène de la fonction. L'objet de l'invention est un procédé de répartition d'une fonction dans 15 un réseau de pairs, comportant un paramètre prédéterminé définissant un nombre maximal de sauts, ledit procédé comporte les étapes de : - recherche de la fonction par une première station membre du réseau de pairs, auprès des autres stations membres du réseau de pairs se trouvant à au plus le paramètre prédéterminé de sauts, et 20 - si la fonction n'est disponible auprès d'aucune de ces dites stations membres se trouvant à au plus le paramètre prédéterminé de sauts, • mise à disposition de la fonction par la première station membre aux autres stations membres du réseau de pairs. L'utilisation d'un paramètre prédéterminé définissant un nombre 25 maximal de sauts permet ainsi avantageusement une répartition uniforme de la fonction et ceci, en gardant la notion de gestion décentralisée qui est au coeur de réseaux de pairs. En effet, cet effet macroscopique, au niveau du réseau, de répartition homogène de la fonction est assuré par le comportement individuel de chaque station grâce à ce paramètre, et par une analyse locale, faite par la 30 station, de son environnement. D'autres caractéristiques sont : - préalablement à l'étape de mise à disposition, le procédé comporte une étape d'acquisition de la fonction par la première station membre si la fonction n'est pas déjà stockée par la première station membre. - l'étape d'acquisition de la fonction comporte une première sous étape de recherche de la fonction par la première station membre auprès de toutes les autres stations membres du réseau, sans limitation du nombre de sauts ou de connexion de la première station membre à un serveur prédéterminé d'amorçage du réseau, puis une seconde sous étape de chargement de ladite fonction par ladite première station membre ; - lorsque la première station membre met à disposition la fonction, ladite première station membre vérifie selon un rythme aléatoire et borné qu'aucune autre station membre se trouvant à au plus le paramètre prédéterminé 10 de sauts ne met à disposition ladite fonction, et si, lors de la vérification, ladite première station membre détecte qu'une telle autre station membre met à disposition ladite fonction, alors ladite première station membre supprime la mise à disposition de la fonction ; et - ladite suppression de la mise à disposition de la fonction est effectuée 15 après un délai aléatoire et borné ; - ladite suppression de la mise à disposition de la fonction consiste à la désactiver. - le paramètre prédéterminé étant défini par un opérateur du réseau en fonction d'un objectif de densité de fonctions dans le réseau. 20 Ainsi, avantageusement, la fonction est répartie régulièrement sans surcharge du réseau. De plus, les étapes de mise à disposition ou de suppression de celle-ci s'effectuant sur des rythmes aléatoires, le risque de créer des oscillations est supprimé. 25 Avantageusement, la désactivation de la fonction permet de gérer la répartition de la fonction en minimisant les étapes de téléchargement consommatrices de temps et de bande passante. Un autre objet est une station appartenant à un réseau de pairs comportant : 30 - des moyens de communication avec des membres du réseau de pairs, des premiers moyens de stockage d'au moins une fonction, 4 - des moyens d'acquisition et des moyens de mise à disposition de ladite fonction, moyens connectés aux moyens de communication et aux moyens de stockage, -des moyens de pilotage des moyens de mise à disposition, caractérisé en ce que lesdits moyens de pilotage comportent des seconds moyens de stockage d'un paramètre prédéterminé définissant un nombre maximal de sauts et en ce qu'ils comportent en outre des moyens de recherche de la fonction auprès des autres membres du réseau de pairs se trouvant à au plus la valeur prédéterminée de sauts, et lesdits moyens de pilotage étant adaptés pour activer les moyens de recherche, puis, si le résultat de la recherche est négatif, activer les moyens de mise à disposition. D'autres caractéristiques de cet objet sont : - la station comporte en outre des moyens d'acquisition activés par les moyens de pilotage si, le résultat de la recherche étant négative, la fonction n'est pas stockée dans les premiers moyens de stockage, - les moyens d'acquisition sont adaptés pour acquérir la fonction auprès de toute station membre du réseau de pairs, sans limitation du nombre de sauts, ou auprès d'un serveur prédéterminé d'amorçage, et - les moyens de pilotage comportent des moyens de génération de délais adaptés pour activer les moyens de recherche selon un rythme aléatoire et borné, et les moyens de pilotage sont adaptés pour désactiver les moyens de mise à disposition lorsque les moyens de recherche ont trouvé que la fonction est mise à disposition par un desdits membres. Un autre objet est un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé lorsque ledit programme est exécuté sur un ordinateur faisant office de station d'un réseau de pairs. L'invention sera mieux comprise à la lecture de la description qui va suivre, faite uniquement à titre d'exemple, et en relation avec les dessins en annexe dans lesquels : - la figure 1 est une vue schématique d'un réseau de pairs ; - la figure 2 est un ordinogramme d'un procédé de répartition d'une fonction dans le réseau de pairs de la figure 1 selon un mode de réalisation de l'invention ; - la figure 3 est un ordinogramme d'une étape particulière du procédé de répartition dans le réseau de pairs de la figure 1 selon un autre mode de réalisation de l'invention ; et - la figure 4 est une vue schématique d'une station, membre du réseau de pairs de la figure 1. En référence à la figure 1, un réseau de pairs comporte un ensemble de stations SI, S2... SN interconnectées. Par exemple, la station SI, membre du réseau, est connectée aux stations S2 et S3. La connexion entre les stations St... SN est classiquement une liaison numérique du type Internet. Une station particulière, S8 par exemple, sert de serveur d'amorçage. Cette station S8 sert ainsi au gestionnaire du réseau pour introduire dans celui-ci une nouvelle fonction et donc, pour amorcer la diffusion de la fonction dans le réseau. A titre d'exemple, le serveur d'amorçage S8 peut être réalisé sous la forme d'une station du réseau de pairs classique dont l'adresse est connue de tous les membres du réseau. Le fonctionnement du réseau de pairs va maintenant être explicité en référence à figure 2. Dans une étape préliminaire 10, le gestionnaire du réseau détermine la densité objective de la fonction à diffuser dans le réseau. Par densité, on entend le nombre de sauts maximal que doit effectuer n'importe quelle station du réseau de pairs pour atteindre la fonction. Cette densité est définie par le gestionnaire de réseau S8, par exemple, en fonction des statistiques d'utilisation du service offert et des capacités moyennes d'une station à traiter des sessions simultanées. Cette densité objective est donc un paramètre prédéterminé définissant un nombre maximal de sauts. Ce paramètre est diffusé en 20 à toutes les stations SI, S2, ... SN du réseau de pairs en tant que paramètre de fonctionnement du réseau. A l'étape 30, une station membre du réseau, par exemple S3, recherche la présence de la fonction dans son voisinage, c'est-à-dire, par définition, parmi les membres du réseau de pairs se trouvant à au plus le paramètre prédéterminé de sauts. A titre d'exemple, en supposant le paramètre prédéterminé de sauts égal à 2, le voisinage de la station S3 dans le réseau de la figure 1, comporte les stations SI, S2 et S4 qui se trouvent à 1 saut de S3 et les stations S5, S6 et S7 qui se trouvent à 2 sauts de S3. La méthode de recherche utilise des techniques classiques connues de l'homme du métier comme les algorithmes de marche aléatoire ou de flooding. Si le résultat de la recherche, étape 40, est positif, c'est-à-dire que la fonction se trouve chez un membre du voisinage, alors la station conserve en 50 l'adresse de la station possédant la fonction pour une utilisation ultérieure éventuelle. Si la recherche est négative, c'est-à-dire qu'aucun membre du voisinage ne possède la fonction, et que la station n'a pas déjà stocké la fonction, alors la station lance en 60 une opération d'acquisition de la fonction. Cette opération d'acquisition de la fonction comporte une étape 70 de recherche généralisée de la fonction, c'est-à-dire une recherche sans limitation du nombre de sauts, sur l'ensemble du réseau de pairs. Alternativement, la recherche généralisée est remplacée par connexion en 80 au serveur d'amorçage S8. La fonction est alors téléchargée en 90 sur la station, puis mis à 20 disposition en 100 pour les autres membres du réseau de pairs. A partir de cet instant, la station assure la mise à disposition de la fonction pour les stations de son voisinage. Dans un mode de réalisation préféré de l'invention, figure 3, chaque station possédant et mettant à disposition la fonction F vérifie en 110 selon un 25 rythme aléatoire et borné qu'aucune autre station du voisinage ne mette également à disposition la fonction F Si la station constate q'une autre station du voisinage met la fonction F à disposition, elle exécute en 120 une opération de perte de fonctionnalité. Cela permet avantageusement de respecter la densité définie et de ne 30 pas utiliser inutilement des ressources matérielles. Cette opération de perte de fonctionnalité s'effectue, de préférence, de manière progressive. De façon préférentielle, la station ne répond plus aux nouvelles requêtes émanant de station sollicitant sa fonctionnalité mais conserve en veille la fonction F de façon à terminer proprement les services en cours. La station peut également rediriger les stations sollicitantes vers la station offrant la fonction F. Chaque station décidant indépendamment, en fonction des informations reçues de son voisinage, d'acquérir ou de perdre la fonction F, un risque existe de créer un phénomène oscillatoire d'acquisition et de perte entre deux ou plusieurs stations. Par exemple, deux stations se trouvant dans le voisinage l'une de l'autre constatent en même temps que la fonction n'est pas disponible et exécutent donc l'opération d'acquisition. Si le délai de vérification des deux stations est similaire, chacune constate qu'une autre station du voisinage met à disposition la fonction et exécute l'opération de suppression et donc la fonction F n'est plus disponible dans le voisinage de ces stations, ce qui va enclencher une nouvelle opération d'acquisition,... Pour éviter ces phénomènes oscillatoires, le délai de vérification est aléatoire à l'intérieur d'une plage de temps déterminée. Ainsi, en reprenant 15 l'exemple ci-dessus, l'une des stations détecte le doublon de la fonction avec l'autre et engage l'opération de suppression. Lorsque la seconde station lance l'opération de vérification, elle constate ainsi qu'elle est la seule à posséder la fonction pour le voisinage. Le rythme aléatoire de la vérification peut avantageusement 20 s'accompagner d'un délai également aléatoire avant l'exécution de l'opération de suppression avec le même objectif de suppression des phénomènes oscillatoires d'acquisition/suppression. Dans une variante préférée du procédé, la suppression de la fonction consiste en une simple désactivation de la fonction sans suppression physique 25 du fichier correspondant à la fonction des moyens de stockage de la station. Ainsi, l'étape d'acquisition n'est plus nécessaire, l'étape de mise à disposition consistant alors simplement à réactiver la fonctionnalité, c'est-à-dire la mise à disposition de la fonction auprès des autres membres du réseau. Cela permet avantageusement de limiter les étapes de téléchargement consommatrices de 30 temps et de bande passante. Ainsi une station appartenant à un réseau de pairs comme décrit ci-dessus comporte, figure 4, des moyens 200 de communication avec les autres membres du réseau de pairs et des moyens 210 de stockage de la fonction. Elle comporte également des moyens 220 d'acquisition et des moyens 230 de mise à disposition de cette fonction, moyens connectés aux moyens 200 de communication et aux moyens 210 de stockage, ainsi que des moyens 240 de pilotage des moyens d'acquisition et de mise à disposition. Ces moyens 240 de pilotage comportent des moyens 250 de stockage du paramètre prédéterminé définissant le nombre maximal de sauts. Ils comportent en outre des moyens 260 de recherche de la fonction auprès des autres membres du réseau de pairs se trouvant à au plus la valeur prédéterminée de sauts, c'est-à-dire dans le voisinage de la station comme expliqué ci-dessus. Ces moyens 240 de pilotage sont adaptés pour activer les moyens de recherche, puis, si le résultat de la recherche est négatif, activer les moyens d'acquisition et de mise à disposition. De plus, dans un mode préférentiel de réalisation, les moyens de pilotage comportent des moyens 270 de génération de délais adaptés pour activer les moyens de recherche selon un rythme aléatoire et borné. Et les moyens de pilotage sont adaptés pour désactiver les moyens de mise à disposition lorsque les moyens de recherche ont trouvé que la fonction est mise à disposition par un des autres membres du voisinage. On comprend que la station ainsi décrite est réalisable sous la forme d'un ordinateur de tout type commandé par les instructions de code d'un programme d'ordinateur. Et que ce programme d'ordinateur peut être stocké dans ou transmis par un support de données. Celui-ci est un support matériel de stockage, par exemple un CD-ROM, une disquette magnétique ou un disque dur, ou bien un support transmissible tel qu'un signal électrique, optique ou radioélectrique. REVENDICATIONS 1. Procédé de répartition d'une fonction dans un réseau de pairs (S2,...SN), caractérisé en ce que ledit réseau comportant un paramètre prédéterminé définissant un nombre maximal de sauts, ledit procédé comporte les étapes de : - recherche (30) de la fonction par une première station membre du réseau de pairs, auprès des autres stations membres du réseau de pairs se trouvant à au plus le paramètre prédéterminé de sauts, et - si la fonction n'est disponible (40) auprès d'aucune de ces dites 10 stations membres se trouvant à au plus le paramètre prédéterminé de sauts, • mise à disposition (100) de la fonction par la première station membre aux autres stations membres du réseau de pairs. 2. Procédé de répartition selon la revendication 1, caractérisé en ce que, préalablement à l'étape de mise à disposition (100), ledit procédé comporte 15 une étape d'acquisition (60) de ladite fonction par ladite première station membre si ladite fonction n'est pas déjà stockée par ladite première station membre. 3. Procédé de répartition selon la revendication 2, caractérisé en ce que l'étape d'acquisition de la fonction comporte une première sous étape (70) de recherche de la fonction par la première station membre auprès de toutes les 20 autres stations membres du réseau, sans limitation du nombre de sauts ou de connexion (80) de la première station membre à un serveur prédéterminé d'amorçage (58) du réseau, puis une seconde sous étape de chargement (90) de ladite fonction par ladite première station membre. 4. Procédé de répartition selon la revendication 1, 2 ou 3, caractérisé 25 en ce que lorsque la première station membre met à disposition la fonction, ladite première station membre vérifie selon un rythme aléatoire et borné qu'aucune autre station membre se trouvant à au plus le paramètre prédéterminé de sauts ne met à disposition ladite fonction, et si, lors de la vérification, ladite première station membre détecte qu'une 30 telle autre station membre met à disposition ladite fonction, alors ladite première station membre supprime la mise à disposition de la fonction. 5. Procédé de répartition selon la revendication 4, caractérisé en ce que ladite suppression de la mise à disposition de la fonction est effectuée après un délai aléatoire et borné. 10 6. Procédé de répartition selon la revendication 4 ou 5, caractérisé en ce que ladite suppression de la mise à disposition de la fonction consiste à la désactiver. 7. Procédé de répartition selon l'une quelconque des revendications précédentes, caractérisé en ce que le paramètre prédéterminé est défini par un opérateur du réseau en fonction d'un objectif de densité de fonctions dans le réseau. 8. Station appartenant à un réseau de pairs comportant : - des moyens (200) de communication avec des membres du réseau 10 de pairs, - des premiers moyens (210) de stockage d'au moins une fonction, - des moyens (230) de mise à disposition de ladite fonction, moyens connectés aux moyens de communication et aux moyens de stockage, - des moyens (240) de pilotage des moyens de mise à disposition, 15 caractérisé en ce que lesdits moyens de pilotage comportent des seconds moyens (250) de stockage d'un paramètre prédéterminé définissant un nombre maximal de sauts et en ce qu'ils comportent en outre des moyens (260) de recherche de la fonction auprès des autres membres du réseau de pairs se trouvant à au plus la valeur prédéterminée de sauts, et lesdits moyens de 20 pilotage étant adaptés pour activer les moyens de recherche, puis, si le résultat de la recherche est négatif, activer les moyens de mise à disposition. 13. Station selon la revendication 8, caractérisée en ce qu'elle comporte en outre des moyens d'acquisition (220) activés par les moyens de pilotage (240) si, le résultat de la recherche étant négative, la fonction n'est pas stockée dans 25 les premiers moyens de stockage (210). 14. Station selon la revendication 9, caractérisée en ce que les moyens d'acquisition sont adaptés pour acquérir la fonction auprès de toute station membre du réseau de pairs, sans limitation du nombre de sauts, ou auprès d'un serveur prédéterminé d'amorçage. 30 11. Station selon l'une quelconque des revendications 8 à 10, caractérisée en ce que les moyens de pilotage comportent des moyens (270) de génération de délais adaptés pour activer les moyens de recherche selon un rythme aléatoire et borné, et en ce que les moyens de pilotage sont adaptés pourdésactiver les moyens de mise à disposition lorsque les moyens de recherche ont trouvé que la fonction est mise à disposition par un desdits membres. 12. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 7 lorsque ledit programme est exécuté sur un ordinateur faisant office de station d'un réseau de pairs.