IP Library Granted Patent US 11,516,276
Granted Patent B1
US 11,516,276 · App. 17/676,860 · Granted Nov 29, 2022

Dynamically switching between synchronous and asynchronous communication channels

Inventors: Raunak Ravindra Singwi (Pune, IN); Akeem Lamar Jenkins (Broomfield, CO); Marc Wayne Brotherson (Boulder, CO); Shivali Sharma (Pune, IN); Sean James Huntley (Sydney, AU)
Assignee: VMware, Inc.
H04L67/01H04L43/0823H04L43/0864H04L43/0894H04L43/10H04L67/141H04L67/146
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,516,276
App. No.
17/676,860
Granted
Nov 29, 2022
Kind
B1
Abstract

Disclosed herein are systems and methods for dynamically switching between synchronous and asynchronous communication channels. A communication request can be received from an application, and a request identifier can be generated for the communication request. The communication request can be transmitted to an edge server application via a first communication channel. The first communication channel can be selected from a plurality of communication channels based at least in part on a policy. In an instance in which a condition specified by the policy is detected in the transmission of the communication request, a second communication channel can be selected from the plurality of communication channels. The communication request can be transmitted to the edge server application using the second communication channel.

Claims (58)

1. A system, comprising:

at least one first computing device comprising a processor and memory; and

machine-readable instructions stored in the memory that, when executed by the processor, cause the at least one first computing device to at least:

receive a communication request from an application;

generate a request identifier for the communication request;

select a first communication channel from a plurality of communication channels based at least in part on a policy;

cause a transmission using the first communication channel of the communication request and the request identifier to a second computing device;

select a second communication channel from the plurality of communication channels in an instance in which a condition is detected in the transmission of the communication request and the request identifier, the condition being specified by the policy; and

cause a transmission using the second communication channel of the communication request and the request identifier to the second computing device.

2. The system of claim 1 , wherein the first communication channel is a synchronous communication channel and the second communication channel is an asynchronous communication channel.

3. The system of claim 1 , wherein the machine-readable instructions that cause the at least one first computing device to at least select the first communication channel from the plurality of communication channels based at least in part on the policy further cause the at least one first computing device to at least select the first communication channel from the plurality of communication channels based at least in part on the first communication channel having a lowest latency of the plurality of communication channels.

4. The system of claim 1 , wherein the condition comprises at least one of: a failure in the transmission using the first communication channel, the second communication channel having a lower latency than the first communication channel, or command specifying the second communication channel being received from the application.

5. The system of claim 4 , wherein the failure in the transmission using the first communication channel comprises failing to receive a response following a predetermined period of time specified by the policy.

6. The system of claim 1 , wherein the communication request is a first communication request, and the machine-readable instructions, when executed by the processor, further cause the at least one first computing device to at least:

transmit a plurality of heartbeat signals to the second computing device at a predetermined frequency;

receive a plurality of acknowledgement signals from the second computing device at the predetermined frequency; and

cause a transmission using the first communication channel of a second communication request and a second request identifier to the second computing device in an instance in which the plurality of acknowledgement signals are detected.

7. The system of claim 1 , wherein the communication request is a first communication request, and the machine-readable instructions, when executed by the processor, further cause the at least one first computing device to at least:

transmit a plurality of heartbeat signals to the second computing device at a predetermined frequency;

detect a failure to receive a plurality of acknowledgement signals from the second computing device at the predetermined frequency; and

cause a transmission using the second communication channel of a second communication request and a second request identifier to the second computing device in an instance in which the failure to receive the plurality of acknowledgement signals is detected.

8. A method, comprising:

receiving a communication request from an application;

generating a request identifier for the communication request;

selecting a first communication channel from a plurality of communication channels based at least in part on a policy;

causing a transmission using the first communication channel of the communication request and the request identifier to a second computing device;

selecting a second communication channel from the plurality of communication channels in an instance in which a condition in the transmission of the communication request and the request identifier is detected, the condition being specified by the policy; and

causing a transmission using the second communication channel of the communication request and the request identifier to the second computing device.

9. The method of claim 8 , wherein the first communication channel is a synchronous communication channel and the second communication channel is an asynchronous communication channel.

10. The method of claim 8 , wherein selecting the first communication channel from the plurality of communication channels based at least in part on the policy further comprises selecting the first communication channel from the plurality of communication channels based at least in part on the first communication channel having a lowest latency of the plurality of communication channels.

11. The method of claim 8 , wherein the condition comprises at least one of: a failure in the transmission using the first communication channel, the second communication channel having a lower latency than the first communication channel, or command specifying the second communication channel being received from the application.

12. The method of claim 11 , wherein the failure in the transmission using the first communication channel comprises failing to receive a response following a predetermined period of time specified by the policy.

13. The method of claim 8 , wherein the communication request is a first communication request, and the method further comprises:

transmitting a plurality of heartbeat signals to the second computing device at a predetermined frequency;

receiving a plurality of acknowledgement signals from the second computing device at the predetermined frequency; and

causing a transmission using the first communication channel of a second communication request and a second request identifier to the second computing device in an instance in which the plurality of acknowledgement signals are received.

14. The method of claim 8 , wherein the communication request is a first communication request, and the method further comprises:

transmitting a plurality of heartbeat signals to the second computing device at a predetermined frequency;

detecting a failure to receive a plurality of acknowledgement signals from the second computing device at the predetermined frequency; and

causing a transmission using the second communication channel of a second communication request and a second request identifier to the second computing device in an instance in which the failure to receive the plurality of acknowledgement signals is detected.

15. A non-transitory computer-readable medium, comprising program instructions that, when executed by a processor of at least one first computing device, cause the at least one first computing device to at least:

receive a communication request from an application;

generate a request identifier for the communication request;

select a first communication channel from a plurality of communication channels based at least in part on a policy;

cause a transmission using the first communication channel of the communication request and the request identifier to a second computing device;

select a second communication channel from the plurality of communication channels in an instance in which a condition in the transmission of the communication request and the request identifier is detected, the condition being specified by the policy; and

cause a transmission using the second communication channel of the communication request and the request identifier to the second computing device.

16. The non-transitory computer-readable medium of claim 15 , wherein the first communication channel is a synchronous communication channel and the second communication channel is an asynchronous communication channel.

17. The non-transitory computer-readable medium of claim 15 , wherein the program instructions that cause the at least one first computing device to at least select the first communication channel from the plurality of communication channels based at least in part on the policy further cause the at least one first computing device to at least select the first communication channel from the plurality of communication channels based at least in part on the first communication channel having a lowest latency of the plurality of communication channels.

18. The non-transitory computer-readable medium of claim 15 , wherein the condition comprises at least one of: a failure in the transmission using the first communication channel, the second communication channel having a lower latency than the first communication channel, or command specifying the second communication channel being received from the application.

19. The non-transitory computer-readable medium of claim 15 , wherein the communication request is a first communication request, and the program instructions, when executed by the processor, further cause the at least one computing device to at least:

transmit a plurality of heartbeat signals to the second computing device at a predetermined frequency;

receive a plurality of acknowledgement signals from the second computing device at the predetermined frequency; and

cause a transmission using the first communication channel of a second communication request and a second request identifier to the second computing device in an instance in which the plurality of acknowledgement signals are received.

20. The non-transitory computer-readable medium of claim 15 , wherein the communication request is a first communication request, and the program instructions, when executed by the processor, further cause the at least one computing device to at least:

transmit a plurality of heartbeat signals to the second computing device at a predetermined frequency;

detect a failure to receive a plurality of acknowledgement signals from the second computing device at the predetermined frequency; and

cause a transmission using the second communication channel of a second communication request and a second request identifier to the second computing device in an instance in which the failure to receive the plurality of acknowledgement signals is detected.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2022
From: SINGWI, RAUNAK RAVINDRA; JENKINS, AKEEM LAMAR; BROTHERSON, MARC WAYNE; SHARMA, SHIVALI; HUNTLEY, SEAN JAMES
To: VMWARE, INC.
Reel/Frame 059070/0818 →
Priority Claims (1)
IN 202241000363 · Jan 4, 2022 · national