Brevet FR2857472A1 — publié le 20050114

Système de gestion distribuée des ressources informatiques et des calculs. La présente invention concerne un système de gestion distribuée des ressources informatiques et des données. La présente invention concerne 5 plus particulièrement un système de gestion de la distribution de calculs à travers un réseau informatique. Le besoin de puissance de calcul et de capacité de stockage de données, dans un système informatique, augmente continuellement, de même que la capacité de calcul. Pendant plusieurs années le calcul et le io stockage de données étaient réalisés de manière centralisée. II y a peu d'années une nouvelle approche a émergée: la distribution du calcul et du stockage de données sur tout un réseau spécifique comme, par exemple, le réseau Internet. Cette approche, appelée globalisation des ressources informatique et des données ou encore GRID, est un moyen de mettre en is commun des puissances informatiques proposées par des machines connectées à un réseau. Les méthodes et logiciels, utilisant le système de calcul par GRID, sont déjà connus. On peut comparer ce système par analogie avec les réseaux électriques: lorsqu'un besoin en puissance électrique est émis, le système de gestion de puissance électrique permet un accès au réseau électrique comprenant des centrales nucléaires, des centrales hydrauliques et autres. Dans le cas d'espèce, le réseau informatique, par exemple Internet, permet d'accéder à la puissance informatique de machines connectées à distances, nécessaires pour réaliser un calcul important, par exemple de simulation ou de modélisation. Les machines utilisées pour ces calculs par GRID sont des machines standards de bureau tels que des ordinateurs de type PC ou des stations de travail, mais aussi des machines dites machines parallèles comprenant plusieurs processeurs, permettant de traiter plusieurs tâches de manière parallèle ainsi que des clusters ou des réseaux dédiés. Les applications d'un système GRID sont désignées pour deux objectifs principaux: le partage de données et le calcul distribué. Les applications GRID de distribution de calcul ont pour objectif de partager un calcul à travers un réseau, pour construire une solution générale. s Les méthodes et logiciels de calcul par GRID, s'appliquant au calcul, sont actuellement basées sur une architecture client / serveur, dite également calcul par approche centralisée. La figure 5 représente un mode de réalisation connu de réseau informatique comprenant l'architecture client / serveur. Un client offre ses ressources de calcul à un serveur (S) qui io assure la gestion d'un calcul à grande échelle. Ce réseau comprend tout d'abord un serveur (S) connecté à des ordinateurs (PC1, PC2, PC3 et PC4) distants volontaires pour effectuer un calcul. Le serveur (S) distribue à chaque ordinateur (PC1, PC2, PC3 ou PC4) connecté, un calcul et les données appropriées à ce calcul. Les ordinateurs (PC1, PC2, PC3 et PC4) is réalisent le calcul et envoient le résultat au serveur (S). Ce dernier collecte tous les résultats pour en faire une synthèse. Il est possible de multiplier et de hiérarchiser les serveurs pour garantir la disponibilité du service de calcul comme représenté sur la figure 6. La globalisation des calculs informatique est classée en plusieurs catégories. Une des catégories concerne les familles d'applications spécialisées dans le calcul d'un problème particulier, par exemple l'analyse de l'écoute de signaux extraterrestres. Pour traiter ces signaux, le serveur (S) distribue des morceaux de signaux qui sont analysés par au moins un ordinateur (PC1, PC2, PC3 ou PC4) volontaire connecté par Internet. L'ordinateur (PC1, PC2, PC3 ou PC4) réalise l'analyse et renvoie le résultat au serveur (S). Une autre catégorie concerne la famille des protocoles et bibliothèques et intergiciels (middelware), assemblés ensemble pour aider dans le développement d'une application dédiée. Ces données étant très importantes, on ne peut pas stocker les bases de données sur chaque ordinateur volontaire. Le partage de données est réalisé aussi pour les grandes distances, dans le cas d'une entreprise sur plusieurs sites géographiques éloignés. Des inconvénients majeurs sont liés à l'approche centralisée. Un premier inconvénient est la fiabilité du système. La défaillance du serveur peut entraîner la perte des résultats ou d'une partie des données. Pour remédier à ce problème, une solution actuelle consiste à multiplier les serveurs. Ces solutions de calcul par GRID ciblent l'utilisation de machines déterminées et homogènes, par exemples: un calcul à partir d'un réseau comprenant uniquement des ordinateurs de type PC travaillant sous Windows, un calcul à partir d'un réseau comprenant uniquement des machines parallèles. Un autre inconvénient concerne les difficultés liées au déploiement du système. Les couches de logiciels à installer demandent des io compétences très fortes. Un dernier inconvénient concerne la sécurité liée aux ordinateurs volontaires par rapport au calcul demandé. Le deuxième objectif principal d'un système de calcul par GRID est le partage des données. Le but des applications GRID de partage de données est de permettre à des utilisateurs de partager ou de récupérer des données dans des formats différents à travers un réseau. Ces applications sont basées sur plusieurs éléments: la recherche de fichier, la publication de fichier, le ramassage de statistiques et bien sûr le téléchargement de fichiers. Certains projets connus utilisent une architecture de réseau dite distribuée pour réaliser un partage de données. Cette structure se compose d'ordinateurs connectés les uns aux autres de manière locale ou distante. Aucun serveur n'est présent dans le réseau. Cependant l'inconvénient actuel de cette structure est sa mise en oeuvre lourde, nécessitant de fortes compétences en informatique. La présente invention a pour but de pallier certains inconvénients de l'art antérieur en proposant un système de gestion distribuée des ressources informatiques de calcul, utilisant une approche distribuée, pouvant être appliqué sur tout type de machine et étant facilement et rapidement installé. Ce but est atteint par un système de gestion distribuée des ressources informatiques et de calculs comprenant un réseau reliant des machines actives ou inactives, le système permettant la résolution de tâches, l'ensemble des dites tâches constituant un unique problème à résoudre, une tâche étant exécutée par une des machines actives appartenant au réseau à l'aide d'un applicatif destiné au problème à résoudre, le système de l'invention est caractérisé en ce que chaque machine active et inactive du système comprend un moyen de sélection d'au moins une adresse réseau correspondant à une autre machine du système, un moyen informatique de gestion des ressources informatiques comportant entre autres, un moyen de mise à jour des informations concernant l'état des tâches, ces informations étant véhiculées à travers le réseau par le biais d'un message de communication par exemple de type jeton, et un moyen de sélection aléatoire d'une des tâches appartenant au problème à résoudre, les lo machines actives pouvant obtenir également l'applicatif et les données destinées à la résolution du problème, ledit applicatif étant des informations téléchargées lors de l'insertion dans le système. Selon une autre particularité, le moyen informatique de gestion des ressources informatique comprend un administrateur de topologies et de is communication réseau, un administrateur de gestion des tâches et un calculateur de tâches, le moyen informatique de gestion de ressources informatique étant représenté par un programme développé en langage orienté objet permettant une compatibilité du moyen informatique de gestion des ressources informatique à tout type de système d'exploitation ouvert implanté sur des machines. Selon une autre particularité, le programme orienté objet comprend différents sous-programmes dont: un sous-programme principal permettant l'appel aux autres sous-programmes, un sous programme comprenant les paramètres de communication réseau et de gestion des tâches, un sousprogramme de contrôle du réseau exécuté par l'administrateur de topologie et de communication réseau, un sous programme de mise à jour de l'état des tâches et de sélection des tâches, exécuté par l'administrateur de gestion des tâches, un sous-programme de résolution des tâches permettant également de réaliser une interface entre le moyen informatique de gestion des ressources informatique et l'applicatif dédié à la résolution spécifique des tâches appartenant à un problème précis, ledit sous programme étant réalisé par le calculateur de tâches. Selon une autre particularité, le programme orienté objet du moyen informatique de gestion des ressources informatiques est développé en langage java. io Selon une autre particularité, les machines appartenant au système informatique de gestion des ressources informatique et des données peuvent être monoprocesseur et multiprocesseur. Selon une autre particularité, les machines actives multiprocesseurs appartenant au système de gestion des ressources informatiques et des données calculent autant de tâches disponibles qu'il y a de processeurs. Selon une autre particularité, l'architecture du réseau est une architecture totalement distribuée. Selon une autre particularité, l'architecture distribuée du réseau est structurée selon une topologie virtuelle particulière telle qu'en anneau, permettant de relier une machine à deux autres machines, chaque machine ayant deux machines voisines, la communication entre les machines étant réalisée par un message de communication. Selon une autre particularité, l'architecture distribuée du réseau est structurée sans topologie virtuelle particulière, les machines susceptibles de participer au calcul se reliant les unes aux autres de manière aléatoire et s'échangeant de manière aléatoire des informations sur l'état des tâches. Selon une autre particularité, le message de communication comprend des informations sur l'état de chaque tâche du calcul. Selon une autre particularité, les tâches d'un problème sont identifiées par un numéro d'adressage et les états possibles d'une tâche sont représentés par des valeurs spécifiques, dont l'état d'une tâche disponible et l'état d'une tâche en cours pouvant chacun être représenté par une valeur négative, l'état d'une tâche calculée étant représenté par une valeur positive correspondant au résultat du calcul ou au numéro unique de l'objet contenant le résultat. Selon une autre particularité, l'installation du système de gestion distribuée des ressources informatiques et des données sur au moins une machine est réalisée par l'intermédiaire d'un moyen de mémorisation. Selon une autre particularité, le moyen de mémorisation est un moyen de stockage mobile. Selon une autre particularité, l'installation du système de gestion io distribuée des ressources informatiques et des données sur au moins une machine est réalisée par l'intermédiaire d'un moyen de téléchargement distant accessible par réseau. Selon une autre particularité, le moyen de sélection d'au moins une adresse d'une machine appartenant au système comprend un fichier is d'adresses mémorisées dont le contenu est spécifique à chaque machine appartenant au système. Selon une autre particularité, le moyen de sélection d'au moins une adresse d'une machine du système comprend un moyen de tirage d'une adresse parmi les adresses des machines du système machine, la communication s'établissant entre deux machines du système dès qu'une des deux machines répond à l'autre machine émettrice de l'appel. Selon une autre particularité, le système de gestion distribuée des ressources informatiques et des données peut être appliqué à toute plateforme informatique comprenant tout type de machine, tout type de système d'exploitation et tout type d'architecture matérielle supportant un langage orienté objet. Un autre but est atteint par un procédé utilisé par le système de gestion des ressources informatiques et des données, permettant la mise en place d'un réseau constitué d'au moins deux machines calculant les tâches destinées à la résolution d'un problème, le procédé comprend les étapes suivantes - au moins une première machine devenue active s'adresse à une deuxième machine active par un message de communication pour participer au calcul des tâches, la première machine sélectionnant la deuxième machine par un moyen de sélection dans sa mémoire des adresses des machines du système, - la deuxième machine transmet à la ou les premières machines, l'applicatif et les données destinés à la résolution du problème, à l'aide du message de communication, - la ou les premières machines sélectionnent chacune de manière io aléatoire à l'aide d'un moyen de sélection, une tâche non calculée de l'applicatif à exécuter sur la machine, - une fois la tâche calculée, la machine ayant terminée le calcul, met à jour, à l'aide d'un moyen de mise à jour, l'information sur l'état de la tâche de manière locale dans le message de communication, - une fois que toutes les tâches de l'applicatif sont calculées, les machines se déconnectent du réseau défini pour cet applicatif. Selon une autre particularité, une machine qui vient de se déconnecter du réseau dont l'applicatif a été exécuté, scrute son fichier d'adresse pour déterminer une autre machine a laquelle elle peut se connecter. D'autres particularités et avantages de la présente invention apparaîtront plus clairement à la lecture de la description ci-après, faite en référence aux dessins annexés, dans lesquels: - la figure 1 représente un schéma d'une architecture réseau, du système de calcul par GRID, ayant une structure en anneau, selon un mode 25 de réalisation de la présente invention; - la figure 2 représente le schéma de composition d'un jeton selon le mode de réalisation de la présente invention; - la figure 3 représente un schéma d'échange d'information entre deux machines lors de l'insertion d'une des deux machines dans le réseau; - la figure 4 présente le schéma d'une variante de structure réseau, selon la présente invention, réalisée de manière aléatoire; - la figure 5 représente le schéma d'un mode de réalisation connu de réseau informatique comprenant une architecture centralisée; - la figure 6 représente le schéma d'un mode de réalisation connu de réseau informatique comprenant une architecture hiérarchisée utilisant 5 plusieurs serveurs. La présente invention se base sur le principe connu du système de calcul par GRID. Ce principe est de résoudre un problème nécessitant un calcul approprié, important à réaliser, à l'aide d'un partage de puissance informatique. Pour résoudre ce problème trois étapes sont nécessaires. io Premièrement, la décomposition du problème en un ensemble de tâches. Deuxièmement, la distribution des tâches à des ordinateurs connectés de manière distante, qui proposent l'analyse d'au moins une tâche. Troisièmement, la collecte des résultats calculés par les machines connectées au réseau. La première étape concerne l'analyse d'un problème impliquant un calcul important. Cette analyse est réalisée par un utilisateur, par exemple un chercheur ou un développeur. Elle consiste à découper le calcul en segments de calcul appelés dans la suite de la description, des tâches pour une meilleure compréhension du système. La découpe doit être réalisée suivant des règles précises. Une tâche ne doit émettre aucune hypothèse concernant l'exécution d'une autre tâche. II n'y a donc aucune communication entre les tâches. Le système proposé est particulièrement adapté au cas des tâches dont le temps d'exécution ne peut être prévisible, cas des tâches dites régulières, mais il est également en mesure de gérer efficacement le cas des tâches dont le temps d'exécution est connu à l'avance ou égal entre toutes les tâches, le cas régulier. Troisièmement le même algorithme est appliqué pour calculer toutes les tâches de l'application. Ainsi, deux tâches sont distinguées par le jeu de données qu'elles traitent. Chaque tâche, une fois spécifiée, doit être identifiée par un numéro. Une fois l'analyse terminée un composant logiciel, permettant la résolution d'une de ces tâches élémentaires, est développé. Ce composant également appelé applicatif dans la suite de la description est ensuite intégré au logiciel de la présente invention, le tout étant installé sur la machine initiatrice du calcul. La présente invention concerne un système composé d'un logiciel applicable sur tout type de machine, on l'appelle également un intergiciel ( middelware en anglais). C'est un logiciel pour le calcul pair à pair. Son objectif est de distribuer à travers le réseau, toutes les tâches obtenues par la décomposition d'un problème, de résoudre chaque tâche distribuée et d'étendre, à travers le réseau, les résultats calculés de ces tâches. Ce logiciel est complètement distribué et est réalisé pour être applicable sur tout io type de réseau. Les réseaux sont basés sur différents systèmes d'exploitations, tels que windows et linux ou sur différents matériels, tels qu'un ordinateur de type PC, une machine parallèle, ou sur tout type d'architecture. Dans la présente invention toutes les topologies virtuelles sont applicables et exploitables, qu'elles soient régulières comme la topologie en anneau, en chaîne, en grille torique ou qu'elles soient récursivement construites comme la topologie hypercube, en réseau papillon ou qu'il y ait une absence de topologie virtuelle. La figure 1 présente un schéma d'une architecture réseau, du système de calcul par GRID, ayant une structure en anneau, selon un mode de réalisation de la présente invention. Cette structure est une approche distribuée. Elle comprend des machines monoprocesseur, tels que des ordinateurs (2) ou des machines multiprocesseurs à mémoire partagée (3), telles que les machines parallèles. Ces machines sont connectées les unes aux autres par une liaison distante (5) de manière à former un anneau. Chaque machine est connectée uniquement à deux autres machines, elles même connectées à une autre machine. Une fois que toutes les machines sont reliées, la structure (1) ressemble à un anneau. Le logiciel (20), de la présente invention, est installé sur toutes machines susceptibles de se connecter au réseau. Ce logiciel (20) comprend trois éléments principaux: un administrateur de topologie et de communication (200) qui permet de connaître la structure virtuelle du réseau, un administrateur de tâche (201) permettant de contrôler le choix des tâches, et un calculateur de tâche (202) i0 dédié à un problème spécifique. L'administrateur de tâches (201) peut contrôler plusieurs calculateurs de tâches (202), si tous les calculateurs de tâches (202) sont lancés sur la même machine, par exemple une machine parallèle (3). Chaque machine est propriétaire d'un jeu de données. Dans le protocole d'une architecture en anneau représentée sur la figure 1, une machine quelconque volontaire démarre, par exemple PC1, le traitement d'une tâche quelconque appartenant au calcul segmenté. La machine PC1 va choisir cette tâche de manière aléatoire. Une deuxième machine volontaire se présente, par exemple PC2, en se connectant à la lo machine PC1 de manière distante. La machine PC1 va transmettre les paramètres de l'application à PC2 permettant de créer un lien en anneau entre les deux machines. La machine PC2 va savoir q'une tâche est en cours de calcul et commence le calcul d'une autre tâche choisie également de manière aléatoire. Si une troisième machine, PC3, entre dans l'anneau, elle se connectera aux deux machines PC1 et PC2 pour former une structure en anneau. Une fois insérée dans l'anneau, une machine acquière la connaissance des différents paramètres du calcul actuel. Cette machine est capable d'installer les paramètres locaux des tâches à calculer. Pour éviter un calcul multiple de la même tâche par toutes les machines de l'anneau, l'administrateur de tâche (201) d'une machine donne au calculateur de tâche (202) un numéro, choisi de manière aléatoire, associé à une tâche. Cette tâche est connue à ce moment comme non- calculée. Chaque machine doit être capable de faire le lien entre les numéros et les données. La communication entre les machines est réalisée par un jeton (4) transmettant l'état du calcul à travers l'anneau. Le jeton (4) se promène de machine en machine et, est mis à jour localement par les machines. La machine une fois son calcul terminé et une fois que le jeton (4) est présent, analyse les informations du jeton pour connaître les tâches exécutées de façon distante, et ajoute l'information qu'elle a calculée. Quand la totalité du calcul est réalisée, l'anneau se détruit et le résultat du calcul est connu par toutes les machines. Dans le cas particulier des machines multiprocesseur, tel que MP4 (3) représentée sur la figure 1, la machine va prendre autant de tâches 2857472 Il qu'il y a de processeurs. Par exemple si la machine comprend trois processeurs la machine va traiter trois tâches. Dès que le jeton (4) arrive et que les calculs sont terminés, le jeton (4) est mis à jour par rapport aux trois résultats obtenus. Des tâches peuvent être calculées en parallèle par des s machines différentes. Ces tâches, appelées tâches répétées, sont nécessaires pour garantir un calcul asynchrone complètement distribué sans l'utilisation d'un serveur distribuant les tâches ou sans aucun ordonnateur centralisé. En utilisant cette stratégie, aucune machine ne doit attendre pour un jeton, afin de calculer une tâche. io La figure 2 représente le schéma de composition d'un jeton (4) selon le mode de réalisation de la présente invention. Le jeton (4) comporte un tableau (41) comprenant l'état de toutes les tâches (410, 411, 412). Chaque tâche est identifiée dans le jeton (4), par un numéro (40), précédemment défini lors de la phase de découpe du problème à résoudre. Ce numéro (40) is représente ici l'adresse de la tâche, qui permettra de connaître son état. Le jeton (4) contient un encodage de l'état des tâches sous forme d'objet à état unique permettant de différencier l'état de la tâche. L'état d'une tâche disponible, non-calculée, (412) prendra une valeur spécifique, dans notre exemple cette valeur est -1 . L'état, d'une tâche en cours d'exécution (411), prendra une autre valeur spécifique, dans notre exemple cette valeur est -2 . L'état, d'une tâche calculée (410), prendra la valeur correspondant au résultat du calcul ou un objet contenant le résultat. Ce résultat est représenté par un entier positif qui sera à terme un objet représentant par exemple le résultat d'un calcul de modélisation météo. L'expression objet fait ici référence à un élément d'un programme développé en langage orienté objet. Cette notion est expliquée dans la suite de la description. Un problème, lié à l'architecture en anneau du réseau, est constitué par l'évolution permanente de l'anneau au cours du calcul. Cette évolution consiste en l'ajout au réseau ou la perte dans le réseau d'une machine durant le calcul. Si une machine est défaillante, le système perd les résultats calculés par cette dernière depuis la dernière visite du jeton. Le système doit être capable de reconfigurer la topologie virtuelle, et si nécessaire, de recréer un jeton et de recalculer les tâches dont le résultat à été perdu. Une solution à ce problème est la mémorisation par chaque machine d'un ensemble de K adresses de machines présentes dans le système, K étant déterminé selon les propriétés du réseau. Il peut dons y avoir K-1 machines consécutives qui s tombent simultanément en panne. En référence à la figure 1, les machines PC1 et PC2 peuvent être en même temps défaillante. La machine MP4 du réseau doit avoir mémorisé l'adresse de la machine PC3 pour pouvoir reconstruire une structure virtuelle correcte. Lors de l'installation d'une application de calcul par GRID déjà connue io dans l'art antérieur, il est nécessaire de mettre en place une couche logicielle permettant de réaliser un lien entre les différentes machines du réseau. Cette couche logiciel est très difficile à mettre en oeuvre, elle nécessite des compétences importantes en informatique. Sur cette couche, est ensuite ajoutée l'application permettant de résoudre un problème spécifique. Dans la présente invention, la couche logicielle n'est pas utilisée. Le logiciel est transmis sur une simple clé mémoire tel qu'une disquette ou téléchargé. La configuration de l'installation est inexistante. A l'aide de cette disquette, on installe le code du logiciel sur la machine. Toutes machines susceptibles de participer au calcul et ainsi de rentrer dans le réseau, doit avoir le logiciel et connaître au moins une adresse par exemple IP, adresse Internet, d'une autre machine afin de se connecter. La figure 3 représente un schéma d'échange d'information entre deux machines. La première machine (2a), exemple PC1, présente dans le réseau contient le logiciel (20a) et sa propre adresse (21a). La première machine (2a) commençant le calcul ne connaît personne, c'est pourquoi elle comprend le logiciel (20a), l'application (22a) dédiée à un problème spécifique et les données (23a) nécessaires pour résoudre ce problème. La machine PC1 commence son calcul. Une autre machine devient disponible, par exemple PC2. Avant de se connecter à la machine PC1, la machine PC2 comprend uniquement le logiciel (20b) de la présente invention, et l'adresse de la machine PC1 (21b). La machine PC2 envoie un message à la machine PC1 pour l'informer de son intention de participer au calcul en cours. La machine destinataire PCI lui renvoie l'application (22a) et les données nécessaires au calcul (23a). Chaque machine susceptible de participer à un calcul de type GRID, selon la présente invention, comprend initialement le logiciel et, par exemple, un fichier d'adresses (21b) permettant à la machine de s'adresser à d'autres machines, quand elle est disponible. A la fin du calcul de toutes les tâches concernant un problème, une machine qui vient de se déconnecter du réseau dont l'applicatif a été exécuté, scrute son fichier d'adresse pour déterminer une autre machine a laquelle elle peut se connecter. Un autre mode de réalisation, différent du fichier d'adresse, pour converser avec une machine appartenant au réseau de la présente invention, est de réaliser un balayage d'adresse des machines connectées au réseau. Par exemple, la machine PC2 se place sur la bande de communication du réseau Internet et le logiciel s'adresse à une première machine. Si cette première machine ne répond pas, cela signifie qu'elle n'a 1s pas le logiciel. Le logiciel de la machine PC2 s'adresse alors à une autre machine et ainsi de suite. Si une des machines répond, elle a donc le logiciel. La machine PC2 est connectée à cette machine. Pour communiquer avec les machines connectées au réseau, PC2 envoie des blocs d'adresses correspondant à des machines quelconques, et attend une réponse. Dans un mode de réalisation préféré de l'invention, le logiciel du système est développé par un programme en langage orienté objet. Dans ce langage les éléments d'un programme sont considérés comme des objets pouvant se passer des messages l'un à l'autre. Chaque objet est indépendant, etpossède ses propres données et son propre code de programmation. Plus particulièrement dans la présente invention, le langage orienté objet utilisé est un langage JAVA. Ce langage permet une accessibilité du logiciel sur de multiples plates-formes comprenant tout type de machines. Par exemple, des ordinateurs avec le système d'exploitation Windows et des ordinateurs avec le système d'exploitation Linux. Ce développement peut supporter plusieurs sous programmes appelés classes. Une première classe appelée PRINCIPALE contient le programme principal d'appel aux autres classes. Une autre classe, appelée PARAM contient un jeu d'information concernant entre autres l'emplacement de la machine dans le réseau. Plus particulièrement cette classe comprend l'adresse locale d'une machine, l'adresse de la prochaine machine dans l'anneau, la table des tâches. Une classe appelée ANNEAU permet de contrôler l'état de l'anneau. Une classe, appelée JETON permet de contrôler l'état du jeton circulant dans l'anneau. Une dernière classe appelée RESOLUTION permet de résoudre les tâches. Cette dernière classe permet de faire l'interface entre l'applicatif permettant la résolution de la tâche et le logiciel de communication de la présente invention. Dès qu'une machine, par exemple PC1, démarre son exécution, le programme commence à collecter les données nécessaires à l'application. Si une machine est déjà présente sur un anneau existant, PC1 récupère les paramètres de l'exécution de l'applicatif transmis par l'autre machine. Le programme principal de la classe PRINCIPALE réalise une initialisation de 1s ses données avec les paramètres récupérés. Le programme principal fait ensuite appel à la classe PARAM et crée une unité d'exécution, appelée également objet, de la classe PARAM. Cet objet sélectionne les informations concernant la machine, telles que l'adresse locale d'un noeud, l'adresse du prochain noeud dans l'anneau et la table des tâches. La classe principale fait ensuite appel et crée des liens avec les autres classes: la classe ANNEAU correspondant à l'administration de l'anneau, la classe JETON correspondant à l'administration du jeton et à la classe RESOLUTION permettant la résolution des tâches. Le constructeur des classes demande un objet de type PARAM permettant ainsi la collaboration de différentes tâches entre elles. Chaque instance de la classe RESOLUTION crée un objet conforme à l'application en cours. Ainsi l'utilisateur peut utiliser la présente invention pour d'autres applications permettant un autre type de calcul à grande échelle. Dans une variante de réalisation de la présente invention, la structure du réseau peut avoir une absence totale de structure logique. La figure 4 présente une structure (10) réalisée de manière aléatoire. Chaque machine est connectée à une autre machine de sa connaissance de manière aléatoire. Dans cette structure le jeton est ici à marche aléatoire, il n'est pas obligé de connaître toutes les machines de la structure. Supposons que PC2 ne connaisse que PC3. PC2 envoie de temps en temps à PC3 l'équivalent d'un jeton qui contient les informations, qu'il a calculé. PC3 va mettre à jour sa liste des tâches. De la même façon PC3 connaît PC1 et la machine parallèle MP4. De temps en temps PC3 va envoyer à ces deux machines l'information de son calcul. Un phénomène stochastique se met en place garantissant une bonne couverture de l'ensemble des machines. Si une machine disparaît, ce sont uniquement les résultats calculés par cette machine qui sont perdus. Ils peuvent être reconstruis localement par une autre machine. Ce système ne comprend plus de structure. PC3 va choisir la machine avec laquelle il va converser en fonction de loi de probabilité. Suivant ces paramètres de probabilité la convergence des informations du réseau va être plus ou moins rapide. Pour tout type d'architecture réseau en anneau ou sans structure logique, une fois que le problème est résolu et que toutes les tâches sont calculées, le réseau est détruit et toutes les machines ayant participé au calcul connaissent le résultat. Afin de sécuriser l'émission des résultats, il est possible d'utiliser un système de cryptage des données, par exemple par l'intermédiaire d'un cryptage à clé publique / clé privée. Seul des machines élues pourront accéder au résultat en clair. Ces machines peuvent participer au calcul ou seulement récupérer les résultats une fois le calcul terminé. Tous les mécanismes de cryptage de données sont déjà connus, c'est pourquoi nous ne les décrirons pas en détail. II doit être évident pour les personnes versées dans l'art que la présente invention permet des modes de réalisation sous de nombreuses autres formes spécifiques sans l'éloigner du domaine d'application de l'invention comme revendiqué. Par conséquent, les présents modes de réalisation doivent être considérés à titre d'illustration, mais peuvent être modifiés dans le domaine défini par la portée des revendications jointes, et l'invention ne doit pas être limitée aux détails donnés ci- dessus. REVENDICATIONS 1. Système de gestion distribuée des ressources informatiques et de calculs comprenant un réseau reliant des machines actives ou inactives, le système permettant la résolution de tâches, l'ensemble des dites tâches constituant un unique problème à résoudre, une tâche étant exécutée par une des machines actives appartenant au réseau à l'aide d'un applicatif (22a) destiné au problème à résoudre, le système de l'invention est caractérisé en ce que chaque machine active et inactive du système comprend un moyen de sélection d'au moins une adresse réseau correspondant à une autre machine du système, un moyen informatique de gestion des ressources informatiques (20) comportant entre autres, un moyen de mise à jour des informations concernant l'état des tâches, ces informations étant véhiculées à travers le réseau par le biais d'un message de communication (4) par exemple de type jeton, et un moyen de sélection ts aléatoire d'une des tâches appartenant au problème à résoudre, les machines actives comprenant également l'applicatif (22a) et les données (23a) destinés à la résolution du problème. 2. Système de gestion distribuée des ressources informatiques et des données selon la revendication 1, caractérisé en ce que le moyen informatique de gestion des ressources informatique (20) comprend un administrateur de topologies et de communication réseau (200), un administrateur de gestion des tâches (202) et un calculateur de tâches (201), le moyen informatique de gestion de ressources informatique (20) étant représenté par un programme développé en langage orienté objet permettant une compatibilité du moyen informatique de gestion des ressources informatique à tout type de système d'exploitation ouvert implanté sur des machines. 3. Système de gestion distribuée des ressources informatiques et des données selon la revendication 1 ou 2, caractérisé en ce que le programme 30 orienté objet comprend différents sous-programmes dont: 15 un sousprogramme principal permettant l'appel aux autres sous-programmes, un sous programme comprenant les paramètres de communication réseau et de gestion des tâches, - un sous-programme de contrôle du réseau exécuté par l'administrateur de topologie et de communication réseau (200), un sous programme de mise à jour de l'état des tâches et de sélection des tâches, exécuté par l'administrateur de gestion des tâches (201), un sous-programme de résolution des tâches permettant également de réaliser une interface entre le moyen informatique de gestion des ressources informatique (20) et l'applicatif (22) dédié à la résolution spécifique des tâches appartenant à un problème précis, ledit sous programme étant réalisé par le calculateur de tâches (202). 4. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 3, caractérisé en ce que le programme orienté objet du moyen informatique de gestion des ressources 20 informatiques est développé en langage java. 5. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 4, caractérisé en ce que les machines appartenant au système informatique de gestion des ressources informatique et des données peuvent être monoprocesseur (PC1, PC2, PC3) et multiprocesseur (MP4). 6. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 5, caractérisé en ce que les machines actives multiprocesseurs (MP4) appartenant au système de gestion des ressources informatiques et des données calculent autant de 30 tâches disponibles qu'il y a de processeurs. 7. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 6, caractérisé en ce que l'architecture du réseau est une architecture totalement distribuée. 8. Système de gestion distribuée des ressources informatiques et des données selon la revendication 7, caractérisé en ce que l'architecture distribuée du réseau est structurée selon une topologie virtuelle particulière telle qu'en anneau (1), permettant de relier une machine à deux autres machines, chaque machine ayant deux machines voisines, la communication entre les machines étant réalisée par un message de communication (4). 9. Système de gestion distribuée des ressources informatiques et des données selon la revendication 7, caractérisé en ce que l'architecture distribuée du réseau est structurée sans topologie virtuelle particulière, les machines susceptibles de participer au calcul se reliant les unes aux autres de manière aléatoire et s'échangeant de manière aléatoire des informations sur l'état des tâches. 10. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 9, caractérisé en ce que le message de communication (4) comprend des informations sur l'état de chaque tâche du calcul. 11. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 10, caractérisé en ce que les tâches d'un problème sont identifiées par un numéro d'adressage et les états possibles d'une tâche sont représentés par des valeurs spécifiques, dont l'état d'une tâche disponible et l'état d'une tâche en cours pouvant être représentés par des valeurs négatives, l'état d'une tâche calculée étant représenté par une valeur positive correspondant au résultat du calcul ou un numéro unique d'objet contenant le résultat. 12. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 11, caractérisé en ce que son installation sur au moins une machine est réalisée par l'intermédiaire d'un moyen de mémorisation. 13. Système de gestion distribuée des ressources informatiques et des données selon la revendication 12, caractérisé en ce que le moyen de 5 mémorisation est un moyen de stockage mobile. 14. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 11, caractérisé en ce que son installation sur au moins une machine est réalisée par l'intermédiaire d'un moyen de téléchargement distant accessible par réseau. 15. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 14, caractérisé en ce que le moyen de sélection d'au moins une adresse d'une machine appartenant au système comprend un fichier d'adresses mémorisées dont le contenu est spécifique à chaque machine appartenant au système. 16. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 15, caractérisé en ce que le moyen de sélection d'au moins une adresse d'une machine du système comprend un moyen de tirage d'une adresse parmi les adresses des machines du système machine, la communication s'établissant entre deux machines du système dès qu'une des deux machines répond à l'autre machine émettrice de l'appel. 17. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 16, caractérisé en ce que le système peut être appliqué à toute plate-forme informatique comprenant tout type de machine, tout type de système d'exploitation et tout type d'architecture matérielle supportant un langage orienté objet. 18. Procédé utilisé par le système de gestion des ressources informatiques et des données, permettant la mise en place d'un réseau constitué d'au moins deux machines calculant les tâches destinées à la résolution d'un problème, le procédé est caractérisé en ce qu'il comprend les étapes suivantes: - au moins une première machine devenue active s'adresse à une deuxième machine active par un message de communication pour participer au calcul des tâches, la première machine sélectionnant la deuxième machine par un moyen de sélection dans sa mémoire des adresses des machines du système, - la deuxième machine transmet à la ou les premières machines, l'applicatif et les données destinés à la résolution du problème, à l'aide io du message de communication, - la ou les premières machines sélectionnent chacune de manière aléatoire à l'aide du moyen de sélection, une tâche non calculée de l'applicatif à exécuter sur la machine, - une fois la tâche calculée, la machine ayant terminée le calcul, met à jour, à l'aide d'un moyen de mise à jour, l'information sur l'état de la tâche de manière locale dans le message de communication, - une fois que toutes les tâches de l'applicatif sont calculées, les machines se déconnectent du réseau défini pour cet applicatif. 19. Procédé, utilisé par le système de gestion des ressources informatique et des données, selon la revendication 18, caractérisé en ce qu'une machine qui vient de se déconnecter du réseau dont l'applicatif a été exécuté, scrute son fichier d'adresse pour déterminer une autre machine a laquelle elle peut se connecter.