WO2018122533A1 - Reseau informatique de noeuds communiquant entre eux par messages en pair a pair et procede d'interconnexion entre noeuds associe - Google Patents

Reseau informatique de noeuds communiquant entre eux par messages en pair a pair et procede d'interconnexion entre noeuds associe Download PDF

Info

Publication number
WO2018122533A1
WO2018122533A1 PCT/FR2017/053853 FR2017053853W WO2018122533A1 WO 2018122533 A1 WO2018122533 A1 WO 2018122533A1 FR 2017053853 W FR2017053853 W FR 2017053853W WO 2018122533 A1 WO2018122533 A1 WO 2018122533A1
Authority
WO
WIPO (PCT)
Prior art keywords
nodes
node
messages
consumer
network
Prior art date
Application number
PCT/FR2017/053853
Other languages
English (en)
Inventor
Adrien PLAGNOL
Chary TITOUAN
Original Assignee
Worldline
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Worldline filed Critical Worldline
Priority to EP17838185.1A priority Critical patent/EP3563558A1/fr
Priority to CN201780086742.2A priority patent/CN110431824B/zh
Publication of WO2018122533A1 publication Critical patent/WO2018122533A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals

Definitions

  • the invention relates to the field of node networks communicating with each other by peer-to-peer messages as well as the domain of interconnection processes between nodes in a network of nodes communicating with each other by peer-to-peer messages.
  • the network of nodes considered is for example an architecture of micro-services, respectively distributed on potentially several machines, having for example not the same addresses between them, not being for example not all on the same network, not presenting between them for example not the same computing capacity.
  • each micro-service can have a potentially undefined life time.
  • the heterogeneous nature of this micro-services architecture makes it more fragile compared to imponderable events, of the localized fault type, and therefore difficult to manage.
  • the network of nodes so that its nodes communicate with each other, goes initially in an initial phase to interconnect the nodes between them, then goes in a phase of update during the life of the network to maintain and to adapt the interconnections between the nodes of the network.
  • the message distribution system will communicate micro services between them through a message passing system.
  • a message passing system For this, it can use an implementation centered on a broker of messages ("broker" in English language).
  • peer to peer a network of nodes exchanging messages in peer-to-peer ("peer to peer") and an associated interconnection method, which are both managed by a central interconnection device .
  • peer to peer a network of nodes exchanging messages in peer-to-peer
  • 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 is a weak link in the network, a single point of failure (SPF), including a failure, even temporary, will disrupt the operation of the network and significantly degrade its performance of transmission efficiency and message processing.
  • SPF single point of failure
  • the message broker-based system can be centralized (such as "RabbitMQ" or "ActiveMQ”), but it has a significant limitation because this centralized system will be a single point of failure that can disrupt the operation. network and degrade its capabilities.
  • a network of nodes exchanging messages in peer-to-peer (“peer to peer” in English) and an associated interconnection method, which are both fully distributed.
  • peer to peer in English
  • a disadvantage of this second prior art is that the robustness related to this fully distributed character, in particular in a network of nodes exchanging peer-to-peer messages, becomes a weakness when the size of the messages exchanged within the network becomes important. 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 degrade its performance in transmission efficiency and message processing.
  • the message broker-based system can be distributed (as for example "Kafka"), but it has an important limitation, because this distributed system will become operationally limited as soon as the size and the volume of the messages that he will have to pass will become too important.
  • 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.
  • the object of the invention is to provide a network of nodes and / or an interconnection method, for which a good compromise between robustness of operation of the network on the one hand and efficiency of operation of this network on the other hand is realized. .
  • the robustness of operation 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.
  • a given component for example a central component
  • 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, fails, at least for the case of a temporary breakdown, the most frequent case.
  • the invention proposes a network in which the producing nodes, on the one hand each manage their list of consumer nodes, 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 messages produced, by deleting, at least temporarily from their list, consumer nodes that are too slow to process the messages. received messages from the producer node corresponding to this list.
  • the present invention proposes a computer network of nodes communicating with each other by peer-to-peer messages, message producing nodes sending their product messages to message consumer nodes, a consumer node that can be also a producer node at another level of the network, characterized in that each message producing node: chooses, among the nodes registered as active in the network, its consumer nodes to interconnect with them, maintains the list of its nodes interconnected consumer nodes, manages the load balancing of its product messages to its interconnected consumer nodes, as a function of processing time, by its interconnected consumer nodes, of its product messages, by sending its product messages especially to its more interconnected consumer nodes.
  • low processing time modifies its list of interconnected consumer nodes according to the processing time, by its interconnected consumer nodes, its messages produced, removing from its list at least temporarily its interconnected consumer nodes too slow.
  • the present invention also proposes a method of interconnection and communication between nodes in a computer network according to the invention.
  • the present invention also proposes 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 generated messages to message consumer nodes, a node a consumer which can also be a producer node at 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, keeps up to date 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 generated messages, by deleting from its list at least temporarily its interconnected consumer nodes too slow.
  • the very large nature of the data exchanged and the critical real time character of the processing of these exchanged data make the use of node network according to the invention and the associated interconnection method particularly interesting.
  • the network will use a peer-to-peer message passing system that will be self-adaptive and highly resilient.
  • This system will make it possible to establish a communication between micro-services through a communication channel functionally identical to a data bus, but whose implementation is based on direct communication between the microservices themselves.
  • each micro-service is responsible for maintaining the list of its peers in the network, as well as load distribution when distributing messages to these peers.
  • This system makes it possible to create data flows between micro-services that will be able to withstand even a large scale change, while maintaining a strong resilience in the event of the disappearance of nodes or in the event of communication links being cut off. the network.
  • the invention comprises one or more of the following features which can be used separately or in partial combination with one another or in total combination with one another, or with one or the other of the aforementioned objects of the invention. .
  • the nodes register as active in the network with a centralized register in the network, which register diffuses 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 (“broadcast" in English) is a different type of communication from peer-to-peer messaging.
  • said register does not establish for a given particular producer node the list of its interconnected consumer nodes, and said register does not send to any particular producer node the list of its interconnected consumer nodes.
  • the good functioning of the register at least a part of the time remains useful, insofar as only the register can signal to the different producing nodes the changes occurring in the topology of the network, thus allowing these producing nodes to update each one. their list of consumer nodes, thereby allowing each producing node to operate with a list of consumer nodes that is optimized in terms of efficiency relative to the instant topology of the node network.
  • the management of the evolution of the network topology in a distributed manner at each producing node remains possible, but this would reduce the operating efficiency of the network.
  • the nodes register periodically as active in the network with the register, as long as they are able to process messages, the recording period preferably being less than or equal to 10 seconds, any active node that is missing at least two recording periods, preferably at least one recording period, are deleted from the list of active nodes by the register.
  • the recording period preferably being less than or equal to 10 seconds
  • any active node that is missing at least two recording periods, preferably at least one recording period are deleted from the list of active nodes by the register.
  • this periodic recording is a little tedious for each consumer node, it allows on the other hand to further improve the compromise between robustness of operation and efficiency of network operation, insofar as it has the effect of temporarily removing any node a deficient consumer, and to suppress it only for approximately the duration of his disability, for the duration of a close registration period.
  • each message producing node can modify its list of interconnected consumer nodes by possibly adding a newly registered consumer node if it is able to consume messages produced by said producer node.
  • each producing node can increase its list of consumer nodes in real time, and thus improve its load management in terms of product messages sent in real time as well.
  • each consumer node sends, at least for some messages received from a producer node, its processing time of these messages or a representative weight of its processing time of 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 processing time evaluation request in all or part of the messages that it sends to each of its interconnected consumer nodes .
  • each consumer node can update the performance of all consumer nodes in its list and adapt the load management of its messages produced accordingly, just as often as it wants, it is sufficient for it to choose the proportion of his product messages to which he adds a request for evaluation of processing time.
  • each message producing node manages the load balancing of its product messages to its interconnected consumer nodes, based on the processing times or weights sent by its interconnected consumer nodes, sending more product messages to the interconnected consumer nodes. whose treatment times are lower or the weights correspond to lower processing times.
  • each producing node improves the load management of its product messages, thus improving the overall efficiency of transmission of the messages produced and their processing in the network.
  • each producer node calculates a sliding average weight over time for each of its interconnected consumer nodes, which it uses to manage the load balancing of its product messages to its interconnected consumer nodes. In this way, the calculated parameter is on the one hand well representative of the processing speed of the messages received by a consumer node, while smoothing point variations not representative of this parameter, reducing the risks of instability and divergence of enslavement according to the variations of this parameter.
  • each producer node loads its interconnected consumer nodes in a weighted random manner, so that the probability for its interconnected consumer nodes to receive 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 the fair and distributed use of all available consumer nodes, a factor that improves the robustness of network operation by avoiding overloading high-performance consumer nodes to avoid their collapse factor of instability in the network, and secondly the operating efficiency of the network by using priority and more often the fastest consumer nodes.
  • each node is a micro-service that exchanges messages with at least one other node, each micro-service being either a processor that processes data received from one node of the network to then send that processed data to another node of the network, preferably said processing being reduced to a single processing task performed on these data, either a source that produces data to be injected into the network to at least one processor, or a sink that exports the processed data by at least one processor to a third-party system on the network.
  • This type of network is particularly adapted to the use of the invention, in the as its nodes perform a lot of relatively simple operations on a lot of data.
  • At least one of the processors preferably the majority of the processors, still more preferably all the processors, filters the received data and then routes them to different types of nodes in the network.
  • This is a particularly representative example of simple operations achievements in large numbers on a large volume of data.
  • a type of producer node is a filter which separates the received messages according to a criterion to be filled, to direct them towards three types of consumer nodes respectively according to whether said criterion is fulfilled, or not filled, or perhaps filled.
  • a filter which separates the received messages according to a criterion to be filled, to direct them towards three types of consumer nodes respectively according to whether said criterion is fulfilled, or not filled, or perhaps filled.
  • the messages are representative of banking transactions
  • the criterion is the fraudulent nature or not of a banking transaction.
  • the very large character of the exchanged data and the critical real time character of the processing of these exchanged data make the use of the node network according to the invention as well as the associated interconnection method particularly interesting.
  • the messages are representative of images filmed by CCTV cameras
  • the criterion is the character of presence or absence of delictual risk related to the content of a filmed image or a sequence of images. images filmed by these CCTV cameras.
  • the very large character of the exchanged data and the critical real time character of the processing of these exchanged data make the use of the node network according to the invention as well as the associated interconnection method particularly interesting.
  • Figure 1 schematically shows an example of a network part according to one embodiment of the invention.
  • FIG. 2 diagrammatically represents an example of a network part according to one embodiment of the invention.
  • Figure 3 schematically shows an example of a network part according to one embodiment of the invention.
  • FIG. 4 schematically represents an example of a scale of the cumulative weights allowing management of the peas of the consumer nodes in a network according to one embodiment of the invention.
  • FIG. 1 schematically represents an example of a network portion according to one embodiment of the invention.
  • the network 6 comprises producing nodes 1 and consuming nodes 2.
  • the nodes A, B, C and D are represented the nodes A, B, C and D.
  • the node A is a producer node 1.
  • the node B is a consumer node 2 at the level of the link between the nodes A and B in the network 6, while the same node B is a producer node 1 at the link between the nodes B and C in the network 6 as well as at the link between the nodes.
  • Node B is a producer node 1 or a consumer node 2, depending on the level of the network 6 considered.
  • node A is only a producer node
  • 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.
  • the messages produced by the producer node A go to the consumer node B and only circulate in this direction, to be consumed by the consumer node B.
  • the messages produced by the producer node B go to the consumer node C and only circulate in this direction, to be consumed by the consumer node C.
  • the messages produced by the producer node B go to the consumer node D and only circulate in this direction, to be consumed by the consumer node 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.
  • the node A knows the node B to which it transmits the messages that it produces.
  • Node B knows the nodes C and D to which it transmits the messages it produces, each message being sent to either node C or node D.
  • This list of consumer nodes 2 is initialized by a request to a register 3 to which each producer node 1 or consumer 2 belongs at its instantiation.
  • 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 represented in FIG. 1 is not affected.
  • Each producer node 1 or consumer 2 register, at its instantiation, in the register 3. It will send thereafter a new registration request at regular intervals, for example every 5 or 10 seconds, with the register 3. From this way, if the 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.
  • FIG. 2 diagrammatically represents an example of a network part according to one embodiment of the invention.
  • the part of the network 6 is first shown at a time T0 and then at a time T1.
  • the node A is interconnected with the node B and the node B is interconnected with the node C.
  • the node A sends messages towards the node B which sends messages towards the node C.
  • register 3 broadcasts the information that node D has registered with it. Neither node A nor node C interconnect with node D.
  • the node B is interconnected with the node D.
  • the node A is interconnected with the node B and the node B is interconnected with the nodes C and D.
  • the node A sends messages to node B that sends messages to either node C or node D.
  • the register 3 has the role of transmitting all the events it processes broadcast to all the nodes 1 and 2 of the network 6 that it knows. Thus, when a new node 1 or 2 is declared, all the other nodes 1 or 2 are informed and the producer nodes 1 choose to connect to it depending on whether this new node is part of their stream or not.
  • the register 3 broadcasts 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.
  • Each consumer node 2 maintains the median response time on a sliding window of N message sends, which is called Tmed.
  • Tmed a sliding window of N message sends
  • the request is aborted. This request will be immediately reissued under the same conditions.
  • the sending of the message is considered as failed and the target consumer node 2 is removed from the list of target consumer nodes 2 of the producer node 1 unsuccessfully trying to send him messages. This procedure makes it possible to quickly eliminate the consumer nodes 2 whose response time becomes abnormally high.
  • the loss, at least temporary, of the register 3 has no impact on the operation of the network 6.
  • the register 3 is used to distribute the knowledge of the topology of micro-services, but once it acquired, the network 6 becomes autonomous for its operation, and n ' again needs register 3 only when changing network topology 6.
  • Figure 3 schematically shows an example of a network part according to one embodiment of the invention.
  • the network 6 comprises producer nodes 1 and consumer nodes 2.
  • the nodes PI and P2 are producing nodes 1, at the level of links considered.
  • the nodes C1, C2 and C3 are consumer nodes 2, at the level of links considered.
  • a register 3 diffuses to all the nodes PI, P2, C1, 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.
  • the messages produced by the producer node PI go to the consumer nodes C1 and C2, and only circulate in this direction, to be consumed by the consumer nodes C1 and C2.
  • the messages produced by the producer node P2 go to the consumer nodes C1, C2 and C3, and only circulate in this direction, to be consumed by the consumer nodes C1, C2 and C3.
  • Load balancing is a technique used by large networks to balance the solicitation of the servers.
  • the network 6 according to the invention has set up a dynamic, intelligent and adaptive load distribution.
  • Each producer node for example a producer micro-service 1, has a load distribution module which is grafted at its output interface and which communicates with the input interface of each of the consumer nodes 2 of its list. , for example consumer micro-services 2.
  • Each of the N producer nodes 1 knows its list of consumer nodes 2 among the M consumer nodes 2, all M consumer nodes 2 having at initialization an identical weight, for example a value of 1 .
  • each producing node 1 will place, within some of its messages produced and sent, a header specifying a request for evaluation of the processing time for the message considered.
  • consumer nodes 2 will have weights that are dynamic because they are recalculated regularly.
  • Each consumer node 2 has a queue of messages to be processed, as well as a processing function that consumes these messages one after the other.
  • the consumer node 2 responds to the producer node 1 having sent the processed message, preferably returning to it a parameter representative of the difference between its start time and its arrival time, for example a weight, alternatively, the treatment time itself.
  • a parameter representative of the difference between its start time and its arrival time for example a weight, alternatively, the treatment time itself.
  • This weight is updated in the consumer node table of the producing node concerned.
  • Each producer node independently harvests the load information of 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 producing nodes.
  • the invention preferentially uses the notion 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:
  • This sliding weight is used to weight the random draw used to select the destination consumer node of the next message.
  • the weighting is done by comparing the value drawn with a scale on which the consumer nodes are positioned according to their weight.
  • This scale goes from 0 to the value of the sum of Wigliss.
  • the value of each terminal of the scale is calculated according to the accumulated values of the previous terminals.
  • the producer nodes PI and P2 both have the same weight table:
  • the weights are cumulated on a scale, and we obtain the table 2.
  • the producer nodes PI and P2 derive a value between 0 and 3. If this value is between 0 and 1, the next message will be sent to the consumer node C1, 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.
  • the producer node PI sends its message to the consumer node C2, while the producer node P2 sends its message to the consumer node C3.
  • 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.
  • the producer nodes PI and P2 now have different weights for each of the consumer nodes C1, C2 and C3, which gives the table 3.
  • the producer node PI sends its message to the consumer node C2 and the producer node P2 sends its message to the consumer node C1.
  • 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.
  • o c2 ⁇ 0.2, 0.5 ⁇
  • the final weights for consumer nodes C1 to C3 are dynamic sliding average weights.
  • FIG. 4 schematically represents an example of a scale of the cumulative weights allowing management of the peas of the consumer nodes in a network according to one embodiment of the invention.
  • the cumulative weight scale represents the three consumer nodes C1, C2 and C3 at the time t0 in a tree, each consumer node being represented by a sheet 4 comprising the name of the node and the value of its weight.
  • the cumulative weight scale represents the three consumer nodes C1, C2 and C3 at time t1 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 may have been modified.
  • the cumulative weight scale is stored as a cumulative weight table via an interval tree ("range tree” in English), which brings average complexity with this technique in 0 (log (n)).
  • the leaves of the tree correspond to the boundaries of the intervals.
  • the tree structure provides access to values in a given interval quickly and recalculating weights involves known algorithms.
  • This tree data structure storing this accumulated weight scale not only satisfies the storage problem of a scale of values, but also presents a useful additional advantage which is to have very good access and modification performance to the values stored therein.

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.

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 :
Figure imgf000017_0001
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
Figure imgf000017_0002
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 Borne0 = 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
Figure imgf000018_0001
Lors d'une première itération, les poids sont cumulés sur une échelle, et l'on obtient la table 2.
TABLE 2
Figure imgf000018_0002
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
Wc2 o = ; — = - = 0.2
n.arrivee n.depart ^
ôc2 = { 0.2 }
1
Wc2gliss = - * Wc2 0 = 0.2
et pour le nœud producteur P2 :
1 1
Wc3 o = ; — = j = 0.5
n.arrivee ^-i.depart ^
ôc3 : { 0.5 }
Wc3gliss = - * Wc3 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
Figure imgf000019_0001
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
Wc2 ! = — = - = 0.5
ti.arrivee ^-i.depart ^
ôc2 = { 0.2, 0.5 }
Wc2gliss = - * (Wc2 0 + Wc2 1) = 0.35
et pour le nœud producteur P2, on obtient :
1 1
WCL o = = —— = 0.1
.arrivee .depart -L U
6C1 : { 0.1 }
Wclgliss = * Wc1 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
Figure imgf000021_0001
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.

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.
PCT/FR2017/053853 2016-12-27 2017-12-27 Reseau informatique de noeuds communiquant entre eux par messages en pair a pair et procede d'interconnexion entre noeuds associe WO2018122533A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP17838185.1A EP3563558A1 (fr) 2016-12-27 2017-12-27 Reseau informatique de noeuds communiquant entre eux par messages en pair a pair et procede d'interconnexion entre noeuds associe
CN201780086742.2A CN110431824B (zh) 2016-12-27 2017-12-27 通过对等消息彼此通信的节点的计算机网络以及关联的用于使节点之间互连的方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1663408 2016-12-27
FR1663408A FR3061391B1 (fr) 2016-12-27 2016-12-27 Reseau informatique de noeuds communiquant entre eux par messages en pair a pair et procede d'interconnexion entre noeuds associe

Publications (1)

Publication Number Publication Date
WO2018122533A1 true WO2018122533A1 (fr) 2018-07-05

Family

ID=58737663

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2017/053853 WO2018122533A1 (fr) 2016-12-27 2017-12-27 Reseau informatique de noeuds communiquant entre eux par messages en pair a pair et procede d'interconnexion entre noeuds associe

Country Status (4)

Country Link
EP (1) EP3563558A1 (fr)
CN (1) CN110431824B (fr)
FR (1) FR3061391B1 (fr)
WO (1) WO2018122533A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112019689A (zh) * 2019-05-29 2020-12-01 北京奇虎科技有限公司 来电秀业务处理***及方法

Citations (6)

* Cited by examiner, † Cited by third party
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 (fr) * 2006-09-22 2008-03-26 Nokia Siemens Networks Gmbh & Co. Kg Procédé pour exploiter un noeud d'accès et noeud d'accès correspondant
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105898388B (zh) * 2016-04-05 2019-07-23 合一网络技术(北京)有限公司 一种节点下载调度方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
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 (fr) * 2006-09-22 2008-03-26 Nokia Siemens Networks Gmbh & Co. Kg Procédé pour exploiter un noeud d'accès et noeud d'accès correspondant
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112019689A (zh) * 2019-05-29 2020-12-01 北京奇虎科技有限公司 来电秀业务处理***及方法

Also Published As

Publication number Publication date
CN110431824B (zh) 2022-05-10
FR3061391B1 (fr) 2019-05-31
FR3061391A1 (fr) 2018-06-29
EP3563558A1 (fr) 2019-11-06
CN110431824A (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
EP3189636B1 (fr) Procédé de surveillance et d'alerte de configuration de routage dans un cluster comprenant des liens de communication statiques et programme d'ordinateur mettant en oeuvre ce procédé
EP1388058A1 (fr) Procede de communication et/ou de partage de ressources machines, entre une pluralite de membres d'une communaute, au sein d'un reseau de communication
FR2948247A1 (fr) Procede et systeme pour la gestion performante et automatisee de reseaux virtuels.
FR2903548A1 (fr) Procede de pilotage automatique d'un reseau de telecommunications avec mutualisation locale de connaissances
EP1958398A1 (fr) Procede de reconstruction d'un reseau ad hoc et des n uds du reseau correspondant
EP1387538B1 (fr) Dispositif et procédé de détermination de chemins de routage dans un réseau de communications, en présence d'attributs de sélection
EP3563558A1 (fr) Reseau informatique de noeuds communiquant entre eux par messages en pair a pair et procede d'interconnexion entre noeuds associe
EP3732565B1 (fr) Reseau informatique d'infrastructures de ressources de calcul et procede d'affectation de ces ressources a des applications client
WO2012085432A1 (fr) Procede et dispositif de communication de donnees numeriques
EP2577920B1 (fr) Procédé de routage pseudo-dynamique dans un cluster comprenant des liens de communication statiques et programme d'ordinateur mettant en oeuvre ce procédé
WO2015173274A1 (fr) Architecture de correlation d'evenements pour la surveillance de supercalculateur
EP3563233B1 (fr) Réseau informatique d'infrastructures de ressources de calcul et procédé d'affectation de ces ressources a des applications client
EP3675435A1 (fr) Procédé de routage dynamique dans un réseau d'objets connectés
EP3205067B1 (fr) Diffusion de contenus en streaming dans un réseau pair à pair
WO2014135793A1 (fr) Procédé d'allocation de ressources pour la mise en œuvre de réseaux virtuels dans un réseau de télécommunication
WO2023031288A1 (fr) Procédé de détermination d'une topologie d'interconnexion entre commutateurs d'un réseau de communication, produit programme d'ordinateur et dispositif correspondants
WO2005020506A1 (fr) Procédé de localisation d'objets mobiles communicants au sein d'un réseau de communications, par transmission d'identifiants de localisation par des répéteurs et mise à jour de serveur
WO2022208017A1 (fr) Procede, dispositif et systeme de mise a disposition d'une ressource de communication
WO2014135794A1 (fr) Procede de controle de congestion pour reseaux de telecommunications
FR3095914A1 (fr) Procédé de routage dynamique dans un réseau d’objets connectés
WO2023067267A1 (fr) Methode de transmission de donnees dans un reseau maille et dispositif de communication dans un tel reseau
WO2023217639A1 (fr) Procédé, dispositif et système d'élaboration dynamique d'une infrastructure de données
WO2009013440A1 (fr) Procede d'echange de messages entre serveur de donnees de session et des services clients
FR2816419A1 (fr) Procede de repartition de charge entre serveurs d'un systeme informatique distribue
FR3059184A1 (fr) Procede de routage d'au moins un flux de donnees dans un reseau de communication sans fil

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17838185

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017838185

Country of ref document: EP

Effective date: 20190729