Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
COMPUTER NETWORK OF NODES COMMUNICATING WITH ONE ANOTHER BY PEER-TO-PEER MESSAGES AND ASSOCIATED METHOD FOR INTERCONNECTING BETWEEN NODES
Document Type and Number:
WIPO Patent Application WO/2018/122533
Kind Code:
A1
Abstract:
The invention concerns a computer network of nodes (1, 2) communicating with one another by peer-to-peer messages, message-producer nodes (1) sending their produced messages to message-consumer nodes (2), a consumer node (2) also being able to be a producer node (1) at another level of the network (6), characterised in that each message-producer node (1): chooses, among the nodes (1, 2) registered as active in the network, its consumer nodes (2) in order to interconnect with them; keeps up-to-date the list of its interconnected consumer nodes (2); manages the load distribution of its produced messages to its interconnected consumer nodes (2), according to the processing time, by its interconnected consumer nodes (2), of its produced messages, by sending its produced messages primarily to its interconnected consumer nodes (2) having low processing times; and, modifies its list of interconnected consumer nodes (2) according to the processing time, by its interconnected consumer nodes (2), of its produced messages, by deleting from its list, at least temporarily, those of its interconnected consumer nodes (2) which are too slow.

Inventors:
PLAGNOL ADRIEN (FR)
TITOUAN CHARY (FR)
Application Number:
PCT/FR2017/053853
Publication Date:
July 05, 2018
Filing Date:
December 27, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
WORLDLINE (FR)
International Classes:
H04L29/08; H04W8/00; H04W84/18
Foreign References:
US20080046554A12008-02-21
US20110276633A12011-11-10
US20100135168A12010-06-03
EP1903816A12008-03-26
US20070097986A12007-05-03
US20110013018A12011-01-20
Other References:
None
Attorney, Agent or Firm:
CABINET PLASSERAUD et al. (FR)
Download PDF:
Claims:
REVENDICATIONS

1. Réseau informatique de nœuds (1, 2) communiquant entre eux par messages en pair à pair, des nœuds producteurs (1) de message envoyant leurs messages produits vers des nœuds consommateurs (2) de message, un nœud consommateur (2) pouvant être également un nœud producteur (1) à un autre niveau du réseau (6), caractérisé en ce que chaque nœud producteur (1) de message :

choisit, parmi les nœuds (1, 2) enregistrés comme actifs dans le réseau, ses nœuds consommateurs (2) pour s'interconnecter avec eux,

maintient à jour la liste de ses nœuds consommateurs (2) interconnectés,

gère la répartition de charge de ses messages produits vers ses nœuds consommateurs (2) interconnectés, en fonction du temps de traitement, par ses nœuds consommateurs (2) interconnectés, de ses messages produits, en envoyant ses messages produits surtout à ses nœuds consommateurs (2) interconnectés à plus faible temps de traitement,

modifie sa liste de nœuds consommateurs (2) interconnectés en fonction du temps de traitement, par ses nœuds consommateurs (2) interconnectés, de ses messages produits, en supprimant de sa liste au moins temporairement ses nœuds consommateurs (2) interconnectés trop lents.

2. Réseau informatique selon la revendication 1, caractérisé en ce que les nœuds (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 nœuds producteurs (1) actifs du réseau (6), de préférence à tous les nœuds (1, 2) actifs du réseau (6), la liste d'au moins tous les nœuds consommateurs (2) actifs du réseau (6), de préférence la liste de tous les nœuds (1, 2) actifs du réseau (6).

3. Réseau informatique selon la revendication 2, caractérisé en ce que ledit registre (3) n'établit pour aucun nœud producteur (1) particulier donné la liste de ses nœuds consommateurs (2) interconnectés, n'envoie à aucun nœud producteur (1) particulier donné la liste de ses nœuds consommateurs (2) interconnectés.

4. Réseau informatique selon l'une quelconque des revendications 2 à 3, caractérisé en ce que les nœuds (1, 2) s'enregistrent périodiquement comme actifs dans le réseau (6) auprès du registre (3), 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 nœud (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 nœuds (1, 2) actifs par le registre (3).

5. Réseau informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque nœud producteur (1) de message peut modifier sa liste de nœuds consommateurs (2) interconnectés en y ajoutant éventuellement un nœud consommateur (2) nouvellement enregistré si celui-ci est apte à consommer les messages produits par ledit nœud producteur (1).

6. Réseau informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque nœud consommateur (2) envoie, au moins pour certains messages reçus d'un nœud 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 nœud consommateur (2) et leur départ dudit nœud consommateur (2) éventuellement après transformation, de préférence chaque nœud producteur (1) ajoute une requête d'évaluation de temps de traitement dans tout ou partie des messages qu'il envoie à chacun de ses nœuds consommateurs (2) interconnectés.

7. Réseau informatique selon la revendication 6, caractérisé en ce que chaque nœud producteur (1) de message gère la répartition de charge de ses messages produits vers ses nœuds consommateurs (2) interconnectés, en fonction des temps de traitement ou bien des poids envoyés par ses nœuds consommateurs (2) interconnectés, envoyant plus de messages produits vers les nœuds consommateurs (2) interconnectés dont les temps de traitement sont plus faibles ou bien les poids correspondent à des temps de traitement plus faibles.

8. Réseau informatique selon la revendication 7, caractérisé en ce que chaque nœud producteur (1) calcule un poids moyen glissant au cours du temps, pour chacun de ses nœuds consommateurs (2) interconnectés, qu'il utilise pour gérer la répartition de charge de ses messages produits vers ses nœuds consommateurs (2) interconnectés.

9. Réseau informatique selon la revendication 7 ou 8, caractérisé en ce que chaque nœud producteur (1) charge ses nœuds consommateurs (2) interconnectés de manière aléatoire pondérée, de sorte que la probabilité pour ses nœuds consommateurs (2) interconnectés de recevoir un message produit par ledit nœud producteur (1), dépend d'un tirage aléatoire qui est pondéré par les poids desdits nœuds consommateurs (2) interconnectés.

10. Réseau informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que :

chaque nœud (1, 2) est un micro- service qui échange des messages avec au moins un autre nœud (1, 2),

chaque micro- service étant :

o soit un processeur qui traite des données reçues d'un nœud (1, 2) du réseau (6) pour envoyer ensuite ces données traitées à un autre nœud (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, 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).

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 nœuds (1, 2) dans le réseau (6).

12. Réseau informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que un type de nœud 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 nœuds consommateurs (2) respectivement 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.

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 d'images filmées par ces caméras de vidéosurveillance.

15. Procédé d'interconnexion et de communication entre nœuds (1, 2) dans un réseau informatique (6) selon l'une quelconque des revendications précédentes.

16. Procédé d'interconnexion entre nœuds (1, 2) dans un réseau informatique (6) de nœuds (1, 2) communiquant entre eux par messages en pair à pair, des nœuds producteurs (1) de message envoyant leurs messages produits vers des nœuds consommateurs (2) de message, un nœud consommateur (2) pouvant être également un nœud producteur (1) à un autre niveau du réseau (6), caractérisé en ce que chaque nœud producteur (1) de message :

choisit, parmi les nœuds (1, 2) enregistrés comme actifs dans le réseau (6), ses nœuds consommateurs (2) pour s'interconnecter avec eux, maintient à jour la liste de ses nœuds consommateurs (2) interconnectés,

modifie sa liste de nœuds consommateurs (2) interconnectés en fonction du temps de traitement, par ses nœuds consommateurs (2), de ses messages produits, en supprimant de sa liste au moins temporairement ses nœuds consommateurs (2) interconnectés trop lents.

Description:
RESEAU INFORMATIQUE DE NŒUDS COMMUNIQUANT ENTRE EUX PAR MESSAGES EN PAIR A PAIR ET PROCEDE

D'INTERCONNEXION ENTRE NŒUDS ASSOCIE

DOMAINE DE L'INVENTION

L'invention concerne le domaine des réseaux de nœuds communiquant entre eux par messages en pair à pair ainsi que le domaine des procédés d'interconnexion entre nœuds dans un réseau de nœuds communiquant entre eux par messages en pair à pair.

Le réseau de nœuds 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 nœuds, pour que ses nœuds communiquent entre eux, va d'abord dans une phase initiale interconnecter les nœuds 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 nœuds 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). Selon un premier art antérieur, il est connu un réseau de nœuds é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 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.

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.

Selon un deuxième art antérieur, il est connu un réseau de nœuds é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 réseau de nœuds é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é 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 deviendront trop importants. RESUME DE L'INVENTION

Le but de la présente invention est de fournir un réseau de nœuds et/ou un procédé d'interconnexion palliant au moins partiellement les inconvénients précités.

Plus particulièrement, l'invention vise à fournir un réseau de nœuds 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é.

En effet, d'une part la robustesse de fonctionnement du réseau va permettre au réseau de nœuds de continuer à fonctionner en permettant aux nœuds 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.

D'autre part, l'efficacité de fonctionnement de ce réseau va permettre au nœud 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.

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 nœuds producteurs, d'une part gèrent eux-mêmes chacun leur liste de nœuds consommateurs, garantissant ainsi leur autonomie par rapport à un éventuel point de défaillance dans le réseau, et d'autre part optimisent chacun leur liste de nœuds consommateurs en termes de temps de traitement de leurs messages produits, en supprimant, au moins temporairement de leur liste, les nœuds consommateurs trop lents à traiter les messages produits reçus de la part du nœud producteur correspondant à cette liste.

A cette fin, la présente invention propose un réseau informatique de nœuds communiquant entre eux par messages en pair à pair, des nœuds producteurs de message envoyant leurs messages produits vers des nœuds consommateurs de message, un nœud consommateur pouvant être également un nœud producteur à un autre niveau du réseau, caractérisé en ce que chaque nœud producteur de message : choisit, parmi les nœuds enregistrés comme actifs dans le réseau, ses nœuds consommateurs pour s'interconnecter avec eux, maintient à jour la liste de ses nœuds consommateurs interconnectés, gère la répartition de charge de ses messages produits vers ses nœuds consommateurs interconnectés, en fonction du temps de traitement, par ses nœuds consommateurs interconnectés, de ses messages produits, en envoyant ses messages produits surtout à ses nœuds consommateurs interconnectés à plus faible temps de traitement, modifie sa liste de nœuds consommateurs interconnectés en fonction du temps de traitement, par ses nœuds consommateurs interconnectés, de ses messages produits, en supprimant de sa liste au moins temporairement ses nœuds consommateurs interconnectés trop lents.

A cette fin, la présente invention propose aussi un procédé d'interconnexion et de communication entre nœuds dans un réseau informatique selon l'invention.

A cette fin, la présente invention propose également un procédé d'interconnexion entre nœuds dans un réseau informatique de nœuds communiquant entre eux par messages en pair à pair, des nœuds producteurs de message envoyant leurs messages produits vers des nœuds consommateurs de message, un nœud consommateur pouvant être également un nœud producteur à un autre niveau du réseau, caractérisé en ce que chaque nœud producteur de message : choisit, parmi les nœuds enregistrés comme actifs dans le réseau, ses nœuds consommateurs pour s'interconnecter avec eux, maintient à jour la liste de ses nœuds consommateurs interconnectés, modifie sa liste de nœuds consommateurs interconnectés en fonction du temps de traitement, par ses nœuds consommateurs, de ses messages produits, en supprimant de sa liste au moins temporairement ses nœuds consommateurs interconnectés trop lents.

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 réseau de nœuds 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 autoadaptatif 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 microservices eux-mêmes. Dans cette architecture, chaque micro-service est 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 nœuds ou en cas 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.

De préférence, les nœuds 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 nœuds producteurs actifs du réseau, de préférence à tous les nœuds actifs du réseau, la liste d'au moins tous les nœuds consommateurs actifs du réseau, de préférence la liste de tous les nœuds actifs du réseau. La 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 nœud producteur particulier donné la liste de ses nœuds consommateurs interconnectés, et ledit registre n'envoie à aucun nœud producteur particulier donné la liste de ses nœuds consommateurs interconnectés. Un avantage est le fait, qu'une fois constitué, le réseau de nœuds 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.

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 nœuds producteurs les changements survenus dans la topologie du réseau, permettant ainsi à ces nœuds producteurs de mettre à jour chacun leur liste de nœuds consommateurs, permettant de cette manière à chaque nœud producteur de fonctionner avec une liste de nœuds consommateurs qui est optimisée en termes d'efficacité par rapport à la topologie instantanée du réseau de nœuds. Alternativement, la gestion de l'évolution de la topologie du réseau de manière distribuée au niveau de chaque nœud producteur reste possible, mais celle-ci réduirait l'efficacité de fonctionnement du réseau.

Ainsi, la distribution au niveau de chaque nœud producteur de la gestion de la liste de ses nœuds 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 fonctionnement du réseau.

De préférence, les nœuds 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 nœud 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 nœuds actifs par le registre. Ainsi, même si cet enregistrement périodique est un peu fastidieux pour chaque nœud consommateur, il permet en revanche d'améliorer encore le compromis entre robustesse de fonctionnement et efficacité de fonctionnement du réseau, dans la mesure où il a pour effet de supprimer temporairement tout nœud 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. De préférence, chaque nœud producteur de message peut modifier sa liste de nœuds consommateurs interconnectés en y ajoutant éventuellement un nœud consommateur nouvellement enregistré si celui-ci est apte à consommer les messages produits par ledit nœud producteur. Ainsi, chaque nœud producteur peut augmenter sa liste de nœuds 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 nœud consommateur envoie, au moins pour certains messages reçus d'un nœud producteur, 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 nœud consommateur et leur départ dudit nœud consommateur éventuellement après transformation, et de préférence chaque nœud producteur ajoute une requête d'évaluation de temps de traitement dans tout ou partie des messages qu'il envoie à chacun de ses nœuds consommateurs interconnectés. De cette manière, chaque nœud consommateur peut mettre à jour les performances de tous les nœuds 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 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 nœud producteur de message gère la répartition de charge de ses messages produits vers ses nœuds consommateurs interconnectés, en fonction des temps de traitement ou bien des poids envoyés par ses nœuds consommateurs interconnectés, envoyant plus de messages produits vers les nœuds consommateurs interconnectés dont les temps de traitement sont plus faibles ou bien les poids correspondent à des temps de traitement plus faibles. Ainsi chaque nœud producteur améliore la gestion de charge de ses messages produits, améliorant ainsi l'efficacité globale de transmission des messages produits et de leur traitement dans le réseau. De préférence, chaque nœud producteur calcule un poids moyen glissant au cours du temps, pour chacun de ses nœuds consommateurs interconnectés, qu'il utilise pour gérer la répartition de charge de ses messages produits vers ses nœuds consommateurs interconnectés. De cette 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 nœud 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.

De préférence, chaque nœud producteur charge ses nœuds consommateurs interconnectés de manière aléatoire pondérée, de sorte que la probabilité pour ses nœuds consommateurs interconnectés de recevoir un message produit par ledit nœud producteur, dépend d'un tirage aléatoire qui est pondéré par les poids desdits nœuds consommateurs interconnectés. 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 nœuds consommateurs disponibles, facteur d'amélioration de la robustesse de fonctionnement du réseau en évitant de surcharger des nœuds consommateurs très performants pour éviter leur effondrement facteur 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 nœuds consommateurs les plus rapides.

De préférence, chaque nœud est un micro-service qui échange des messages avec au moins un autre nœud, chaque micro-service étant soit un processeur qui traite des données reçues d'un nœud du réseau pour envoyer ensuite ces données traitées à un autre nœud 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 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 mesure où ses nœuds 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, filtre les données reçues et les aiguille ensuite vers différents types de nœuds 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 nœud producteur est un filtre qui sépare les messages reçus en fonction d'un critère à remplir, pour les aiguiller vers trois types de nœuds 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 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 nœuds selon l'invention ainsi que le procédé d'interconnexion associé particulièrement 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 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 nœuds 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 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. 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.

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 poids cumulés permettant une gestion des pois des nœuds consommateurs dans un réseau selon un mode de réalisation de l'invention.

DESCRIPTION DETAILLEE DE L'INVENTION 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 nœuds producteurs 1 et des nœuds consommateurs 2. Dans le réseau 6 sont représentés les nœuds A, B, C et D. Ici, le nœud A est un nœud producteur 1. Le nœud B est un nœud consommateur 2 au niveau de la liaison entre les nœuds A et B dans le réseau 6, tandis que ce même nœud B est un nœud producteur 1 au niveau de la liaison entre les nœuds B et C dans le réseau 6 tout comme au niveau de la liaison entre les nœuds B et D dans le réseau 6. Le nœud B est un nœud producteur 1 ou bien un nœud consommateur 2, selon le niveau du réseau 6 considéré. En revanche ici, le nœud A n'est qu'un nœud producteur

1, tandis que les nœuds C et D ne sont que des nœuds consommateurs 2.

Un registre 3 diffuse vers tous les nœuds 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 les nœuds A et B dans le réseau 6, les messages produits par le nœud producteur A vont vers le nœud consommateur B et ne circulent que dans ce sens, pour être consommés par le nœud consommateur B. Au niveau de la liaison entre les nœuds B et C dans le réseau 6, les messages produits par le nœud producteur B vont vers le nœud consommateur C et ne circulent que dans ce sens, pour être consommés par le nœud consommateur C. Au niveau de la liaison entre les nœuds B et D dans le réseau 6, les messages produits par le nœud producteur B vont vers le nœud consommateur D et ne circulent que dans ce sens, pour être consommés par le nœud consommateur D.

Chaque nœud producteur 1 maintient une liste des nœuds 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 nœud A connaît le nœud B auquel il transmet les messages qu'il produit. Le nœud B connaît les nœuds C et D auxquels il transmet les messages qu'il produit, chaque message étant envoyé soit au nœud C soit au nœud D.

Cette liste de nœuds consommateurs 2 est initialisée par une requête à un registre 3 auquel s'inscrit chaque nœud producteur 1 ou consommateur 2 à son instanciation. Ce registre 3 n'est utile que lorsqu'un changement intervient dans la topologie des nœuds. 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 nœud producteur 1 ou consommateur 2 s'inscrit, à son 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 nœud 1 ou 2 recevra rapidement la topologie complète du réseau 6 de nœuds lors de la ré-instanciation de ce registre 3.

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 T0 et ensuite à un temps Tl.

A un temps T0, le nœud A est interconnecté avec le nœud B et le nœud B est interconnecté avec le nœud C. Le nœud A envoie des messages vers le nœud B qui envoie des messages vers le nœud C.

Ensuite, le registre 3 diffuse l'information que le nœud D s'est enregistré auprès de lui. Ni le nœud A, ni le nœud C, ne s'interconnectent avec le nœud D. En revanche le nœud B s'interconnecte avec le nœud D. Au temps Tl, le nœud A est interconnecté avec le nœud B et le nœud B est interconnecté avec les nœuds C et D. Le nœud A envoie des messages vers le nœud B qui envoie des messages vers soit le nœud C soit le nœud D.

Le registre 3 a pour rôle d'émettre tous les événements qu'il traite en diffusion à tous les nœuds 1 et 2 du réseau 6 qu'il connaît. Ainsi, lorsqu'un nouveau nœud 1 ou 2 se déclare, tous les autres nœuds 1 ou 2 en sont informés et les nœuds producteurs 1 choisissent de s'y connecter selon que ce nouveau nœud fait partie de leur flux ou pas.

Sur la figure 2, par exemple au temps Tl, le nœud D se déclare, le registre 3 diffuse l'information. Le nœud A ne se connecte pas au nœud D, le nœud B se connecte au nœud D car le nœud D fait partie du type de service compris dans son flux.

Chaque nœud consommateur 2 maintient le temps de réponse médian sur une fenêtre glissante de N envois de messages, qui est appelée Tmed. Lors de l'envoi d'un message vers un nœud consommateur 2, si ce nœud 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 au bout de 2 ou 3 réémissions, l'envoi du message est considéré comme échoué et le nœud consommateur 2 cible est retiré de la liste de nœuds consommateurs 2 cibles du nœud producteur 1 ayant tenté de manière infructueuse de lui envoyer des messages. Ce mode opératoire permet d'éliminer rapidement les nœuds consommateurs 2 dont le temps de réponse devient anormalement élevé. Ces nœuds 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 nœuds producteurs 1. Le registre 3 va diffuser cette information qui sera à son tour interceptée par le nœud producteur 1 qui est émetteur de messages. Ce mécanisme permet donc d'exclure temporairement les nœuds 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 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 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 nœuds producteurs 1 et des nœuds consommateurs 2. Dans le réseau 6 sont représentés les nœuds PI, P2, Cl, C2 et C3. Ici, les nœuds PI et P2 sont des nœuds producteurs 1, au niveau de liaisons considérées. Ici les nœuds Cl, C2 et C3, sont des nœuds consommateurs 2, au niveau de liaisons considérées.

Un registre 3 diffuse vers tous les nœuds PI, P2, Cl, C2 et C3 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.

Les messages produits par le nœud producteur PI vont vers les nœuds consommateurs Cl et C2, et ne circulent que dans ce sens, pour être consommés par les nœuds consommateurs Cl et C2. Les messages produits par le nœud producteur P2 vont vers les nœuds consommateurs Cl, C2 et C3, et ne circulent que dans ce sens, pour être consommés par les nœuds consommateurs Cl, C2 et C3.

Sur une telle architecture possédant N nœuds producteurs 1, c'est-à- dire envoyant des messages, ainsi que M nœuds consommateurs 2, c'est-à- dire recevant ces messages, il est utile de répartir intelligemment la charge de travail entre les différents nœuds. La répartition de charge est une technique utilisée par les réseaux de taille importante afin d'équilibrer la sollicitation des serveurs. Le réseau 6 selon l'invention a mis en place une répartition dynamique, intelligente et adaptative des charges.

Chaque nœud 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 interface de sortie et qui communique avec l'interface d'entrée de chacun des nœuds consommateurs 2 de sa liste, par exemple des micro-services consommateurs 2. Chacun des N nœuds producteurs 1 connaît sa liste de nœuds consommateurs 2 parmi les M nœuds consommateurs 2, tous les M nœuds consommateurs 2 possédant à l'initialisation un poids identique, par exemple de valeur 1.

Toutes les q secondes, par exemple toutes les 5 secondes, chaque nœud 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 nœuds consommateurs 2 auront des poids qui sont dynamiques car ceux-ci sont recalculés régulièrement.

Chaque nœud 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.

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 du message par ce nœud consommateur 2.

En guise de message d'acquittement, le nœud consommateur 2 répond au nœud 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 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 nœud consommateur 2. Soit le poids d'un nœud consommateur i :

ce qui correspond à la formule (1).

Ce poids est mis à jour dans la table des nœuds consommateurs du nœud producteur concerné. Chaque nœud producteur récolte indépendamment les informations de charge de chaque nœud consommateur. Chaque nœud producteur maintient donc sa propre table de poids de nœuds consommateurs qui peut donc être différente de celle des autres nœuds producteurs.

Afin d'obtenir un poids précis, l'invention utilise préférentiellement la 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 nœud consommateur en particulier :

Si ' Î W^ W^ Wi^ Win }

ce qui correspond à la formule (2).

Soit le poids moyen glissant du consommateur i, noté Wigliss, pour un ensemble de mesures de taille n: et Wigliss = 1 pour n = 0

ce qui correspond à la formule (3).

Ce poids glissant sert à pondérer le tirage aléatoire qui sert à choisir le nœud consommateur destinataire du prochain message.

La pondération se fait par comparaison de la valeur tirée avec une échelle sur laquelle sont positionnés les nœuds 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.

Avec N le nombre de nœuds consommateurs :

Pour i de 0 à N— 1: Borne^ = Borne^ ! + Wigliss et Borne 0 = 0 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 nœuds producteurs PI et P2 ont tous les deux la même table de poids :

TABLE 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

Pour l'envoi de leur prochain message, les nœuds producteurs PI et P2 tirent une valeur entre 0 et 3. Si cette valeur vaut entre 0 et 1, le prochain message sera envoyé au nœud consommateur Cl, si la valeur est entre 1 et 2, le message sera envoyé au nœud consommateur C2, si la valeur est entre 2 et 3, le message sera envoyé au nœud consommateur C3. Par convention, si la valeur vaut exactement 1, elle sera envoyée au nœud consommateur Cl, et si la valeur vaut exactement 2, elle sera envoyée au nœud consommateur C2.

Considérons par exemple, comme valeur de tirage 1.5 pour le nœud producteur PI et 2.2 pour le nœud producteur P2. Le nœud producteur PI envoie donc son message au nœud consommateur C2, tandis que le nœud producteur P2 envoie son message au nœud consommateur C3. Le nœud consommateur C2 répond en 5 secondes au nœud producteur PI et le nœud consommateur C3 répond en 2 secondes au nœud producteur P2.

En appliquant les formules (1), (2) et (3) présentées ci-dessus, on obtient pour le nœud producteur PI :

1 1

W c2 o = ; — = - = 0.2

n.arrivee n.depart ^

ô c2 = { 0.2 }

1

W c2 gliss = - * W c2 0 = 0.2

et pour le nœud producteur P2 :

1 1

W c3 o = ; — = j = 0.5

n.arrivee ^-i.depart ^

ô c3 : { 0.5 }

W c3 gliss = - * W c3 0 = 0.5

Les nœuds producteurs PI et P2 ont maintenant des poids différents pour chacun des nœuds consommateurs Cl, C2 et C3, ce qui donne la table 3.

TABLE 3

Lors d'une deuxième itération, les poids sont cumulés sur une échelle est mise à jour, et l'on obtient la table 4.

TABLE 4

Cl C2 C3

PI 0 1 1.2 2.2

P2 0 1 2 2.5 Le nouveau tirage aléatoire donne une valeur de 1.1 pour le nœud producteur PI et une valeur 0.3 pour le nœud producteur P2.

Le nœud producteur PI envoie donc son message au nœud consommateur C2 et le nœud producteur P2 envoie son message au nœud consommateur Cl.

Le nœud consommateur C2 répond au nœud producteur PI en 2secondes et le nœud consommateur Cl répond au nœud producteur P2 en 10 secondes.

En appliquant de nouveau les formules (1), (2) et (3) pour le nœud producteur PI, on obtient :

1 1

W c2 ! = — = - = 0.5

ti.arrivee ^-i.depart ^

ô c2 = { 0.2, 0.5 }

W c2 gliss = - * (W c2 0 + W c2 1 ) = 0.35

et pour le nœud producteur P2, on obtient :

1 1

W CL o = = —— = 0.1

.arrivee .depart - L U

6 C1 : { 0.1 }

W cl gliss = * W c1 0 = 0.1

Les nœuds producteurs PI et P2 ont maintenant des poids à nouveau modifiés pour les nœuds consommateurs Cl, C2 et C3, ce qui donne la table

TABLE 5

PI P2

Cl 1 0.1

C2 0.35 1

C3 1 0.5 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

Ainsi, les poids finaux pour les nœuds 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 nœuds consommateurs dans un réseau selon un mode de réalisation de l'invention.

L'échelle des poids cumulés représente les trois nœuds consommateurs Cl, C2 et C3 au temps tO dans un arbre, chaque nœud consommateur étant représenté par une feuille 4 comprenant le nom du nœud et la valeur de son poids.

L'échelle des poids cumulés représente les trois nœuds consommateurs Cl, C2 et C3 au temps tl dans le même arbre, chaque nœud consommateur étant représenté par une feuille 5 comprenant le nom du nœud 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 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.

On voit, pour les nœuds 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 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 nombreuses variantes accessibles à l'homme de l'art.