US2023379401A1PendingUtilityA1

Bidirectional command protocol via a unidirectional communication connection for reliable distribution of tasks

Assignee: VMWARE INCPriority: Jul 27, 2018Filed: Jul 28, 2023Published: Nov 23, 2023
Est. expiryJul 27, 2038(~12 yrs left)· nominal 20-yr term from priority
H04L 67/60H04L 67/10H04L 67/141H04L 67/01H04L 67/55H04L 67/63
67
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The present disclosure relates to techniques for handling of bidirectional command protocols via a unidirectional communication connection established between a client computing environment and a cloud-services computing environment. In one embodiment, a command request message is pushed from a service component of the cloud-services computing environment to a client gateway of the client computing environment via the unidirectional communication connection. A token indicating routing information to the service component is embedded in the pushed command request message. A command response message is received at the cloud gateway from the client gateway via a bidirectional communication connection established between the client computing environment and the cloud-services computing environment. The command response message includes the token and data associated with executing the command request message at the client computing environment. Based on the token, the command response message is routed to the service component.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for handling request-response command protocols for communication between a first gateway of a first computing environment and a second gateway of a second computing environment, the method comprising:
 at the first computing environment having a unidirectional communication connection between the first gateway and the second gateway as well as a bidirectional communication connection between the first gateway and the second gateway, the unidirectional communication connection being a connection that does not permit messages to be sent from the second gateway to the first gateway, and the bidirectional communication connection being a connection that does not permit request messages initiated by the first gateway to be sent to the second gateway:
 generating, by a first component of the first computing environment, a command request message directed to a second component of the second computing environment; 
 in accordance with determining that the unidirectional communication connection is open, pushing, from the first component to the second gateway, the command request message via the unidirectional communication connection, wherein a token indicating routing information to the first component is embedded in the pushed command request message; 
 receiving, at the first gateway via the bidirectional communication connection, a command response message from the second gateway, wherein the command response message includes the token and data associated with executing the command request message at the second computing environment; and 
   sending, based on the token, the command response message to the first component.   
     
     
         2 . The method of  claim 1 , wherein the first computing environment is a public computing environment and the second computing environment is a private computing environment. 
     
     
         3 . The method of  claim 1 , wherein the first computing environment is a cloud computing environment and the second computing environment is a client computing environment. 
     
     
         4 . The method of  claim 1 , wherein the bidirectional communication connection is a persistent communication connection that is part of a data ingestion pipeline configured to transfer streams of collected data from the second computing environment to the first computing environment. 
     
     
         5 . The method of  claim 1 , wherein the first gateway comprises a plurality of gateway nodes, wherein the unidirectional communication connection is established between the second gateway and a first gateway node of the plurality of gateway nodes, and wherein the method further comprises:
 storing, at a resources manager of the first computing environment, connection information associated with the established unidirectional communication connection, the connection information including identification information of the second gateway and second routing information to the first gateway node.   
     
     
         6 . The method of  claim 5 , further comprising:
 at the resources manager:
 determining a state of the unidirectional communication connection; and 
 in accordance with determining, at a first time, that the state of the unidirectional communication connection is open, sending, based on the connection information, the command request message to the first gateway node, wherein the first gateway node routes the command request message to the second gateway via the unidirectional communication connection. 
   
     
     
         7 . The method of  claim 6 , further comprising:
 in accordance with determining, at the first time, that the state of the unidirectional communication connection is not open:
 storing the command request message at the resources manager; and 
 upon detecting, at a second time after the first time, a change in the state of the unidirectional communication connection from not open to open, sending, based on the connection information, the stored command request message to the first gateway node, wherein the first gateway node routes the stored command request message to the second gateway via the unidirectional communication connection. 
   
     
     
         8 . The method of  claim 5 , wherein the resources manager receives the command request message from the first component via a communication connection established between the first component and the resources manager, and wherein the communication connection between the first component and the resources manager remains open at least until the resources manager sends the command response message to the first component. 
     
     
         9 . The method of  claim 5 , wherein the first gateway routes the command response message to a port of the resources manager according to the second routing information. 
     
     
         10 . The method of  claim 1 , wherein the command request message causes the second gateway to invoke an API call to the second component, and wherein the data is obtained from the second component according to the API call. 
     
     
         11 . The method of  claim 1 , wherein a resources manager of the first computing environment stores a plurality of pending command request messages generated by one or more additional service components of the first computing environment, and wherein the method further comprises:
 pushing at least two pending command request messages of the plurality of pending command request messages to the second gateway via the unidirectional communication connection.   
     
     
         12 . The method of  claim 11 , further comprising:
 determining, based on a priority policy stored on the resources manager, an order to push the at least two pending command request messages, wherein the at least two pending command request messages are pushed to the second gateway according to the determined order.   
     
     
         13 . The method of  claim 12 , wherein the resources manager forgoes pushing at least one of the plurality of pending command request messages to the second gateway in accordance with the priority policy. 
     
     
         14 . The method of  claim 1 , wherein the command request message includes third routing information indicating a location of the second component in the client computing environment. 
     
     
         15 . A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a first computing environment, wherein the one or more programs include instructions for:
 at the first computing environment, the first computing environment having a unidirectional communication connection between the first gateway and a second gateway of a second computing environment as well as a bidirectional communication connection between the first gateway and the second gateway, the unidirectional communication connection being a connection that does not permit messages to be sent from the second gateway to the first gateway, and the bidirectional communication connection being a connection that does not permit request messages initiated by the first gateway to be sent to the second gateway:
 generating, by a first component of the first computing environment, a command request message directed to a second component of the second computing environment; 
 in accordance with determining that the unidirectional communication connection is open, pushing, from the first component to the second gateway, the command request message via the unidirectional communication connection, wherein a token indicating routing information to the first component is embedded in the pushed command request message; 
 receiving, at the first gateway via the bidirectional communication connection, a command response message from the second gateway, wherein the command response message includes the token and data associated with executing the command request message at the second computing environment; and
 sending, based on the token, the command response message to the first component. 
 
   
     
     
         16 . The non-transitory computer-readable storage medium of  claim 15 , wherein the first computing environment is a cloud computing environment and the second computing environment is a client computing environment. 
     
     
         17 . The non-transitory computer-readable storage medium of  claim 15 , wherein the bidirectional communication connection is a persistent communication connection that is part of a data ingestion pipeline configured to transfer streams of collected data from the second computing environment to the first computing environment. 
     
     
         18 . A first computing environment implementing a first gateway and a first component, the first computing environment comprising:
 one or more processors; and   memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for:
 at the first computing environment, the first computing environment having a unidirectional communication connection between the first gateway and a second gateway of a second computing environment as well as a bidirectional communication connection between the first gateway and the second gateway, the unidirectional communication connection being a connection that does not permit messages to be sent from the second gateway to the first gateway, and the bidirectional communication connection being a connection that does not permit request messages initiated by the first gateway to be sent to the second gateway:
 generating, by a first component of the first computing environment, a command request message directed to a second component of the second computing environment; 
 in accordance with determining that the unidirectional communication connection is open, pushing, from the first component to the second gateway, the command request message via the unidirectional communication connection, wherein a token indicating routing information to the first component is embedded in the pushed command request message; 
 receiving, at the first gateway via the bidirectional communication connection, a command response message from the second gateway, wherein the command response message includes the token and data associated with executing the command request message at the second computing environment; and 
 sending, based on the token, the command response message to the first component. 
 
   
     
     
         19 . The first computing environment of  claim 18 , wherein the first computing environment is a cloud computing environment and the second computing environment is a client computing environment. 
     
     
         20 . The first computing environment of  claim 18 , wherein the bidirectional communication connection is a persistent communication connection that is part of a data ingestion pipeline configured to transfer streams of collected data from the second computing environment to the first computing environment.

Join the waitlist — get patent alerts

Track US2023379401A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.