FR3061391A1 - COMPUTER NETWORK OF KNOTS COMMUNICATING BETWEEN THEM THROUGH PAIR MESSAGES AND INTERCONNECTION METHOD BETWEEN NODES ASSOCIATED THEREWITH - Google Patents
COMPUTER NETWORK OF KNOTS COMMUNICATING BETWEEN THEM THROUGH PAIR MESSAGES AND INTERCONNECTION METHOD BETWEEN NODES ASSOCIATED THEREWITH Download PDFInfo
- Publication number
- FR3061391A1 FR3061391A1 FR1663408A FR1663408A FR3061391A1 FR 3061391 A1 FR3061391 A1 FR 3061391A1 FR 1663408 A FR1663408 A FR 1663408A FR 1663408 A FR1663408 A FR 1663408A FR 3061391 A1 FR3061391 A1 FR 3061391A1
- Authority
- FR
- France
- Prior art keywords
- nodes
- node
- messages
- consumer
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/005—Discovery of network devices, e.g. terminals
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
L'invention concerne un 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.The invention relates to a computer network of nodes (1, 2) communicating with each other by peer-to-peer messages, message generating nodes (1) sending their generated messages to message consumer nodes (2), a consumer node ( 2) can also be a producer node (1) at another level of the network (6), characterized in that each producer node (1) of message: chooses, among the nodes (1, 2) registered as active in the network , its consumer nodes (2) to interconnect with them, maintains the list of its interconnected consumer nodes (2), manages the load distribution of its product messages to its interconnected consumer nodes (2), as a function of time processing, by its interconnected consumer nodes (2), of its generated messages, by sending its messages produced especially to its interconnected consumers nodes (2) with a lower processing time, modifies its list of consuming nodes interconnected nodes (2) based on the processing time, by its interconnected consumer nodes (2), of its generated messages, by deleting from its list at least temporarily its interconnected nodes consumers (2) too slow.
Description
Titulaire(s) :Holder (s):
WORLDLINE Société anonyme.WORLDLINE Public limited company.
O Demande(s) d’extension :O Extension request (s):
® Mandataire(s) : CABINET PLASSERAUD.® Agent (s): CABINET PLASSERAUD.
® RESEAU INFORMATIQUE DE NOEUDS COMMUNIQUANT ENTRE EUX PAR MESSAGES EN PAIR A PAIR ET PROCEDE D'INTERCONNEXION ENTRE NOEUDS ASSOCIE.® COMPUTER NETWORK OF NODES COMMUNICATING BETWEEN THEM BY PEER-TO-PEER MESSAGES AND ASSOCIATED INTERCONNECTION BETWEEN NODES.
FR 3 061 391 - A1 (57) L'invention concerne un 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.FR 3,061,391 - A1 (57) The invention relates to a computer network of nodes (1, 2) communicating with each other by peer-to-peer messages, message producing nodes (1) sending their produced messages to consumer nodes ( 2) message, a consumer node (2) can also be a producer node (1) at another level of the network (6), characterized in that each message producer node (1): chooses, from among the nodes (1 , 2) registered as active in the network, its consumer nodes (2) to interconnect with them, keeps the list of its interconnected consumer nodes (2) up to date, manages the load distribution of its produced messages to its consumer nodes (2) interconnected, according to the processing time, by its consumer nodes (2) interconnected, of its produced messages, by sending its produced messages especially to its consumer nodes (2) interconnected with lower processing time, modifies its li ste of consumer nodes (2) interconnected as a function of the processing time, by its consumer nodes (2) interconnected, of its produced messages, by removing from its list at least temporarily its consumer nodes (2) interconnected too slow.
REGISTREREGISTER
RESEAU INFORMATIQUE DE NŒUDS COMMUNIQUANT ENTRE EUX PAR MESSAGES EN PAIR A PAIR ET PROCEDE D’INTERCONNEXION ENTRE NŒUDS ASSOCIECOMPUTER NETWORK OF NODES COMMUNICATING BETWEEN THEM BY PEER-TO-PEER MESSAGES AND METHOD OF INTERCONNECTING BETWEEN NODES
DOMAINE DE L’INVENTIONFIELD OF THE 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.The invention relates to the field of node networks communicating with each other by peer-to-peer messages as well as the field of interconnection methods between nodes in a network of nodes communicating with each other by peer-to-peer messages.
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.The network of nodes considered is for example an architecture of micro-services, respectively distributed over potentially several machines, for example not having the same addresses between them, for example not being all on the same network, not having between them for example not the same computing capacity. In addition, each micro-service can have a potentially indefinite life time. The heterogeneous nature of this micro-services architecture makes it more fragile compared to unforeseeable events, of the localized breakdown type, and therefore difficult to manage.
CONTEXTE DE L’INVENTIONBACKGROUND OF THE 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.The network of nodes, so that its nodes communicate with each other, goes first in an initial phase to interconnect the nodes with each other, then then goes in an updating phase during the life of the network to maintain and adapt the interconnections between network nodes.
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).For example, the message distribution system will make microservices communicate with each other through a message passing system. For this, it can use an implementation centered on a message broker ("broker" in English).
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.According to a first prior art, there is known a network of nodes exchanging peer to peer messages (“peer to peer” in English) and an associated interconnection method, which are both managed by a central interconnection device. . A disadvantage of this first prior art is that this central interconnection device constitutes a weak link in the network, a single point of failure (SPF for "single point of failure" in English), including a failure, even temporary, will disrupt the operation of the network and significantly degrade its performance in terms of transmission efficiency and message processing.
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.For example, the message broker-based system can be centralized (such as “RabbitMQ” or “ActiveMQ”), but it has an important limit, because this centralized system will constitute a single point of failure which can disrupt operation of the network and degrade its capacities.
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.According to a second prior art, there is known a network of nodes exchanging messages in peer to peer ("peer to peer" in English) and an associated interconnection method, which are both completely distributed. A drawback of this second prior art is that the robustness linked to this totally distributed nature, in particular in a network of nodes exchanging messages in peer to peer, becomes a weakness as soon as the size of the messages exchanged within the network becomes large. , because a large volume of fully distributed data exchange, in a type of peer-to-peer communication, will tend to saturate the network and therefore also to degrade its performance in transmission and message processing efficiency.
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.For example, the message broker-based system can be distributed (such as "Kafka"), but it has an important limitation, as this distributed system will become operationally limited once the size and volume of messages that it will have to pass will become too important.
RESUME DE L’INVENTIONSUMMARY OF THE 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.The object of the present invention is to provide a network of nodes and / or an interconnection method at least partially overcoming the aforementioned drawbacks.
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é.More particularly, the invention aims to provide a network of nodes and / or an interconnection method, for which a good compromise between operational robustness of the network on the one hand and operational efficiency of this network on the other hand is achieved .
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.Indeed, on the one hand the robustness of the network will allow the network of nodes to continue to operate by allowing the nodes of this network to continue to exchange messages with each other even if a given component, for example a central component, breaks down, at least in the case of a temporary breakdown, the most frequent case.
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.On the other hand, the operating efficiency of this network will allow the network node to continue to optimize the transmission and processing time of the messages exchanged, even if a given component, for example a central component, breaks down, at least in the case of a temporary breakdown, the most frequent case.
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.In order to achieve this compromise between robustness of operation and efficiency of operation of the network, the invention proposes a network in which the producer nodes, on the one hand each manage their list of consumer nodes themselves, thus guaranteeing their autonomy with respect to a possible point of failure in the network, and on the other hand each optimize their list of consumer nodes in terms of processing time of their produced messages, by removing, at least temporarily from their list, the consumer nodes too slow to process the product messages received from the producer node corresponding to this list.
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.To this end, the present invention provides a computer network of nodes communicating with each other by peer-to-peer messages, message producer nodes sending their product messages to message consumer nodes, a consumer node can also be a producer node. another level of the network, characterized in that each message-producing node: chooses, from among the nodes registered as active in the network, its consumer nodes to interconnect with them, maintains the list of its interconnected consumer nodes, manages the load distribution of its produced messages to its interconnected consumer nodes, according to the processing time, by its interconnected consumer nodes, of its produced messages, by sending its produced messages especially to its interconnected consumer nodes with lower processing time, its list of consumer nodes interconnected in function n the processing time, by its interconnected consumer nodes, of its produced messages, by removing from its list at least temporarily its too slow interconnected consumer nodes.
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.To this end, the present invention also provides a method of interconnection and communication between nodes in a computer network according to the 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.To this end, the present invention also provides a method of interconnection between nodes in a computer network of nodes communicating with each other by peer-to-peer messages, message producing nodes sending their produced messages to message consuming nodes, a node consumer can also be a producer node at another level of the network, characterized in that each message producer node: chooses, among the nodes registered as active in the network, its consumer nodes to interconnect with them, keeps the list of its interconnected consumer nodes, modifies its list of interconnected consumer nodes according to the processing time, by its consumer nodes, of its produced messages, by deleting from its list at least temporarily its too slow interconnected consumer nodes.
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.According to preferred embodiments of the invention, the very voluminous nature of the data exchanged and the critical real-time nature of the processing of this exchanged data make the use of the network of nodes according to the invention as well as the associated interconnection method particularly interesting.
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.According to preferred embodiments of the invention, the network will use a peer-to-peer message passing system which will be self-adaptive and highly resilient. This system will make it possible to establish communication between microservices through a communication channel functionally identical to a data bus, but the implementation of which is based on direct communication between the microservices themselves. In this architecture, each micro-service is responsible for maintaining the list of its peers in the network, as well as for the load distribution during the distribution of messages to these peers. This system makes it possible to create data flows between micro-services which will be able to resist even a significant change of scale, while keeping a strong resilience in the event of the disappearance of nodes or in the event of communication links being cut in the network.
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.According to preferred embodiments, the invention comprises one or more of the following characteristics which can be used separately or in partial combination with one another or in total combination with one or other of the abovementioned objects of the invention .
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).Preferably, the nodes register as active in the network with a centralized register in the network, which register distributes to at least all the active producing nodes of the network, preferably to all the active nodes of the network, the list of 'at least all the active consumer nodes of the network, preferably the list of all the active nodes of the network. Broadcasting is a different form of communication than peer to peer message exchange.
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.Preferably, said register does not establish for any particular producer node given the list of its interconnected consumer nodes, and said register does not send to any particular producer node given the list of its interconnected consumer nodes.
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.An advantage is the fact that once formed, the network of nodes becomes autonomous with respect to the registry service without which this network can then function normally temporarily during a limited duration outage of this registry.
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.On the other hand, the proper functioning of the register at least part of the time remains useful, insofar as only the register can signal to the various producing nodes the changes which have occurred in the network topology, thus allowing these producing nodes to update each their list of consumer nodes, thereby allowing each producer node to operate with a list of consumer nodes which is optimized in terms of efficiency compared to the instantaneous topology of the network of nodes. Alternatively, managing the evolution of the network topology in a distributed manner at each producer node remains possible, but this would reduce the operating efficiency of the network.
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.Thus, the distribution at the level of each producer node of the management of the list of its consumer nodes on the one hand associated with the centralized management of the only network topology with its permanent update on the other hand achieves a significant additional improvement of the compromise between robustness of operation and efficiency of operation of the network.
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.Preferably, the nodes periodically register as active in the network with the registry, as soon as they are able to process messages, the registration period preferably being less than or equal to 10 seconds, any active node missing at least two registration periods, preferably at least one registration period, is removed from the list of active nodes by the registry. Thus, even if this periodic recording is a bit tedious for each consumer node, it does however make it possible to further improve the compromise between robustness of operation and operating efficiency of the network, insofar as it has the effect of temporarily removing any node deficient consumer, and to delete it only for about the duration of his deficiency, for the duration of a registration period.
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.Preferably, each message producing node can modify its list of interconnected consumer nodes by optionally adding a newly registered consumer node if the latter is able to consume the messages produced by said producing node. Thus, each producer node can increase its list of consumer nodes in real time, and therefore improve its load management in terms of product messages sent in real time as well.
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.Preferably, each consumer node sends, at least for certain messages received from a producer node, its processing time for these messages or else a weight representative of its processing time for these messages, representative of the difference between the arrival of these messages at said consumer node and their departure from said consumer node possibly after transformation, and preferably each producer node adds a request for evaluation of processing time in all or part of the messages that it sends to each of its interconnected consumer nodes . In this way, each consumer node can update the performance of all the consumer nodes in its list and adapt the load management of its produced messages accordingly, as often as it wants, it just has to choose the proportion of its messages produced to which it adds a request for evaluation of processing time.
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.Preferably, each message producing node manages the load distribution of its produced messages to its interconnected consumer nodes, according to the processing times or else the weights sent by its interconnected consumer nodes, sending more produced messages to the interconnected consumer nodes whose treatment times are shorter or the weights correspond to shorter treatment times. Thus each producing node improves the load management of its produced messages, thereby improving the overall efficiency of transmission of produced messages and their processing in the network.
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.Preferably, each producer node calculates a sliding average weight over time, for each of its interconnected consumer nodes, which it uses to manage the load distribution of its produced messages to its interconnected consumer nodes. In this way, the calculated parameter is on the one hand well representative of the speed of processing of the messages produced received by a consumer node, while smoothing the punctual variations not very representative of this parameter, reducing the risks of instability and divergence d servo depending on the variations of this parameter.
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.Preferably, each producer node loads its interconnected consumer nodes in a random weighted manner, so that the probability for its interconnected consumer nodes of receiving a message produced by said producer node, depends on a random draw which is weighted by the weights of said nodes interconnected consumers. This weighted random load management achieves a good compromise between, on the one hand, the fair and distributed use of all the available consumer nodes, a factor for improving the robustness of network operation by avoiding overloading high-performance consumer nodes to avoid their collapse, factor of instability in the network, and on the other hand the network's operating efficiency by using, as a priority and more often, the fastest consumer nodes.
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.Preferably, each node is a micro-service which exchanges messages with at least one other node, each micro-service being either a processor which processes data received from a network node to then send this processed data to another node of the network, preferably said processing being reduced to a single processing task performed on this data, either a source which produces data to be injected into the network to at least one processor, or a sink which exports the data processed by at least one processor to a system third party on the network. This type of network is particularly suitable for the use of the invention, insofar as its nodes perform a lot of relatively simple operations on a lot of data.
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.Preferably, at least one of the processors, preferably the majority of the processors, even more preferably all the processors, filters the data received and then directs them to different types of nodes in the network. This is a particularly representative example of carrying out simple operations in large numbers on a large volume of data.
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.Preferably, a type of producer node is a filter which separates the messages received according to a criterion to be fulfilled, to direct them to three types of consumer nodes respectively depending on whether said criterion is fulfilled, or not fulfilled, or perhaps filled. Again this is a simple operation, but to be performed very quickly and a large number of times.
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 Γ utilisation du réseau de nœuds selon l’invention ainsi que le procédé d’interconnexion associé particulièrement intéressants.In a first preferred embodiment, the messages are representative of bank transactions, the criterion is whether or not a bank transaction is fraudulent. The very voluminous nature of the data exchanged and the critical real-time nature of the processing of this exchanged data make the use of the network of nodes according to the invention as well as the associated interconnection method particularly advantageous.
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 rutilisation du réseau de nœuds selon l’invention ainsi que le procédé d’interconnexion associé particulièrement intéressants.In a second preferred embodiment, the messages are representative of images filmed by video surveillance cameras, the criterion is the presence or absence of crime risk related to the content of a filmed image or a sequence of images filmed by these CCTV cameras. The very voluminous nature of the data exchanged and the critical real-time nature of the processing of this exchanged data make the reuse of the network of nodes according to the invention as well as the associated interconnection method particularly advantageous.
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.Other characteristics and advantages of the invention will appear on reading the following description of a preferred embodiment of the invention, given by way of example and with reference to the accompanying drawings.
BREVE DESCRIPTION DES DESSINSBRIEF DESCRIPTION OF THE DRAWINGS
La figure 1 représente schématiquement un exemple d’une partie de réseau selon un mode de réalisation de l’invention.FIG. 1 schematically represents an example of a network part according to an embodiment of the 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.FIG. 2 schematically represents an example of a network part according to an embodiment of the 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.FIG. 3 schematically represents an example of a network part according to an embodiment of the 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.FIG. 4 schematically represents an example of a cumulative weight scale allowing management of the peas of the consumer nodes in a network according to an embodiment of the invention.
DESCRIPTION DETAILLEE DE L’INVENTIONDETAILED DESCRIPTION OF THE 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.FIG. 1 schematically represents an example of a network part according to an embodiment of the 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.Network 6 includes producer nodes 1 and consumer nodes 2. In network 6 are represented nodes A, B, C and D. Here, node A is a producer node 1. Node B is a consumer node 2 at level of the link between nodes A and B in network 6, while this same node B is a producer node 1 at the level of the link between nodes B and C in network 6 as well as at the level of the link between nodes B and D in the network 6. The node B is a producer node 1 or a consumer node 2, depending on the level of the network 6 considered. On the other hand here, the node A is only a producer node 1, while the nodes C and D are only consumer nodes 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.A register 3 broadcasts to all the nodes A, B, C and D of the network 6, initially the original topology of the network 6, then each update of this topology during the life of the network 6. At the level of the link between nodes A and B in network 6, the messages produced by producer node A go to consumer node B and circulate only in this direction, to be consumed by consumer node B. At the level of the link between nodes B and C in network 6, the messages produced by the producer node B go to the consumer node C and circulate only in this direction, to be consumed by the consumer node C. At the level of the link between the nodes B and D in network 6, the messages produced by the producer node B go to the consumer node D and circulate only in this direction, to be consumed by the consumer node 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.Each producer node 1 maintains a list of consumer nodes 2 to which it may have to transmit messages as part of the flow to which it belongs. In the flow in Figure 1, node A knows node B to which it transmits the messages it produces. Node B knows nodes C and D to which it transmits the messages it produces, each message being sent either to node C or to node 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é.This list of consumer nodes 2 is initialized by a request to a register 3 to which each producer node 1 or consumer node 2 is registered when it is instantiated. This register 3 is only useful when a change occurs in the topology of the nodes. Thus, if the register 3 disappears, for example if it is damaged or if its link with the network 6 becomes inoperative, the operation of the flow shown in FIG. 1 is not impacted.
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.Each producer 1 or consumer 2 node registers, at its instantiation, in register 3. It will then send a new registration request at regular intervals, for example every 5 or 10 seconds, to register 3. From in this way, if register 3 becomes faulty, this node 1 or 2 will quickly receive the complete topology of the network 6 of nodes during the re-instantiation of this register 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.FIG. 2 schematically represents an example of a network part according to an embodiment of the invention. The part of the network 6 is first shown at a time T0 and then at a time 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.At time T0, node A is interconnected with node B and node B is interconnected with node C. Node A sends messages to node B which sends messages to node 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.Then register 3 broadcasts the information that node D has registered with it. Neither node A, nor node C, interconnect with node D. On the other hand, node B interconnects with node D. At time T1, node A is interconnected with node B and node B is interconnected with nodes C and D. Node A sends messages to node B which sends messages to either node C or node 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.The role of register 3 is to transmit all the events it processes in broadcast to all the nodes 1 and 2 of the network 6 which it knows. Thus, when a new node 1 or 2 is declared, all the other nodes 1 or 2 are informed thereof and the producing nodes 1 choose to connect to it according to whether this new node is part of their flow or not.
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.In FIG. 2, for example at time T1, the node D is declared, the register 3 diffuses the information. Node A does not connect to node D, node B connects to node D because node D is part of the type of service included in its flow.
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.Each consumer node 2 maintains the median response time over a sliding window of N messages sent, which is called Tmed. When sending a message to a consumer node 2, if this target consumer node 2 has not responded after 2 * Tmed, the request is abandoned. This request will be reissued immediately under the same conditions. After a certain number of such retransmissions, for example after 2 or 3 retransmissions, the sending of the message is considered to have failed and the target consumer node 2 is removed from the list of target consumer nodes 2 of producer node 1 having tried unsuccessfully to send him messages. This operating mode makes it possible to quickly eliminate the consumer nodes 2 whose response time becomes abnormally high. These deleted consumer nodes 2 will then be able to re-register with register 3, when they become operational again and when they can again guarantee a reasonable processing time for messages received from producer nodes 1. Register 3 will broadcast this information which will in turn be intercepted by the producing node 1 which is the sender of messages. This mechanism therefore makes it possible to temporarily exclude faulty or suddenly too slow consumer nodes 2, before reintegrating them into the flow, once they have become operational again.
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.In a network 6 of micro-service architecture type organized in flow and communicating with each other so that each message-producing micro-service manages its own list of message-consuming micro-services, the loss, at least temporarily, of register 3 has no impact on the operation of the network 6. The register 3 is used to distribute knowledge of the topology of the micro-services, but once this has been acquired, the network 6 becomes autonomous for its operation, and does not needs register 3 again only when there is a change in network topology 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.FIG. 3 schematically represents an example of a network part according to an embodiment of the 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.The network 6 includes producer nodes 1 and consumer nodes 2. In the network 6 are represented the nodes PI, P2, Cl, C2 and C3. Here, the nodes PI and P2 are producer nodes 1, at the level of links considered. Here the nodes Cl, C2 and C3, are consumer nodes 2, at the level of links considered.
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.A register 3 broadcasts to all the nodes PI, P2, Cl, C2 and C3 of the network 6, initially the original topology of the network 6, then each update of this topology during the life of the network 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.The messages produced by the producer node PI go to the consumer nodes Cl and C2, and circulate only in this direction, to be consumed by the consumer nodes Cl and C2. The messages produced by the producer node P2 go to the consumer nodes Cl, C2 and C3, and circulate only in this direction, to be consumed by the consumer nodes Cl, C2 and 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.On such an architecture having N producer nodes 1, i.e. sending messages, as well as M consumer nodes 2, i.e. receiving these messages, it is useful to intelligently distribute the workload between the different nodes. Load balancing is a technique used by large networks to balance the demand on servers. The network 6 according to the invention has implemented a dynamic, intelligent and adaptive load distribution.
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.Each producer node 1, for example a producer micro-service 1, has a load distribution module which is grafted onto its output interface and which communicates with the input interface of each of the consumer nodes 2 in its list. , for example consumer micro-services 2. Each of the N producer nodes 1 knows its list of consumer nodes 2 from among the M consumer nodes 2, all the M consumer nodes 2 having at initialization an identical weight, for example of value 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.Every q seconds, for example every 5 seconds, each producer node 1 will place, within some of its produced and sent messages, a header specifying a request for evaluation of the processing time for the message considered. Thus the consumer nodes 2 will have weights which are dynamic because these are recalculated regularly.
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.Each consumer node 2 has a queue of messages to be processed, as well as a processing function which consumes these messages one after the other.
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.As soon as a message integrating a request for an evaluation of processing time is inserted in the queue, it is tagged with its arrival system time, and as soon as it leaves the processing function, it will be tagged with its system time departure, the difference between this starting system time and this arriving system time corresponding to the processing time of the message by this consumer node 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.As an acknowledgment message, the consumer node 2 responds to the producer node 1 that sent the processed message, preferably returning to it a parameter representative of the difference between its departure time and its arrival time, for example a weight, or alternatively, the processing time itself.
Ici, de cette différence, est généré un poids proportionnel à la vitesse d’exécution du nœud consommateur 2.Here, from this difference, a weight is generated proportional to the speed of execution of the consumer node 2.
Soit le poids d’un nœud consommateur i :Let the weight of a consumer node i:
Wj =------------- ti.arrivee .départ ce qui correspond à la formule (1).Wj = ------------- ti.arrivee .departure which corresponds to formula (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.This weight is updated in the table of consumer nodes of the producer node concerned. Each producer node independently collects the load information from each consumer node. Each producer node therefore maintains its own weight table of consumer nodes which can therefore be different from that of the other producer nodes.
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 :In order to obtain a precise weight, the invention preferably uses the concept of sliding average weight, defined by the average of the weights over a time window δ, defining a number of iterations making it possible to calculate a sliding average, given for a node consumer in particular:
.....Win} ce qui correspond à la formule (2)...... W in } which corresponds to formula (2).
Soit le poids moyen glissant du consommateur i, noté Wigliss, pour un ensemble de mesures de taille n:Let the sliding average weight of consumer i, noted Wigliss, for a set of measures of size n:
Wjgliss =Wjgliss =
et Wjgliss = 1 pour n = 0 ce qui correspond à la formule (3).and Wjgliss = 1 for n = 0 which corresponds to formula (3).
Ce poids glissant sert à pondérer le tirage aléatoire qui sert à choisir le nœud consommateur destinataire du prochain message.This sliding weight is used to weight the random draw which is used to choose the consumer node receiving the next 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.The weighting is done by comparison of the value drawn with a scale on which the consumer nodes are positioned according to their weight.
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.This scale goes from 0 to the value of the sum of the Wigliss. The value of each terminal on the scale is calculated based on the cumulative values of the previous terminals.
Avec N le nombre de nœuds consommateurs :With N the number of consumer nodes:
Pour i de 0 à N — 1: Borne; = Borne;.; + Wjgliss et Borne0 = 0For i from 0 to N - 1: Terminal; = Terminal;.; + Wjgliss and Terminal 0 = 0
Par exemple, si l’on reprend la partie de réseau de la figure 3, on obtient le calcul suivant.For example, if we take the network part of Figure 3, we get the following calculation.
Après initialisation du réseau, les nœuds producteurs PI et P2 ont tous les deux la même table de poids :After initialization of the network, the producer nodes PI and P2 both have the same weight table:
TABLE 1TABLE 1
Lors d’une première itération, les poids sont cumulés sur une échelle, et l’on obtient la table 2.During a first iteration, the weights are accumulated on a scale, and we obtain table 2.
TABLE 2TABLE 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.For the sending of their next message, the producer nodes PI and P2 take a value between 0 and 3. If this value is between 0 and 1, the next message will be sent to the consumer node Cl, if the value is between 1 and 2 , the message will be sent to the consumer node C2, if the value is between 2 and 3, the message will be sent to the consumer node C3. By convention, if the value is exactly 1, it will be sent to the consumer node C1, and if the value is exactly 2, it will be sent to the consumer node 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.Consider for example, as draw value 1.5 for the producer node PI and 2.2 for the producer node P2. The producer node PI therefore sends its message to the consumer node C2, while the producer node P2 sends its message to the consumer node 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.The consumer node C2 responds in 5 seconds to the producer node PI and the consumer node C3 responds in 2 seconds to the producer node P2.
En appliquant les formules (1), (2) et (3) présentées ci-dessus, on obtient pour le nœud producteur PI :By applying formulas (1), (2) and (3) presented above, we obtain for the producer node PI:
11
Wc2 o = 7------—-----= 7 = 0.2W c2 o = 7 ------—----- = 7 = 0.2
H.arrivee H.departH. arrival H. departure
ÔC2 : { 0.2 }ÔC2 : {0.2}
Wc2gliss = - * Wc20 = 0.2 et pour le nœud producteur P2 :W c2 gliss = - * W c20 = 0.2 and for the producer node P2:
1 wc3 0 = 7------—----= ? = 0.51 w c3 0 = 7 ------—---- = ? = 0.5
H.arrivee H.depart ôc3 : { 0.5}H. arrival H. departure ô c3 : {0.5}
Wc3gliss = - * Wc30 = 0.5W c3 gliss = - * W c30 = 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 tableThe producer nodes PI and P2 now have different weights for each of the consumer nodes Cl, C2 and C3, which gives the table
3.3.
TABLE 3TABLE 3
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.In a second iteration, the weights are accumulated on a scale which is updated, and we obtain table 4.
TABLE 4TABLE 4
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.The new random draw gives a value of 1.1 for the producer node PI and a value 0.3 for the producer node 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 C1.The producer node PI therefore sends its message to the consumer node C2 and the producer node P2 sends its message to the consumer node C1.
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.The consumer node C2 responds to the producer node PI in 2 seconds and the consumer node C1 responds to the producer node P2 in 10 seconds.
- = °.s- = ° .s
En appliquant de nouveau les formules (1), (2) et (3) pour le nœud producteur PI, on obtient : Wc2 X = -------ί----Li.arrivee Li.depart ôc2 :(0.2,0.5}By applying again the formulas (1), (2) and (3) for the producer node PI, we obtain: W c2 X = ------- ί ---- L i.arrivee L i.depart ô c2 : (0.2,0.5}
Wc2gliss = | * (Wc2 o + Wc2 J = 0.35 et pour le nœud producteur P2, on obtient :W c2 gliss = | * (W c2 o + W c2 J = 0.35 and for the producer node P2, we obtain:
wcl0=---------H.arrivee H.depart — = °-lw cl0 = --------- H. arrival H.departure - = ° -l
ÔC1 : {0.1}Ô C1 : {0.1}
Wclgliss = - * Wcl0 = 0.1W cl gliss = - * W cl0 = 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 tableThe producer nodes PI and P2 now have weights modified again for the consumer nodes Cl, C2 and C3, which gives the table
5.5.
TABLE 5TABLE 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.In a third iteration, the weights are accumulated on a scale which is updated, and we obtain table 6.
TABLE 6TABLE 6
Ainsi, les poids finaux pour les nœuds consommateurs Cl à C3 sont des poids moyens glissants dynamiques.Thus, the final weights for the consumer nodes C1 to C3 are dynamic sliding average weights.
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.FIG. 4 schematically represents an example of a cumulative weight scale allowing management of the peas of the consumer nodes in a network according to an embodiment of the 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.The cumulative weight scale represents the three consumer nodes C1, C2 and C3 at time tO in a tree, each consumer node being represented by a sheet 4 comprising the name of the node and the value of its weight.
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.The cumulative weight scale represents the three consumer nodes C1, C2 and C3 at time tl in the same tree, each consumer node being represented by a sheet 5 comprising the name of the node and the value of its weight which has possibly been modified.
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 O(log(n)).The cumulative weight scale is stored in the form of a cumulative weight table via a range tree, which brings average complexity with this technique in O (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.The leaves of the tree correspond to the boundaries of the intervals. The tree structure makes it possible to access the values in a given interval quickly and to recalculate the weights involves known algorithms.
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.One sees, for the nodes Cl, C2, C3, the limits of the intervals which are respectively 1/2/3, at time tO, and 1 / 1.2 / 2.2 at time 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.This tree data structure storing this cumulative weight scale not only makes it possible to respond functionally to the problem of storing a scale of values, but also it has an additional useful advantage which is to present very good access performance. and modification to the values stored there.
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.Of course, the present invention is not limited to the examples and to the embodiment described and shown, but it is susceptible of numerous variants accessible to those skilled in the art.
Claims (16)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1663408A FR3061391B1 (en) | 2016-12-27 | 2016-12-27 | COMPUTER NETWORK OF KNOTS COMMUNICATING BETWEEN THEM THROUGH PAIR MESSAGES AND INTERCONNECTION METHOD BETWEEN NODES ASSOCIATED THEREWITH |
CN201780086742.2A CN110431824B (en) | 2016-12-27 | 2017-12-27 | Computer network of nodes communicating with each other by means of peer-to-peer messages and associated method for interconnecting nodes |
PCT/FR2017/053853 WO2018122533A1 (en) | 2016-12-27 | 2017-12-27 | Computer network of nodes communicating with one another by peer-to-peer messages and associated method for interconnecting between nodes |
EP17838185.1A EP3563558A1 (en) | 2016-12-27 | 2017-12-27 | Computer network of nodes communicating with one another by peer-to-peer messages and associated method for interconnecting between nodes |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1663408A FR3061391B1 (en) | 2016-12-27 | 2016-12-27 | COMPUTER NETWORK OF KNOTS COMMUNICATING BETWEEN THEM THROUGH PAIR MESSAGES AND INTERCONNECTION METHOD BETWEEN NODES ASSOCIATED THEREWITH |
FR1663408 | 2016-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3061391A1 true FR3061391A1 (en) | 2018-06-29 |
FR3061391B1 FR3061391B1 (en) | 2019-05-31 |
Family
ID=58737663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1663408A Expired - Fee Related FR3061391B1 (en) | 2016-12-27 | 2016-12-27 | COMPUTER NETWORK OF KNOTS COMMUNICATING BETWEEN THEM THROUGH PAIR MESSAGES AND INTERCONNECTION METHOD BETWEEN NODES ASSOCIATED THEREWITH |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3563558A1 (en) |
CN (1) | CN110431824B (en) |
FR (1) | FR3061391B1 (en) |
WO (1) | WO2018122533A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112019689A (en) * | 2019-05-29 | 2020-12-01 | 北京奇虎科技有限公司 | Incoming call show service processing system and method |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070097986A1 (en) * | 2005-11-02 | 2007-05-03 | Abu-Amara Hosame H | Peer-to-peer communication architecture and terminals |
US20080046554A1 (en) * | 2003-10-20 | 2008-02-21 | Datta Glen V | Peer-to-peer relay network |
EP1903816A1 (en) * | 2006-09-22 | 2008-03-26 | Nokia Siemens Networks Gmbh & Co. Kg | Method for operating an access node and access node thereof |
US20100135168A1 (en) * | 2007-07-10 | 2010-06-03 | Yi-Ping Chen | Method for automatically determining a group of pairs located close to another pair in a communication network and associated server, analysis device and communication device |
US20110013018A1 (en) * | 2008-05-23 | 2011-01-20 | Leblond Raymond G | Automated camera response in a surveillance architecture |
US20110276633A1 (en) * | 2008-12-30 | 2011-11-10 | Telecom Italia S.P.A. | Method and system for data management in peer-to- peer network |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105898388B (en) * | 2016-04-05 | 2019-07-23 | 合一网络技术(北京)有限公司 | A kind of node download schedule method and apparatus |
-
2016
- 2016-12-27 FR FR1663408A patent/FR3061391B1/en not_active Expired - Fee Related
-
2017
- 2017-12-27 CN CN201780086742.2A patent/CN110431824B/en active Active
- 2017-12-27 WO PCT/FR2017/053853 patent/WO2018122533A1/en unknown
- 2017-12-27 EP EP17838185.1A patent/EP3563558A1/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046554A1 (en) * | 2003-10-20 | 2008-02-21 | Datta Glen V | Peer-to-peer relay network |
US20070097986A1 (en) * | 2005-11-02 | 2007-05-03 | Abu-Amara Hosame H | Peer-to-peer communication architecture and terminals |
EP1903816A1 (en) * | 2006-09-22 | 2008-03-26 | Nokia Siemens Networks Gmbh & Co. Kg | Method for operating an access node and access node thereof |
US20100135168A1 (en) * | 2007-07-10 | 2010-06-03 | Yi-Ping Chen | Method for automatically determining a group of pairs located close to another pair in a communication network and associated server, analysis device and communication device |
US20110013018A1 (en) * | 2008-05-23 | 2011-01-20 | Leblond Raymond G | Automated camera response in a surveillance architecture |
US20110276633A1 (en) * | 2008-12-30 | 2011-11-10 | Telecom Italia S.P.A. | Method and system for data management in peer-to- peer network |
Also Published As
Publication number | Publication date |
---|---|
EP3563558A1 (en) | 2019-11-06 |
CN110431824B (en) | 2022-05-10 |
CN110431824A (en) | 2019-11-08 |
WO2018122533A1 (en) | 2018-07-05 |
FR3061391B1 (en) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3189636B1 (en) | Method of monitoring and of warning of routing configuration in a cluster comprising static communication links and computer program implementing this method | |
EP3155771A1 (en) | Method of routing data and switch in a network | |
WO2006059040A1 (en) | Method and system for the dynamic adaptation of service quality metrics in an ad hoc network | |
FR2903548A1 (en) | METHOD FOR AUTOMATICALLY CONTROLLING A TELECOMMUNICATIONS NETWORK WITH LOCAL KNOWLEDGE MUTUALIZATION | |
FR2948247A1 (en) | METHOD AND SYSTEM FOR HIGH PERFORMANCE AND AUTOMATED MANAGEMENT OF VIRTUAL NETWORKS. | |
EP3891959A1 (en) | Gateway for communicating via radio network with at least one node and via a wired network, by means of a blockchain | |
WO2007065987A1 (en) | Method for rebuilding an ad hoc network and the nodes thereof | |
CN110275873A (en) | File memory method, device, storage management apparatus and storage medium | |
EP2955875B1 (en) | Server, client and system for managing an interconnection network | |
FR2998748A1 (en) | DEVICE AND METHOD FOR RETRANSMITTING DATA IN A NETWORK SWITCH | |
FR3061391A1 (en) | COMPUTER NETWORK OF KNOTS COMMUNICATING BETWEEN THEM THROUGH PAIR MESSAGES AND INTERCONNECTION METHOD BETWEEN NODES ASSOCIATED THEREWITH | |
EP0524089A1 (en) | Software structure for a data processing system, especially for a telecommunications system | |
EP3732565B1 (en) | Computer network of computing resource infrastructures and method for allocating said resources to client applications | |
EP3675435A1 (en) | Method for dynamic routing in a network of connected objects | |
EP3563233B1 (en) | Computer network of computing resource infrastructures and method for allocating these resources to client applications | |
FR3067832A1 (en) | SUPPLY OF INTER-GROUP SERVICES | |
EP0634724A1 (en) | Processing-system with shared memory | |
WO2024161090A1 (en) | Determining a consensus for adding a block to a blockchain | |
FR3003109A1 (en) | METHOD OF CONGESTION CONTROL FOR TELECOMMUNICATIONS NETWORKS | |
FR3121566A1 (en) | Method and device for providing a communication resource | |
WO2016110583A1 (en) | Method of protocol management and operation of a content distribution network | |
WO2023031288A1 (en) | Method for determining an interconnection topology between switches of a communication network, corresponding computer program product and corresponding device | |
FR3095914A1 (en) | Method of dynamic routing in a network of connected objects | |
WO2009013440A1 (en) | Method for exchanging messages between a session data server and client services | |
WO2009056743A2 (en) | Device and method for supervising source equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20180629 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
ST | Notification of lapse |
Effective date: 20210806 |