Replicating virtual machines across different virtualization platforms
US-2015106802-A1 · Apr 16, 2015 · US
US10938937B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10938937-B2 |
| Application number | US-201916581636-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 24, 2019 |
| Priority date | May 15, 2015 |
| Publication date | Mar 2, 2021 |
| Grant date | Mar 2, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Approaches are disclosed for distributing messages across multiple data centers where the data centers do not store messages using a same message queue protocol. In some embodiment, a network element translates messages from a message queue protocol (e.g., Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ) to an application layer messaging protocol (e.g., XMPP, MQTT, WebSocket protocol, or other application layer messaging protocols). In other embodiments, a network element translates messages from an application layer messaging protocol to a message queue protocol. Using the new approaches disclosed herein, data centers communicate using, at least in part, application layer messaging protocols to disconnect the message queue protocols used by the data centers and enable sharing messages between messages queues in the data centers. Consequently, the data centers can share messages regardless of whether the underlying message queue protocols used by the data centers (and the network devices therein) are compatible with one another.
Opening claim text (preview).
What is claimed is: 1. A method comprising: receiving, from a first protocol-dependent message queue associated with a first message queue protocol, a message encoded in the first message queue protocol associated with the first protocol-dependent message queue; generating a translated message by translating the message from the first message queue protocol to an application layer messaging protocol; transmitting, utilizing the application layer messaging protocol, the translated message to a server, the translated message updating a second protocol-dependent message queue after being translated to a second message queue protocol corresponding to the second protocol-dependent message queue, wherein the second message queue protocol is a different message queue protocol than the first message queue protocol; and determining whether a connection to the server is active. 2. The method of claim 1 , wherein the first message queue protocol comprises one of Kestrel, RABBITMQ, APACHE Kafka, or ACTIVEMQ, and wherein the second message queue protocol comprises a different one of Kestrel, RABBITMQ, APACHE Kafka, or ACTIVEMQ. 3. The method of claim 1 , further comprising: adjusting a size of a buffer for the first protocol-dependent message queue based on whether the connection to the server is active. 4. The method of claim 1 , further comprising: determining the connection to the server is active; and increasing a size of a buffer for the first protocol-dependent message queue. 5. The method of claim 1 , further comprising: receiving, from the server, an instruction to stop transmitting messages associated with the second protocol-dependent message queue; and in response to the instruction, stopping transmission of messages associated with the second protocol-dependent message queue. 6. The method of claim 1 , further comprising: determining the connection to the server is not active; stopping transmission of messages to the server, the messages being associated with the second protocol-dependent message queue; and storing the messages in a buffer until the connection to the server is active. 7. The method of claim 1 , wherein generating the translated message comprises: translating the message from a first type of message encoding to a second type of message encoding. 8. The method of claim 7 , wherein the first type of message encoding comprises APACHE Kafka message encoding and the second type of message encoding comprises an Extensible Messaging and Presence Protocol (XMPP) message encoding. 9. A system comprising: one or more processors; and at least one computer-readable medium having stored therein instructions which, when executed by the one or more processors, cause the one or more processors to: receive, from a first protocol-dependent message queue associated with a first message queue protocol, a message encoded in the first message queue protocol associated with the first protocol-dependent message queue; generate a translated message by translating the message from the first message queue protocol to an application layer messaging protocol; transmit, utilizing the application layer messaging protocol, the translated message to a server, the translated message updating a second protocol-dependent message queue after being translated to a second message queue protocol corresponding to the second protocol-dependent message queue, wherein the second message queue protocol is a different message queue protocol than the first message queue protocol; and determine whether a connection to the server is active. 10. The system of claim 9 , wherein the first message queue protocol comprises one of Kestrel, RABBITMQ, APACHE Kafka, or ACTIVEMQ, and wherein the second message queue protocol comprises a different one of Kestrel, RABBITMQ, APACHE Kafka, or ACTIVEMQ. 11. The system of claim 9 , the at least one computer-readable medium having stored therein instructions which, when executed by the one or more processors, cause the one or more processors to: adjust a size of a buffer for the first protocol-dependent message queue based on whether the connection to the server is active. 12. The system of claim 9 , the at least one computer-readable medium having stored therein instructions which, when executed by the one or more processors, cause the one or more processors to: determine the connection to the server is active; and increase a size of a buffer for the first protocol-dependent message queue. 13. The system of claim 9 , the at least one computer-readable medium having stored therein instructions which, when executed by the one or more processors, cause the one or more processors to: receive, from the server, an instruction to stop transmitting messages associated with the second protocol-dependent message queue; and in response to the instruction, stopping transmission of the messages associated with the second protocol-dependent message queue. 14. The system of claim 9 , the at least one computer-readable medium having stored therein instructions which, when executed by the one or more processors, cause the one or more processors to: determine the connection to the server is not active stop transmission of messages to the server, the messages being associated with the second protocol-dependent message queue; and store the messages in a buffer until the connection to the server is active. 15. The system of claim 9 , wherein the generating the translated message comprises: translating the message from an APACHE Kafka message encoding to an Extensible Messaging and Presence Protocol (XMPP) message encoding. 16. At least one non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to: receive, from a first protocol-dependent message queue associated with a first message queue protocol, a message encoded in the first message queue protocol associated with the first protocol-dependent message queue; generate a translated message by translating the message from the first message queue protocol to an application layer messaging protocol; transmit, utilizing the application layer messaging protocol, the translated message to a server, the translated message updating a second protocol-dependent message queue after being translated to a second message queue protocol corresponding to the second protocol-dependent message queue, wherein the second message queue protocol is a different message queue protocol than the first message queue protocol; and determine whether a connection to the server is active. 17. The at least one non-transitory computer-readable medium of claim 16 , storing additional instructions that, when executed by the one or more processors, cause the one or more processors to: adjust a size of a buffer for the first protocol-dependent message queue based on whether the connection to the server is active. 18. The at least one non-transitory computer-readable medium of claim 17 , wherein adjusting the size of the buffer for the first message queue based on whether the connection to the server is active comprises: determining the connection to the server is active; and increasing the size of the buffer for the first protocol-dependent message queue. 19. The at least one non-transitory computer-readable medium of claim 17 , wherein adjusting the size of the buffer for the first message queue based on whether the connection to the server is active comprises: determining the connection to the ser
Conversion or adaptation of application format or content (adding application control or application functional data H04L67/561) · CPC title
using dynamic buffer space allocation · CPC title
Arrangements for program control, e.g. control units (program control for peripheral devices G06F13/10) · CPC title
Electricity · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.