Brevet FR3061391A1 — publié le 20180629

RESEAU INFORMATIQUE DE NOEUDS COMMUNIQUANT ENTRE EUX PAR MESSAGES EN PAIR A PAIR ET PROCEDE D'INTERCONNEXION ENTRE NOEUDS ASSOCIE DOMAINE DE L'INVENTION L'invention concerne le domaine des réseaux de noeuds communiquant entre eux par messages en pair à pair ainsi que le domaine des procédés d'interconnexion entre noeuds dans un réseau de noeuds communiquant entre eux par messages en pair à pair. Le réseau de noeuds considéré est par exemple une architecture de micro-services, respectivement répartis sur potentiellement plusieurs machines, n'ayant par exemple pas les mêmes adresses entre eux, ne se trouvant par exemple pas tous sur le même réseau, ne présentant entre eux par exemple pas la même capacité de calcul. De plus, chaque micro-service peut avoir un temps de vie potentiellement indéfini. Le caractère hétérogène de cette architecture de micro-services la rend plus fragile par rapport aux événements impondérables, du type panne localisée, et donc délicate à gérer. CONTEXTE DE L'INVENTION Le réseau de noeuds, pour que ses noeuds communiquent entre eux, va d'abord dans une phase initiale interconnecter les noeuds entre eux, puis va ensuite dans une phase de mise à jour au cours de la vie du réseau maintenir et adapter les interconnections entre les noeuds du réseau. Par exemple, le système de distribution de messages va faire communiquer des micro-services entre eux à travers un système de passage de messages. Pour cela, il peut utiliser une implémentation centrée sur un courtier de messages (« broker » en langue anglaise). 3061391 2 Selon un premier art antérieur, il est connu un réseau de noeuds échangeant des messages en pair à pair (« peer to peer » en langue anglaise) et un procédé d'interconnexion associé, qui sont tous deux gérés par un dispositif central d'interconnexion. Un inconvénient de ce premier art 5 antérieur est que ce dispositif central d'interconnexion constitue un maillon faible dans le réseau, un point simple de défaillance (SPF pour « single point of failure » en langue anglaise), dont une panne, même temporaire, va perturber le fonctionnement du réseau et dégrader notablement ses performances d'efficacité de transmission et de traitement de messages. 10 Par exemple, le système à base de courtier de messages peut être centralisé (comme par exemple « RabbitMQ » ou « ActiveMQ »), mais il présente une limite importante, car ce système centralisé va constituer un point simple de défaillance qui peut perturber le fonctionnement du réseau et dégrader ses capacités. 15 Selon un deuxième art antérieur, il est connu un réseau de noeuds échangeant des messages en pair à pair (« peer to peer » en langue anglaise) et un procédé d'interconnexion associé, qui sont tous deux sont totalement distribués. Un inconvénient de ce deuxième art antérieur est que la robustesse liée à ce caractère totalement distribué, en particulier dans un 20 réseau de noeuds échangeant des messages en pair à pair, devient une faiblesse dès lors que la taille des messages échangés au sein du réseau devient importante, car un gros volume d'échanges de données totalement distribué, dans un type de communication en pair à pair, va avoir tendance à saturer le réseau et donc à également dégrader ses performances d'efficacité 25 de transmission et de traitement de messages. Par exemple, le système à base de courtier de messages peut être distribué (comme par exemple « Kafka »), mais il présente une limite importante, car ce système distribué va devenir opérationnellement limité dès lors que la taille et le volume des messages qu'il devra faire passer 30 deviendront trop importants. 3061391 3 RESUME DE L'INVENTION Le but de la présente invention est de fournir un réseau de noeuds et/ou un procédé d'interconnexion palliant au moins partiellement les 5 inconvénients précités. Plus particulièrement, l'invention vise à fournir un réseau de noeuds et/ou un procédé d'interconnexion, pour lesquels un bon compromis entre robustesse de fonctionnement du réseau d'une part et efficacité de fonctionnement de ce réseau d'autre part est réalisé. 10 En effet, d'une part la robustesse de fonctionnement du réseau va permettre au réseau de noeuds de continuer à fonctionner en permettant aux noeuds de ce réseau de continuer à échanger entre eux des messages même si un composant donné, par exemple un composant central, tombe en panne, au moins pour le cas d'une panne temporaire, cas le plus fréquent. 15 D'autre part, l'efficacité de fonctionnement de ce réseau va permettre au noeud de réseau de continuer à optimiser le temps de transmission et de traitement des messages échangés, même si un composant donné, par exemple un composant central, tombe en panne, au moins pour le cas d'une panne temporaire, cas le plus fréquent. 20 Afin de réaliser ce compromis entre robustesse de fonctionnement et efficacité de fonctionnement du réseau, l'invention propose un réseau dans lequel les noeuds producteurs, d'une part gèrent eux-mêmes chacun leur liste de noeuds consommateurs, garantissant ainsi leur autonomie par rapport à un éventuel point de défaillance dans le réseau, et d'autre part optimisent 25 chacun leur liste de noeuds consommateurs en termes de temps de traitement de leurs messages produits, en supprimant, au moins temporairement de leur liste, les noeuds consommateurs trop lents à traiter les messages produits reçus de la part du noeud producteur correspondant à cette liste. A cette fin, la présente invention propose un réseau informatique de 30 noeuds communiquant entre eux par messages en pair à pair, des noeuds producteurs de message envoyant leurs messages produits vers des noeuds consommateurs de message, un noeud consommateur pouvant être 3061391 4 également un noeud producteur à un autre niveau du réseau, caractérisé en ce que chaque noeud producteur de message : choisit, parmi les noeuds enregistrés comme actifs dans le réseau, ses noeuds consommateurs pour s'interconnecter avec eux, maintient à jour la liste de ses noeuds 5 consommateurs interconnectés, gère la répartition de charge de ses messages produits vers ses noeuds consommateurs interconnectés, en fonction du temps de traitement, par ses noeuds consommateurs interconnectés, de ses messages produits, en envoyant ses messages produits surtout à ses noeuds consommateurs interconnectés à plus faible temps de 10 traitement, modifie sa liste de noeuds consommateurs interconnectés en fonction du temps de traitement, par ses noeuds consommateurs interconnectés, de ses messages produits, en supprimant de sa liste au moins temporairement ses noeuds consommateurs interconnectés trop lents. A cette fin, la présente invention propose aussi un procédé 15 d'interconnexion et de communication entre noeuds dans un réseau informatique selon l'invention. A cette fin, la présente invention propose également un procédé d'interconnexion entre noeuds dans un réseau informatique de noeuds communiquant entre eux par messages en pair à pair, des noeuds producteurs 20 de message envoyant leurs messages produits vers des noeuds consommateurs de message, un noeud consommateur pouvant être également un noeud producteur à un autre niveau du réseau, caractérisé en ce que chaque noeud producteur de message : choisit, parmi les noeuds enregistrés comme actifs dans le réseau, ses noeuds consommateurs pour 25 s'interconnecter avec eux, maintient à jour la liste de ses noeuds consommateurs interconnectés, modifie sa liste de noeuds consommateurs interconnectés en fonction du temps de traitement, par ses noeuds consommateurs, de ses messages produits, en supprimant de sa liste au moins temporairement ses noeuds consommateurs interconnectés trop lents. 30 Selon des modes de réalisation préférentiels de l'invention, le caractère très volumineux des données échangées et le caractère temps réel critique du traitement de ces données échangées rendent l'utilisation du 3061391 5 réseau de noeuds selon l'invention ainsi que le procédé d'interconnexion associé particulièrement intéressants. Selon des modes de réalisation préférentiels de l'invention, le réseau va utiliser un système de passage de messages en pair à pair qui sera auto- 5 adaptatif et à haute résilience. Ce système va permettre d'établir une communication entre micro-services à travers un canal de communication fonctionnellement identique à un bus de données, mais dont l'implémentation est basée sur une communication directe entre les micro-services eux-mêmes. Dans cette architecture, chaque micro-service est 10 responsable du maintien de la liste de ses pairs dans le réseau, ainsi que de la répartition de charge lors de la distribution des messages vers ces pairs. Ce système permet de créer des flux de données entre micro-services qui vont être capables de résister à un changement d'échelle même important, tout en gardant une résilience forte en cas de disparition de noeuds ou en cas 15 de coupure de liens de communication dans le réseau. Suivant des modes de réalisation préférés, l'invention comprend une ou plusieurs des caractéristiques suivantes qui peuvent être utilisées séparément ou en combinaison partielle entre elles ou en combinaison totale entre elles, avec l'un ou l'autre des objets de l'invention précités. 20 De préférence, les noeuds s'enregistrent comme actifs dans le réseau auprès d'un registre centralisé dans le réseau, lequel registre diffuse à au moins tous les noeuds producteurs actifs du réseau, de préférence à tous les noeuds actifs du réseau, la liste d'au moins tous les noeuds consommateurs actifs du réseau, de préférence la liste de tous les noeuds actifs du réseau. La 25 diffusion (« broadcast » en langue anglaise) est un mode de communication différent de l'échange de messages en pair à pair (« peer to peer » en langue anglaise). De préférence, ledit registre n'établit pour aucun noeud producteur particulier donné la liste de ses noeuds consommateurs interconnectés, et 30 ledit registre n'envoie à aucun noeud producteur particulier donné la liste de ses noeuds consommateurs interconnectés. 3061391 6 Un avantage est le fait, qu'une fois constitué, le réseau de noeuds devient autonome par rapport au service de registre sans lequel ce réseau peut ensuite fonctionner normalement temporairement pendant une panne de durée limitée de ce registre. 5 Par contre, le bon fonctionnement du registre au moins une partie du temps reste utile, dans la mesure où seul le registre peut signaler aux différents noeuds producteurs les changements survenus dans la topologie du réseau, permettant ainsi à ces noeuds producteurs de mettre à jour chacun leur liste de noeuds consommateurs, permettant de cette manière à chaque 10 noeud producteur de fonctionner avec une liste de noeuds consommateurs qui est optimisée en termes d'efficacité par rapport à la topologie instantanée du réseau de noeuds. Alternativement, la gestion de l'évolution de la topologie du réseau de manière distribuée au niveau de chaque noeud producteur reste possible, mais celle-ci réduirait l'efficacité de fonctionnement du réseau. 15 Ainsi, la distribution au niveau de chaque noeud producteur de la gestion de la liste de ses noeuds consommateurs d'une part associée à la gestion centralisée de la seule topologie du réseau avec sa mise à jour permanente d'autre part réalise une amélioration supplémentaire importante du compromis entre robustesse de fonctionnement et efficacité de 20 fonctionnement du réseau. De préférence, les noeuds s'enregistrent périodiquement comme actifs dans le réseau auprès du registre, dès lors qu'ils sont aptes à traiter des messages, la période d'enregistrement étant de préférence inférieure ou égale à 10 secondes, tout noeud actif qui manque au moins deux périodes 25 d'enregistrement, de préférence au moins une période d'enregistrement, est supprimé de la liste des noeuds actifs par le registre. Ainsi, même si cet enregistrement périodique est un peu fastidieux pour chaque noeud consommateur, il permet en revanche d'améliorer encore le compromis entre robustesse de fonctionnement et efficacité de fonctionnement du 30 réseau, dans la mesure où il a pour effet de supprimer temporairement tout noeud consommateur déficient, et de ne le supprimer que pendant à peu près la durée de sa déficience, à la durée d'une période d'enregistrement près. 3061391 7 De préférence, chaque noeud producteur de message peut modifier sa liste de noeuds consommateurs interconnectés en y ajoutant éventuellement un noeud consommateur nouvellement enregistré si celui-ci est apte à consommer les messages produits par ledit noeud producteur. Ainsi, chaque 5 noeud producteur peut augmenter sa liste de noeuds consommateurs en temps réel, et donc améliorer sa gestion de charge en termes de messages produits envoyés en temps réel également. De préférence, chaque noeud consommateur envoie, au moins pour certains messages reçus d'un noeud producteur, son temps de traitement de 10 ces messages ou bien un poids représentatif de son temps de traitement de ces messages, représentatif de la différence entre l'arrivée de ces messages au niveau dudit noeud consommateur et leur départ dudit noeud consommateur éventuellement après transformation, et de préférence chaque noeud producteur ajoute une requête d'évaluation de temps de 15 traitement dans tout ou partie des messages qu'il envoie à chacun de ses noeuds consommateurs interconnectés. De cette manière, chaque noeud consommateur peut mettre à jour les performances de tous les noeuds consommateurs de sa liste et adapter la gestion de charge de ses messages produits en conséquence, le tout aussi souvent qu'il veut, il lui suffit pour 20 cela de choisir la proportion de ses messages produits à laquelle il ajoute une requête d'évaluation de temps de traitement. De préférence, chaque noeud producteur de message gère la répartition de charge de ses messages produits vers ses noeuds consommateurs interconnectés, en fonction des temps de traitement ou bien des poids 25 envoyés par ses noeuds consommateurs interconnectés, envoyant plus de messages produits vers les noeuds consommateurs interconnectés dont les temps de traitement sont plus faibles ou bien les poids correspondent à des temps de traitement plus faibles. Ainsi chaque noeud producteur améliore la gestion de charge de ses messages produits, améliorant ainsi l'efficacité 30 globale de transmission des messages produits et de leur traitement dans le réseau. 3061391 8 De préférence, chaque noeud producteur calcule un poids moyen glissant au cours du temps, pour chacun de ses noeuds consommateurs interconnectés, qu'il utilise pour gérer la répartition de charge de ses messages produits vers ses noeuds consommateurs interconnectés. De cette 5 manière, le paramètre calculé est d'une part bien représentatif de la vitesse de traitement des messages produits reçus par un noeud consommateur, tout en lissant les variations ponctuelles peu représentatives de ce paramètre, diminuant les risques d'instabilité et de divergence d'asservissement en fonction des variations de ce paramètre. 10 De préférence, chaque noeud producteur charge ses noeuds consommateurs interconnectés de manière aléatoire pondérée, de sorte que la probabilité pour ses noeuds consommateurs interconnectés de recevoir un message produit par ledit noeud producteur, dépend d'un tirage aléatoire qui est pondéré par les poids desdits noeuds consommateurs interconnectés. 15 Cette gestion de charge aléatoire pondérée réalise un bon compromis entre d'une part l'utilisation équitable et répartie de tous les noeuds consommateurs disponibles, facteur d'amélioration de la robustesse de fonctionnement du réseau en évitant de surcharger des noeuds consommateurs très performants pour éviter leur effondrement facteur 20 d'instabilité dans le réseau, et d'autre part l'efficacité de fonctionnement du réseau en utilisant en priorité et plus souvent les noeuds consommateurs les plus rapides. De préférence, chaque noeud est un micro-service qui échange des messages avec au moins un autre noeud, chaque micro-service étant soit un 25 processeur qui traite des données reçues d'un noeud du réseau pour envoyer ensuite ces données traitées à un autre noeud du réseau, de préférence ledit traitement se réduisant à une seule tâche de traitement réalisée sur ces données, soit une source qui produit des données à injecter dans le réseau vers au moins un processeur, soit un puits qui exporte les données traitées 30 par au moins un processeur vers un système tiers au réseau. Ce type de réseau est particulièrement adapté à l'utilisation de l'invention, dans la 3061391 9 mesure où ses noeuds réalisent beaucoup d'opérations relativement simples sur beaucoup de données. De préférence, au moins l'un des processeurs, de préférence la majorité des processeurs, encore plus de préférence tous les processeurs, 5 filtre les données reçues et les aiguille ensuite vers différents types de noeuds dans le réseau. C'est un exemple particulièrement représentatif de réalisations d'opérations simples en grand nombre sur un gros volume de données. De préférence, un type de noeud producteur est un filtre qui sépare les 10 messages reçus en fonction d'un critère à remplir, pour les aiguiller vers trois types de noeuds consommateurs respectivement selon que ledit critère est rempli, ou pas rempli, ou peut-être rempli. Là encore voilà une opération simple, mais à réaliser très vite et un grand nombre de fois. Dans un premier mode de réalisation préférentiel, les messages sont 15 représentatifs de transactions bancaires, le critère est le caractère frauduleux ou non d'une transaction bancaire. Le caractère très volumineux des données échangées et le caractère temps réel critique du traitement de ces données échangées rendent l'utilisation du réseau de noeuds selon l'invention ainsi que le procédé d'interconnexion associé particulièrement 20 intéressants. Dans un deuxième mode de réalisation préférentiel, les messages sont représentatifs d'images filmées par des caméras de vidéosurveillance, le critère est le caractère de présence ou d'absence de risque délictuel lié au contenu d'une image filmée ou d'une séquence d'images filmées par ces 25 caméras de vidéosurveillance. Le caractère très volumineux des données échangées et le caractère temps réel critique du traitement de ces données échangées rendent l'utilisation du réseau de noeuds selon l'invention ainsi que le procédé d'interconnexion associé particulièrement intéressants. D'autres caractéristiques et avantages de l'invention apparaîtront à la 30 lecture de la description qui suit d'un mode de réalisation préféré de l'invention, donnée à titre d'exemple et en référence aux dessins annexés. 3061391 10 BREVE DESCRIPTION DES DESSINS La figure 1 représente schématiquement un exemple d'une partie de réseau selon un mode de réalisation de l'invention. 5 La figure 2 représente schématiquement un exemple d'une partie de réseau selon un mode de réalisation de l'invention. La figure 3 représente schématiquement un exemple d'une partie de réseau selon un mode de réalisation de l'invention. La figure 4 représente schématiquement un exemple d'échelle des 10 poids cumulés permettant une gestion des pois des noeuds consommateurs dans un réseau selon un mode de réalisation de l'invention. DESCRIPTION DETAILLEE DE L'INVENTION 15 La figure 1 représente schématiquement un exemple d'une partie de réseau selon un mode de réalisation de l'invention. Le réseau 6 comprend des noeuds producteurs 1 et des noeuds consommateurs 2. Dans le réseau 6 sont représentés les noeuds A, B, C et D. Ici, le noeud A est un noeud producteur 1. Le noeud B est un noeud 20 consommateur 2 au niveau de la liaison entre les noeuds A et B dans le réseau 6, tandis que ce même noeud B est un noeud producteur 1 au niveau de la liaison entre les noeuds B et C dans le réseau 6 tout comme au niveau de la liaison entre les noeuds B et D dans le réseau 6. Le noeud B est un noeud producteur 1 ou bien un noeud consommateur 2, selon le niveau du 25 réseau 6 considéré. En revanche ici, le noeud A n'est qu'un noeud producteur 1, tandis que les noeuds C et D ne sont que des noeuds consommateurs 2. Un registre 3 diffuse vers tous les noeuds A, B, C et D du réseau 6, initialement la topologie d'origine du réseau 6, puis chaque mise à jour de cette topologie au cours de la vie du réseau 6. Au niveau de la liaison entre 30 les noeuds A et B dans le réseau 6, les messages produits par le noeud producteur A vont vers le noeud consommateur B et ne circulent que dans ce sens, pour être consommés par le noeud consommateur B. Au niveau de la 3061391 11 liaison entre les noeuds B et C dans le réseau 6, les messages produits par le noeud producteur B vont vers le noeud consommateur C et ne circulent que dans ce sens, pour être consommés par le noeud consommateur C. Au niveau de la liaison entre les noeuds B et D dans le réseau 6, les messages produits 5 par le noeud producteur B vont vers le noeud consommateur D et ne circulent que dans ce sens, pour être consommés par le noeud consommateur D. Chaque noeud producteur 1 maintient une liste des noeuds consommateurs 2 à qui il peut avoir à transmettre des messages dans le cadre du flux auquel il appartient. Dans le flux de la figure 1, le noeud A 10 connaît le noeud B auquel il transmet les messages qu'il produit. Le noeud B connaît les noeuds C et D auxquels il transmet les messages qu'il produit, chaque message étant envoyé soit au noeud C soit au noeud D. Cette liste de noeuds consommateurs 2 est initialisée par une requête à un registre 3 auquel s'inscrit chaque noeud producteur 1 ou consommateur 2 15 à son instanciation. Ce registre 3 n'est utile que lorsqu'un changement intervient dans la topologie des noeuds. Ainsi, si le registre 3 disparaît, par exemple s'il est détérioré ou si son lien avec le réseau 6 devient inopérant, le fonctionnement du flux représenté à la figure 1 n'est pas impacté. Chaque noeud producteur 1 ou consommateur 2 s'inscrit, à son 20 instanciation, dans le registre 3. Il enverra par la suite une nouvelle requête d'enregistrement à intervalle régulier, par exemple toutes les 5 ou 10 secondes, auprès du registre 3. De cette manière, si le registre 3 devient défaillant, ce noeud 1 ou 2 recevra rapidement la topologie complète du réseau 6 de noeuds lors de la ré-instanciation de ce registre 3. 25 La figure 2 représente schématiquement un exemple d'une partie de réseau selon un mode de réalisation de l'invention. La partie du réseau 6 est d'abord montrée à un temps TO et ensuite à un temps Ti. A un temps TO, le noeud A est interconnecté avec le noeud B et le noeud B est interconnecté avec le noeud C. Le noeud A envoie des messages 30 vers le noeud B qui envoie des messages vers le noeud C. Ensuite, le registre 3 diffuse l'information que le noeud D s'est enregistré auprès de lui. Ni le noeud A, ni le noeud C, ne s'interconnectent 3061391 12 avec le noeud D. En revanche le noeud B s'interconnecte avec le noeud D. Au temps Ti, le noeud A est interconnecté avec le noeud B et le noeud B est interconnecté avec les noeuds C et D. Le noeud A envoie des messages vers le noeud B qui envoie des messages vers soit le noeud C soit le noeud D. 5 Le registre 3 a pour rôle d'émettre tous les événements qu'il traite en diffusion à tous les noeuds 1 et 2 du réseau 6 qu'il connait. Ainsi, lorsqu'un nouveau noeud 1 ou 2 se déclare, tous les autres noeuds 1 ou 2 en sont informés et les noeuds producteurs 1 choisissent de s'y connecter selon que ce nouveau noeud fait partie de leur flux ou pas. 10 Sur la figure 2, par exemple au temps Ti, le noeud D se déclare, le registre 3 diffuse l'information. Le noeud A ne se connecte pas au noeud D, le noeud B se connecte au noeud D car le noeud D fait partie du type de service compris dans son flux. Chaque noeud consommateur 2 maintient le temps de réponse médian 15 sur une fenêtre glissante de N envois de messages, qui est appelée Tmed. Lors de l'envoi d'un message vers un noeud consommateur 2, si ce noeud consommateur 2 cible n'a pas répondu au bout de 2*Tmed, la requête est abandonnée. Cette requête sera immédiatement réémise dans les mêmes conditions. Au bout d'un certain nombre de telles réémissions, par exemple 20 au bout de 2 ou 3 réémissions, l'envoi du message est considéré comme échoué et le noeud consommateur 2 cible est retiré de la liste de noeuds consommateurs 2 cibles du noeud producteur 1 ayant tenté de manière infructueuse de lui envoyer des messages. Ce mode opératoire permet d'éliminer rapidement les noeuds consommateurs 2 dont le temps de réponse 25 devient anormalement élevé. Ces noeuds consommateurs 2 supprimés vont pouvoir par la suite se réenregistrer auprès du registre 3, lorsqu'ils seront redevenus opérationnels et qu'ils pourront à nouveau garantir un temps raisonnable de traitement des messages reçus de la part des noeuds producteurs 1. Le registre 3 va diffuser cette information qui sera à son tour 30 interceptée par le noeud producteur 1 qui est émetteur de messages. Ce mécanisme permet donc d'exclure temporairement les noeuds 3061391 13 consommateurs 2 défaillants ou soudainement trop lents, avant de les réintégrer dans le flux, une fois qu'ils sont redevenus opérationnels. Dans un réseau 6 de type architecture de micro-services organisés en flux et communiquant entre eux de sorte que chaque micro-service 5 producteur de messages gère sa propre liste de micro-services consommateurs de messages, la perte, au moins temporaire, du registre 3 n'a pas d'impact sur le fonctionnement du réseau 6. Le registre 3 sert à distribuer la connaissance de la topologie des micro-services, mais une fois celle-ci acquise, le réseau 6 devient autonome pour son fonctionnement, et 10 n'a à nouveau besoin du registre 3 que lors d'un changement de topologie du réseau 6. La figure 3 représente schématiquement un exemple d'une partie de réseau selon un mode de réalisation de l'invention. Le réseau 6 comprend des noeuds producteurs 1 et des noeuds 15 consommateurs 2. Dans le réseau 6 sont représentés les noeuds Pl, P2, Cl, C2 et C3. Ici, les noeuds Pl et P2 sont des noeuds producteurs 1, au niveau de liaisons considérées. Ici les noeuds Cl, C2 et C3, sont des noeuds consommateurs 2, au niveau de liaisons considérées. Un registre 3 diffuse vers tous les noeuds Pl, P2, Cl, C2 et C3 du 20 réseau 6, initialement la topologie d'origine du réseau 6, puis chaque mise à jour de cette topologie au cours de la vie du réseau 6. Les messages produits par le noeud producteur Pl vont vers les noeuds consommateurs Cl et C2, et ne circulent que dans ce sens, pour être consommés par les noeuds consommateurs Cl et C2. Les messages produits 25 par le noeud producteur P2 vont vers les noeuds consommateurs Cl, C2 et C3, et ne circulent que dans ce sens, pour être consommés par les noeuds consommateurs Cl, C2 et C3. Sur une telle architecture possédant N noeuds producteurs 1, c'est-à-dire envoyant des messages, ainsi que M noeuds consommateurs 2, c'est-à- 30 dire recevant ces messages, il est utile de répartir intelligemment la charge de travail entre les différents noeuds. La répartition de charge est une technique utilisée par les réseaux de taille importante afin d'équilibrer la 3061391 14 sollicitation des serveurs. Le réseau 6 selon l'invention a mis en place une répartition dynamique, intelligente et adaptative des charges. Chaque noeud producteur 1, par exemple un micro-service producteur 1, possède un module de répartition de charge qui se greffe au niveau de son 5 interface de sortie et qui communique avec l'interface d'entrée de chacun des noeuds consommateurs 2 de sa liste, par exemple des micro-services consommateurs 2. Chacun des N noeuds producteurs 1 connaît sa liste de noeuds consommateurs 2 parmi les M noeuds consommateurs 2, tous les M noeuds consommateurs 2 possédant à l'initialisation un poids identique, par 10 exemple de valeur 1. Toutes les q secondes, par exemple toutes les 5 secondes, chaque noeud producteur 1 va placer, à l'intérieur de certains de ses messages produits et envoyés, un entête spécifiant une demande d'évaluation du temps de traitement pour le message considéré. Ainsi les noeuds 15 consommateurs 2 auront des poids qui sont dynamiques car ceux-ci sont recalculés régulièrement. Chaque noeud consommateur 2 possède une file d'attente de messages à traiter, ainsi qu'une fonction de traitement qui consomme ces messages les uns après les autres. 20 Dès qu'un message intégrant une demande d'évaluation de temps de traitement est inséré dans la queue, on lui étiquette son heure système d'arrivée, et dès qu'il sortira de la fonction de traitement, on lui étiquettera son heure système de départ, la différence entre cette heure système de départ et cette heure système d'arrivée correspondant au temps de traitement 25 du message par ce noeud consommateur 2. En guise de message d'acquittement, le noeud consommateur 2 répond au noeud producteur 1 ayant envoyé le message traité, en lui renvoyant préférentiellement un paramètre représentatif de la différence entre son temps de départ et son temps d'arrivée, par exemple un poids, ou bien 30 alternativement, le temps de traitement lui-même. Ici, de cette différence, est généré un poids proportionnel à la vitesse d'exécution du noeud consommateur 2. 3061391 15 Soit le poids d'un noeud consommateur i: 1 Wi ti.arrivee - ti.depart ce qui correspond à la formule (1). Ce poids est mis à jour dans la table des noeuds consommateurs du noeud producteur concerné. Chaque noeud producteur récolte 5 indépendamment les informations de charge de chaque noeud consommateur. Chaque noeud producteur maintient donc sa propre table de poids de noeuds consommateurs qui peut donc être différente de celle des autres noeuds producteurs. Afin d'obtenir un poids précis, l'invention utilise préférentiellement la 10 notion de poids moyen glissant, défini par la moyenne des poids sur une fenêtre de temps Ô, définissant un nombre d'itérations permettant de calculer une moyenne glissante, donné pour un noeud consommateur en particulier : bi : { Wio, Wil, Wi2, - - - , Win } ce qui correspond à la formule (2). Soit le poids moyen glissant du consommateur i, noté Wigliss, pour un 15 ensemble de mesures de taille n: n-1 1 Wigliss = -n * Wii et Wigliss = 1 pour n = 0 i= 0 ce qui correspond à la formule (3). Ce poids glissant sert à pondérer le tirage aléatoire qui sert à choisir le noeud consommateur destinataire du prochain message. La pondération se fait par comparaison de la valeur tirée avec une 20 échelle sur laquelle sont positionnés les noeuds consommateurs en fonction de leur poids. Cette échelle va de 0 à la valeur de la somme des Wigliss. La valeur de chaque borne de l'échelle est calculée en fonction des valeurs cumulées des bornes précédentes. 25 Avec N le nombre de noeuds consommateurs : Pour i de 0 à N - 1: Borne i = Bornei_i + Wigliss et Borne° = 0 3061391 16 Par exemple, si l'on reprend la partie de réseau de la figure 3, on obtient le calcul suivant. Après initialisation du réseau, les noeuds producteurs Pl et P2 ont tous les deux la même table de poids : TABLE 1 Pl P2 Cl 1 1 C2 1 1 C3 1 1 Lors d'une première itération, les poids sont cumulés sur une échelle, et l'on obtient la table 2. TABLE 2 Cl C2 C3 Pl 0 1 2 3 P2 0 1 2 3 Pour l'envoi de leur prochain message, les noeuds producteurs Pl et P2 tirent une valeur entre 0 et 3. Si cette valeur vaut entre 0 et 1, le prochain 15 message sera envoyé au noeud consommateur Cl, si la valeur est entre 1 et 2, le message sera envoyé au noeud consommateur C2, si la valeur est entre 2 et 3, le message sera envoyé au noeud consommateur C3. Par convention, si la valeur vaut exactement 1, elle sera envoyée au noeud consommateur Cl, et si la valeur vaut exactement 2, elle sera envoyée au noeud 20 consommateur C2. Considérons par exemple, comme valeur de tirage 1.5 pour le noeud producteur Pl et 2.2 pour le noeud producteur P2. Le noeud producteur Pl envoie donc son message au noeud consommateur C2, tandis que le noeud producteur P2 envoie son message au noeud consommateur C3. 5 10 3061391 17 Le noeud consommateur C2 répond en 5 secondes au noeud producteur Pl et le noeud consommateur C3 répond en 2 secondes au noeud producteur P2. En appliquant les formules (1), (2) et (3) présentées ci-dessus, on 5 obtient pour le noeud producteur Pl : 1 1 Wc2 0 = = = 0.2 ti.arrivee ti.depart 5 6c2 0.21 1 WagliSS = 1* W20 * c2 0 - 0-2 et pour le noeud producteur P2: 1 1 Wc3 0 = = = 0.5 ti.arrivee ti.depart 2 6c3 { 0.5 } 1 Wc3gliss = W30 - 0-5 - * 1 Les noeuds producteurs Pl et P2 ont maintenant des poids différents pour chacun des noeuds consommateurs Cl, C2 et C3, ce qui donne la table 3. TABLE 3 Pl P2 Cl 1 1 C2 0.2 1 C3 1 0.5 Lors d'une deuxième itération, les poids sont cumulés sur une échelle qui est mise à jour, et l'on obtient la table 4. TABLE 4 Cl C2 C3 Pl 0 1 1.2 2.2 P2 0 1 2 2.5 10 15 3061391 18 Le nouveau tirage aléatoire donne une valeur de 1.1 pour le noeud producteur Pl et une valeur 0.3 pour le noeud producteur P2. 5 Le noeud producteur Pl envoie donc son message au noeud consommateur C2 et le noeud producteur P2 envoie son message au noeud consommateur Ci. Le noeud consommateur C2 répond au noeud producteur Pl en 2secondes et le noeud consommateur Ci répond au noeud producteur P2 en 10 10 secondes. En appliquant de nouveau les formules (1), (2) et (3) pour le noeud producteur Pl, on obtient : Wc2 1 = 1 1 = = 0.5 2 ti.arrivee ti.depart 6c2 { 0.2, 0.5 } 1 Wc2 gliss = -2 * (Wc2 o + Wc2 1) = 0.35 et pour le noeud producteur P2, on obtient : 1 1 Wci o = = - = 0.1 ti.arrivee ti.depart 10 0.11 1 Wcigliss = * Wci o =0.1 Les noeuds producteurs Pl et P2 ont maintenant des poids à nouveau 15 modifiés pour les noeuds consommateurs Ci, C2 et C3, ce qui donne la table 5. TABLE 5 Pl P2 Cl 1 0.1 C2 0.35 1 C3 1 0.5 3061391 19 Lors d'une troisième itération, les poids sont cumulés sur une échelle qui est mise à jour, et l'on obtient la table 6. TABLE 6 Cl C2 C3 Pl 0 1 1.35 2.35 P2 0 0.1 1.1 1.6 5 Ainsi, les poids finaux pour les noeuds consommateurs Cl à C3 sont des poids moyens glissants dynamiques. La figure 4 représente schématiquement un exemple d'échelle des poids cumulés permettant une gestion des pois des noeuds consommateurs 10 dans un réseau selon un mode de réalisation de l'invention. L'échelle des poids cumulés représente les trois noeuds consommateurs Cl, C2 et C3 au temps tO dans un arbre, chaque noeud consommateur étant représenté par une feuille 4 comprenant le nom du noeud et la valeur de son poids 15 L'échelle des poids cumulés représente les trois noeuds consommateurs Cl, C2 et C3 au temps tl dans le même arbre, chaque noeud consommateur étant représenté par une feuille 5 comprenant le nom du noeud et la valeur de son poids laquelle a éventuellement été modifiée. L'échelle de poids cumulés est stockée sous forme de tableau à poids 20 cumulés via un arbre d'intervalles (« range tree » en langue anglaise), ce qui apporte une complexité moyenne avec cette technique en 0(log(n)). Les feuilles de l'arbre correspondent aux bornes des intervalles. La structure en arbre permet d'accéder aux valeurs dans un intervalle donné rapidement et recalculer les poids implique des algorithmes connus. 25 On voit, pour les noeuds Cl, C2, C3, les bornes des intervalles qui sont respectivement 1 / 2 / 3, au temps tO, et 1 / 1,2 / 2,2 au temps tl. Cette structure de données en arbre stockant cette échelle de poids cumulés permet, non seulement de répondre fonctionnellement à la problématique de stockage d'une échelle de valeurs, mais aussi elle présente 3061391 20 un avantage supplémentaire utile qui est de présenter de très bonnes performances d'accès et de modification aux valeurs qui y sont stockées. Bien entendu, la présente invention n'est pas limitée aux exemples et au mode de réalisation décrits et représentés, mais elle est susceptible de 5 nombreuses variantes accessibles à l'homme de l'art. REVENDICATIONS1. Réseau informatique de noeuds (1, 2) communiquant entre eux par messages en pair à pair, des noeuds producteurs (1) de message envoyant leurs messages produits vers des noeuds consommateurs (2) de message, un noeud consommateur (2) pouvant être également un noeud producteur (1) à un autre niveau du réseau (6), caractérisé en ce que chaque noeud producteur (1) de message : > choisit, parmi les noeuds (1, 2) enregistrés comme actifs dans le réseau, ses noeuds consommateurs (2) pour s'interconnecter avec eux, > maintient à jour la liste de ses noeuds consommateurs (2) interconnectés, > gère la répartition de charge de ses messages produits vers ses noeuds consommateurs (2) interconnectés, en fonction du temps de traitement, par ses noeuds consommateurs (2) interconnectés, de ses messages produits, en envoyant ses messages produits surtout à ses noeuds consommateurs (2) interconnectés à plus faible temps de traitement, > modifie sa liste de noeuds consommateurs (2) interconnectés en fonction du temps de traitement, par ses noeuds consommateurs (2) interconnectés, de ses messages produits, en supprimant de sa liste au moins temporairement ses noeuds consommateurs (2) interconnectés trop lents. 2. Réseau informatique selon la revendication 1, caractérisé en ce que les noeuds (1, 2) s'enregistrent comme actifs dans le réseau auprès d'un registre (3) centralisé dans le réseau (6), lequel registre diffuse à au moins tous les noeuds producteurs (1) actifs du réseau (6), de préférence à tous les noeuds (1, 2) actifs du réseau (6), la liste d'au moins tous les noeuds consommateurs (2) actifs du réseau (6), de préférence la liste de tous les noeuds (1, 2) actifs du réseau (6). 3061391 22 3. Réseau informatique selon la revendication 2, caractérisé en ce que ledit registre (3) n'établit pour aucun noeud producteur (1) particulier donné la liste de ses noeuds consommateurs (2) interconnectés, n'envoie à aucun noeud producteur (1) particulier donné la liste de ses noeuds 5 consommateurs (2) interconnectés. 4. Réseau informatique selon l'une quelconque des revendications 2 à 3, caractérisé en ce que les noeuds (1, 2) s'enregistrent périodiquement comme actifs dans le réseau (6) auprès du registre (3), dès lors qu'ils sont 10 aptes à traiter des messages, la période d'enregistrement étant de préférence inférieure ou égale à 10 secondes, tout noeud (1, 2) actif qui manque au moins deux périodes d'enregistrement, de préférence au moins une période d'enregistrement, est supprimé de la liste des noeuds (1, 2) actifs par le registre (3). 15 5. Réseau informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque noeud producteur (1) de message peut modifier sa liste de noeuds consommateurs (2) interconnectés en y ajoutant éventuellement un noeud consommateur (2) nouvellement 20 enregistré si celui-ci est apte à consommer les messages produits par ledit noeud producteur (1). 6. Réseau informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque noeud consommateur (2) envoie, 25 au moins pour certains messages reçus d'un noeud producteur (1), son temps de traitement de ces messages ou bien un poids représentatif de son temps de traitement de ces messages, représentatif de la différence entre l'arrivée de ces messages au niveau dudit noeud consommateur (2) et leur départ dudit noeud consommateur (2) éventuellement après transformation, de 30 préférence chaque noeud producteur (1) ajoute une requête d'évaluation de temps de traitement dans tout ou partie des messages qu'il envoie à chacun de ses noeuds consommateurs (2) interconnectés. 3061391 23 7. Réseau informatique selon la revendication 6, caractérisé en ce que chaque noeud producteur (1) de message gère la répartition de charge de ses messages produits vers ses noeuds consommateurs (2) interconnectés, en 5 fonction des temps de traitement ou bien des poids envoyés par ses noeuds consommateurs (2) interconnectés, envoyant plus de messages produits vers les noeuds consommateurs (2) interconnectés dont les temps de traitement sont plus faibles ou bien les poids correspondent à des temps de traitement plus faibles. 10 8. Réseau informatique selon la revendication 7, caractérisé en ce que chaque noeud producteur (1) calcule un poids moyen glissant au cours du temps, pour chacun de ses noeuds consommateurs (2) interconnectés, qu'il utilise pour gérer la répartition de charge de ses messages produits vers 15 ses noeuds consommateurs (2) interconnectés. 9. Réseau informatique selon la revendication 7 ou 8, caractérisé en ce que chaque noeud producteur (1) charge ses noeuds consommateurs (2) interconnectés de manière aléatoire pondérée, de sorte que la probabilité 20 pour ses noeuds consommateurs (2) interconnectés de recevoir un message produit par ledit noeud producteur (1), dépend d'un tirage aléatoire qui est pondéré par les poids desdits noeuds consommateurs (2) interconnectés. 10. Réseau informatique selon l'une quelconque des revendications 25 précédentes, caractérisé en ce que : > chaque noeud (1, 2) est un micro-service qui échange des messages avec au moins un autre noeud (1, 2), > chaque micro-service étant : o soit un processeur qui traite des données reçues d'un noeud (1, 2) 30 du réseau (6) pour envoyer ensuite ces données traitées à un autre noeud (1, 2) du réseau (6), de préférence ledit traitement se réduisant à une seule tâche de traitement réalisée sur ces données, 3061391 24 o soit une source qui produit des données à injecter dans le réseau (6) vers au moins un processeur, o soit un puits qui exporte les données traitées par au moins un processeur vers un système tiers au réseau (6). 5 11. Réseau informatique selon la revendication 10, caractérisé en ce qu'au moins l'un des processeurs, de préférence la majorité des processeurs, encore plus de préférence tous les processeurs, filtre les données reçues et les aiguille ensuite vers différents types de noeuds (1, 2) dans le réseau (6). 10 12. Réseau informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que un type de noeud producteur (1) est un filtre qui sépare les messages reçus en fonction d'un critère à remplir, pour les aiguiller vers trois types de noeuds consommateurs (2) respectivement 15 selon que ledit critère est : rempli, ou pas rempli, ou peut-être rempli. 13. Réseau informatique selon la revendication 12, caractérisé en ce que les messages sont représentatifs de transactions bancaires, le critère est le caractère frauduleux ou non d'une transaction bancaire. 20 14. Réseau informatique selon la revendication 12, caractérisé en ce que les messages sont représentatifs d'images filmées par des caméras de vidéosurveillance, le critère est le caractère de présence ou d'absence de risque délictuel lié au contenu d'une image filmée ou d'une séquence 25 d'images filmées par ces caméras de vidéosurveillance. 15. Procédé d'interconnexion et de communication entre noeuds (1, 2) dans un réseau informatique (6) selon l'une quelconque des revendications précédentes. 30 16. Procédé d'interconnexion entre noeuds (1, 2) dans un réseau informatique (6) de noeuds (1, 2) communiquant entre eux par messages en 3061391 25 pair à pair, des noeuds producteurs (1) de message envoyant leurs messages produits vers des noeuds consommateurs (2) de message, un noeud consommateur (2) pouvant être également un noeud producteur (1) à un autre niveau du réseau (6), caractérisé en ce que chaque noeud producteur 5 (1) de message : > choisit, parmi les noeuds (1, 2) enregistrés comme actifs dans le réseau (6), ses noeuds consommateurs (2) pour s'interconnecter avec eux, > maintient à jour la liste de ses noeuds consommateurs (2) interconnectés, 10 > modifie sa liste de noeuds consommateurs (2) interconnectés en fonction du temps de traitement, par ses noeuds consommateurs (2), de ses messages produits, en supprimant de sa liste au moins temporairement ses noeuds consommateurs (2) interconnectés trop lents. 15