METHOD OF MANAGING MESSAGE DELIVERY IN A COMPUTING INFRASTRUCTURE AND ASSOCIATED COMPUTING INFRASTRUCTURE
20230056478 ยท 2023-02-23
Inventors
Cpc classification
H04L9/3297
ELECTRICITY
International classification
H04L9/32
ELECTRICITY
Abstract
A method for managing message delivery in a computing infrastructure. For each message to be delivered, the message is sent simultaneously by a transmitting component, to each server of a plurality of receiving servers. For each server that received the sent message, the server computes a signature specific to the message received, which is identical for each server, and the server sends the computed signature to a synchronization component. The sent signature is received by the synchronization component. If a first condition according to which the received signature is not stored in a signature database is met, the received signature is stored in the signature database and an instruction is sent to store or transmit the received message to the server by the synchronization component. Otherwise, the synchronization component sends an instruction to the server to delete the received message and the computed signature.
Claims
1. A method for managing a delivery of messages, each message of said messages being associated via a piece of information relating to an origin of said each message, with a transmitting component that is to send the each message and is associated via a piece of information relating to a destination of said each message, with a plurality of receiving servers to which the each message is to be sent, in a computing infrastructure, wherein for said each message to be delivered, the method comprises: sending the each message simultaneously by the transmitting component of the computing infrastructure to each server of the plurality of receiving servers of the computing infrastructure for said each server of the plurality of receiving servers that received the each message that is sent and stores the each message that is received in : a memory of said each server computing by the each server, a signature specific to the each message that is received, the signature that is computed being identical for said each server ; sending by the each server, the signature that is computed to a synchronization component, the synchronization component being a separate server from each server of the plurality of receiving servers; receiving the signature that is sent and querying a signature database by the synchronization component to if a first condition that the received signature that is received is not stored in the signature database is met, store the signature that is received in the signature database and sending an instruction to store or an instruction to transmit the received each message that is received to the each server by the synchronization component; otherwise, send by the synchronization component an instruction to the each server to delete the each message that is received and the signature that is computed.
2. The method according to claim 1, wherein said each message to be delivered is time-stamped.
3. The method according to claim 1, wherein said each message to be delivered is a message relating to an event that occurred in the computing infrastructure.
4. The method according to claim 1, wherein said computing the signature is carried out using a hashing algorithm.
5. The method according to claim 1, further comprising, upon receipt of the instruction to store by the each server storing by the each server, the each message that is received on a storage device of the computing infrastructure.
6. The method according to claim 1, further comprising, upon receipt of the instruction to transmit by the each server transmitting by the each server the each message that is received to a third-party component of the computing infrastructure.
7. The method according to claim 1, further comprising, upon receipt of the instruction to delete by the each server, deleting, by the each server, the each message that is received and the signature that is computed.
8. The method according to claim 1, further comprising erasing at least a portion of the signature database at regular interval.
9. A computing infrastructure with message delivery management, comprising: at least one transmitting component at least one plurality of receiving servers at least one synchronization component, the at least one synchronization component being a server separate from each server of the at least one plurality of receiving servers, and at least one signature database, wherein the at least one transmitting component is configured to simultaneously send at least one message to said each server of the at least one plurality of receiving servers, wherein each message of the at least one message is associated via a piece of information relating to an origin of the each message, with a given transmitting component of the at least one transmitting component that is to send the each message, and is associated via a piece of information relating to a destination of the each message, with a given plurality of receiving servers of said at least one plurality of receiving servers to which the each message is to be sent, wherein said each server of the at least one plurality of receiving servers is configured to, upon receipt of said at least one message sent by the at least one transmitting component, store the at least one message that is received a memory of said each server, and compute a signature specific to the at least one message that is received, wherein the signature that is computed is identical for said each server of the at least one plurality of receiving servers, and to send the signature that is computed to the at least one synchronization component, wherein the at least one synchronization component is configured to receive each signature sent by said each server of the at least one plurality of receiving servers, to query the at least one signature database to determine whether said each signature that is received is stored in the at least one signature database, to store in the at least one signature database said each received signature that is received not stored in the at least one signature database, to send a storage instruction ora transmission instruction to said each server that sent a signature not stored in the at least one signature database, and to send a deletion instruction to said each server that sent a the signature stored in the at least one signature database.
10. The computing infrastructure according to claim 9, further comprising a storage device, wherein said each server of the at least one plurality of receiving servers being further configured to store the signature that is computed on the storage device upon receipt of the storage instruction sent by the at least one synchronization component.
11. The computing infrastructure according to claim 9, further comprising a third-party component, wherein said each server of the at least one plurality of receiving servers being further configured to transmit the at least one message that is received to the third-party component upon receipt of a the transmission instruction sent by the at least one synchronization component.
12. The computing infrastructure according to claim 9, wherein said each server of the at least one plurality of receiving servers being further configured to delete the at least one message that is received and the signature that is computed upon receipt of the deletion instruction sent by the at least one synchronization component.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0038] The figures are presented by way of reference and are in no way limiting to one or mor embodiments of the invention.
[0039]
[0040]
DETAILED DESCRIPTION OF THE INVENTION
[0041] Unless otherwise stated, the same element appearing in different figures has the same reference.
[0042] At least one embodiment of the invention relates to a method for managing message delivery in a computing infrastructure.
[0043] The messages to be delivered can correspond to all the messages exchanged within the computing infrastructure or to at least one particular type of messages, for example messages relating to events that have taken place in the computing infrastructure, called logs, or even alert messages.
[0044] Regardless of the type of message, each message contains information relating to its origin, information relating to its destination and content to be transmitted.
[0045] Each message can furthermore comprise a piece of information relating to a time-stamp.
[0046] At least one embodiment of the invention relates to a computing infrastructure with message delivery management.
[0047] In particular, the computing infrastructure according to one or more embodiments of the invention is suitable for implementing the method according to the invention.
[0048]
[0049] The computing infrastructure 200 according to one or more embodiments of the invention comprises: [0050] At least one transmitting component 201; [0051] At least one plurality of receiving servers 202-1, 202-2; [0052] At least one synchronization component 203; [0053] At least one signature database 204.
[0054] The transmitting component 201 can be any type of component capable of sending a message, for example a hardware component such as a server, a router or even a switch.
[0055] Each message to be delivered is associated, via the information relating to its origin, with a given transmitting component 201 that is to send the message to be delivered and is associated, via the information relating to its destination, with a given plurality of receiving servers to which the message to be delivered must be sent.
[0056] The transmitting component 201 may send multiple messages for delivery, each associated with different pluralities of receiving servers. For example, in one or more embodiments, the transmitting component 201 may send a first message to a first plurality of receiving servers and a second message to a second plurality of receiving servers.
[0057] The plurality of receiving servers comprises at least two servers 202-1, 202-2 and each server 202-1, 202-2 comprises at least one memory.
[0058] In
[0059] According to at least one embodiment, the synchronization component 203 is a server not comprised in the plurality of receiving servers and therefore not intended to receive the messages to be delivered.
[0060] According to at least one embodiment, the synchronization component 203 comprises one synchronization module per server 202-1, 202-2 of the plurality of receiving servers and each synchronization module is capable of communicating with the other synchronization modules comprised in the synchronization component 203.
[0061] The synchronization component 203 is highly available.
[0062] The computing infrastructure 200 may also comprise at least one storage device 205.
[0063] The storage device 205 is for example intended for storing messages exchanged in the computing infrastructure 200.
[0064] The storage device 205 comprises for example at least one disk, such as a Non-Volatile Memory Express (NVME) or Solid-State Drive (SSD) disk.
[0065] The computing infrastructure 200 may also comprise at least one third-party component 206 separate from the transmitting component 201 and the servers 202-1, 202-2 of the plurality of receiving servers.
[0066] The third-party component 206 is for example a server intended for managing message storage in the computing infrastructure 200.
[0067] The signature database 204 is adapted to store at least one signature obtained from a message.
[0068]
[0069] The steps of the method 100 according to at least one embodiment of the invention are carried out for each message to be delivered.
[0070] A first step 101 of the method 100 is for the transmitting component 201 associated with the message to be delivered, that is having to deliver the message, to send the message to each server 202-1, 202-2 of the plurality of receiving servers associated with the message to be delivered, that is, to which the message to be delivered is to be sent.
[0071] The first step 101 thus comprises a substep of duplicating the message to be delivered to obtain as many duplicates of the message to be delivered as there are servers 202-1, 202-2 in the plurality of receiving servers.
[0072] The sending is carried out simultaneously, that is, each duplicate of the message to be delivered is sent simultaneously to each server 202-1, 202-2 of the plurality of receiving servers.
[0073] A second step 102 of the method 100 consists of each server 202-1, 202-2 of the plurality of receiving servers that received the message sent in the first step 101 computing a signature from the received message.
[0074] Upon receipt of the message, each server 202-1, 202-2 of the plurality of receiving servers stores the received message in its memory.
[0075] A signature uniquely identifies a message and is therefore different for each message to be delivered.
[0076] The signature is for example computed by applying a hashing algorithm to the received message.
[0077] The hashing algorithm should preferably be as fast as possible.
[0078] The hashing algorithm can use a cryptographic hash function, for example Message Digest 5 (MD5) or Secure Hashing algorithm (SHA).
[0079] The signature is computed in the same manner by each server 202-1, 202-2 of the plurality of receiving servers that received the message. Because each server 202-1, 202-2 of the plurality of receiving servers received a duplicate of the message, each server 202-1, 202-2 of the plurality of receiving servers computes the same signature in the second step 102, that is the computed signature is identical for each server 202-1, 202-2 of the plurality of receiving servers that received the message.
[0080] Once the signature is computed, according to one or more embodiments, each server 202-1, 202-2 of the plurality of receiving servers stores the computed signature in its memory.
[0081] A third step 103 of the method 100 is for each server 202-1, 202-2 of the plurality of receiving servers that computed a signature in the second step 102, to send the computed signature to the synchronization component 103.
[0082] The sending is carried out independently by each server 202-1, 202-2 of the plurality of receiving servers that computed a signature in the second step 102, according to one or more embodiments.
[0083] A fourth step 104 of the method 100 is for the synchronization component 203 to receive each signature sent in the third step 103.
[0084] Because the sending is carried out independently by each server 202-1, 202-2 of the plurality of receiving servers in the third step 103, the synchronization component 203 can receive each signature sent at a different time, and thus receive the signatures sent in a staggered fashion.
[0085] Upon receipt of a signature by the synchronization component 203, a fifth step 105 of the method 100 is carried out for the received signature, according to one or more embodiments.
[0086] The fifth step 105 consists of the synchronization component 203 querying the signature database 204 to test whether a first condition Cl related to the received signature is met.
[0087] The first condition Cl is met if the received signature is not stored in the signature database 204.
[0088] Conversely, in at least one embodiment, the first condition Cl is not met if the received signature is stored in the signature database 204.
[0089] If the first condition Cl is met for the received signature, a sixth step 106 and a seventh step 107 of the method 100 are carried out.
[0090] If the first condition Cl is not met for the received signature, an eighth step 108 is carried out.
[0091] The sixth step 106 of the method 100 is for the synchronization component 203 to store the signature in the signature database 204.
[0092] The first condition Cl is thus met for the signature received first by the synchronization component 103 among the signatures sent by each server 202-1, 202-2 of the plurality of receiving servers, that is, for the signature received at a first instant, and not met for the signatures received afterwards, that is for each signature received at an instant later than the first instant, since the signatures sent are identical and the signature received first was stored in the signature database 204 as soon as the first condition Cl was met.
[0093] The seventh step 107 of the method 100 is for the synchronization component 203 to send a storage or transmission instruction to the server 202-1, 202-2 of the plurality of receiving servers that sent the signature to the synchronization component 203.
[0094] The storage instruction is a message instructing the server 202-1, 202-2 of the plurality of receiving servers that sent the signature, to store the message based on which the signature was computed in the storage device 205.
[0095] The transmission instruction is a message instructing the server 202-1, 202-2 of the plurality of receiving servers that sent the signature to transmit the message based on which the signature was computed to the third-party component 206 of the computing infrastructure 200.
[0096] The seventh step 107 may then be followed by a step 1071 of storing by the server 202-1, 202-2 of the plurality of receiving servers that sent the signature, the message received on the storage device 205 upon receipt of the storage instruction, or by a step 1072 of transmitting by the server 202-1, 202-2 of the plurality of receiving servers that sent the signature, the message received to the third-party component 206.
[0097] The eighth step 108 of the method 100 is for the synchronization component 203 to send a deletion instruction to the server 202-1, 202-2 of the plurality of receiving servers that sent the signature to the synchronization component 203.
[0098] The deletion instruction is a message instructing the server 202-1, 202-2 of the plurality of receiving servers that sent the signature, to delete the received message and the signature computed based on the received message from its memory.
[0099] The eighth step 108 may then be followed by a step 1081 of deleting by the server 202-1, 202-2 of the plurality of receiving servers that sent the signature, the received message and the corresponding computed signature.
[0100] The duplicate of the message on the basis of which the signature received first by the synchronization component 103 was computed is then stored in the storage device 205 or retransmitted to the third-party component 206 and the duplicates of the message on the basis of which a signature received afterwards was computed are deleted.
[0101] In
[0102] The first server 202-1 and the second server 202-2 each independently compute a signature for the message received in the second step, the signature computed by the first server 202-1 being identical to the signature computed by the second server 202-2, and then each independently send the computed signature to the synchronization component 203 in the third step 103.
[0103] We are in the case where the signature sent by the first server 202-1 is received before the signature sent by the second server 202-2, by way of at least one embodiment.
[0104] Upon receipt of the signature sent by the first server 202-1, the synchronization component 203 queries the signature database 204 which does not contain the received signature which is specific to the message.
[0105] The synchronization component 203 then stores the received signature in the signature database 204 in the sixth step 106 and sends a storage or transmission instruction to the first server 202-1 in the seventh step 107.
[0106] If the first server 202-1 receives a storage instruction, in at least one embodiment, the first server 202-1 stores the message in the storage device 205 in step 1071, and if the first server 202-1 receives a transmission instruction, the first server 202-1 transmits the message to the third-party component 206 in step 1072, the alternative being represented by dotted lines in
[0107] Upon receipt of the signature sent by the second server 202-2, in at least one embodiment, the synchronization component 203 queries the signature database 204 which contains the received signature since it is identical to the signature sent by the first server 202-1.
[0108] Thus, by way of one or more embodiments, the synchronization component 203 sends a deletion instruction to the second server 202-2 in the eighth step 108, and the second server 202-2 erases the received message and the computed signature from its memory in step 1081.
[0109] In the event that the signature sent by the first server 202-1 is received at the same time as the signature sent by the second server 202-2, the synchronization component 203 may apply a predefined rule as to which received signature it should process first.
[0110] For example, in at least one embodiment, each server 202-1, 202-2 of the plurality of receiving servers is assigned a different number and the predefined rule is to first process the signature received from the server 202-1, 202-2 of the plurality of receiving servers associated with the highest number among the numbers associated with the servers 202-1, 202-2 of the plurality of receiving servers that sent the signature at the same time.
[0111] The method 100 according to one or more embodiments of the invention may also comprise a ninth step 109 of erasing at least a portion of the signature database 204 at regular interval.
[0112] The duration of the interval is for example one day, preferentially one hour. The ninth step 109 is then to erase entries from the signature database 204 stored in the signature database more than one day ago or more than one hour ago.