IP Library Granted Patent US 9,614,916
Granted Patent B2
US 9,614,916 · App. 14/702,493 · Granted Apr 4, 2017

Permanent connection oriented communication using parallel single connection circuits

Inventor: Sarel Kobus Jooste (Novato, CA)
Assignee: VMware, Inc.
H04L67/141H04L67/02H04L67/16
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 9,614,916
App. No.
14/702,493
Granted
Apr 4, 2017
Kind
B2
Abstract

Methods, systems, and techniques for providing a pseudo permanent communications connection using temporary connection protocols are described. Example embodiments provide a Enhanced Communications Layer that provides such connections by means of a layer incorporated in the client side and server side communications stacks. The ECL maintains a pool of connections that are opened and used in a staggered fashion to reduce the amount of connection setup and teardown.

Claims (49)

1. A method in a client computing system for providing a pseudo permanent communication connection by using a pool of communication connections, comprising:

receiving a first request from a first client application to send data to a server;

opening a first communications data connection from the pool of communication connections to the server in response to the first request;

transmitting, over the opened first communications data connection, the first request to send data to the server;

initiating an opening of a second communications data connection from the pool of communication connections to the server in response to the first request, wherein the second communications data connection is established while the first communications data connection is open;

receiving a second request to send data to the server;

determining whether the first request to send data has completed over the first communications data connection and determining whether the first communication data connection is still open;

in response to determining that the first request to send data has completed and that the first communication data connection is still open, transmitting the second request to send data over the opened first communications data connection while maintaining the second communications data connection for subsequent requests;

in response to determining that the first request to send data has not completed, transmitting the second request to send data over the opened second communications data connection, and opening a third communications data connection from the pool of communication connections; and

in response to determining that the first request to send data has completed and that the first communication data connection is closed, transmitting the second request to send data over the opened second communications data connection, and opening the third communications data connection from the pool of communication connections.

2. The method of claim 1 wherein the first communications data connection and the second communication data connection are provided using an HTTP protocol.

3. The method of claim 1 wherein the initiating of the opening of the second communications data connection to the server is performed before the response to the first request is finished transmitting over the opened first communications data connection.

4. The method of claim 1 wherein the initiating of the opening of the second communications data connection to the server is performed before the response is received that corresponds to the first request.

5. The method of claim 1 wherein the pool of communication connections include a mixture of communication connections that support multi-part requests and communication connections that close when a response corresponding to a request is received.

6. The method of claim 1 , further comprising determining that parallel threading is supported in the client computing system prior to opening the second communications data connection.

7. The method of claim 1 , further comprising determining that multi-part requests are supported in the client computing system prior to the first transmitting, over the opened first communications connection, the second request.

8. A non-transitory computer-readable medium having contents that, when executed, enable a computing device to provide a pseudo permanent communication connection by performing a method comprising:

receiving a first request from a first client application to send data to a server;

opening a first communications data connection from a pool of communication connections to the server in response to the first request;

transmitting, over the opened first communications data connection, the first request to send data to the server;

initiating an opening of a second communications data connection from the pool of communication connections to the server in response to the first request, wherein the second communications data connection is established while the first communications data connection is open;

receiving a second request to send data to the server;

determining whether the first request to send data has completed over the first communications data connection and determining whether the first communication data connection is still open;

in response to determining that the first request to send data has completed and that the first communication data connection is still open, transmitting the second request to send data over the opened first communications data connection while maintaining the second communications data connection for subsequent requests;

in response to determining that the first request to send data has not completed, transmitting the second request to send data over the opened second communications data connection, and opening a third communications data connection from the pool of communication connections; and

in response to determining that the first request to send data has completed and that the first communication data connection is closed, transmitting the second request to send data over the opened second communications data connection, and opening the third communications data connection from the pool of communication connections.

9. The non-transitory computer-readable medium of claim 8 wherein the first communications data connection and the second communications data connection are provided using an HTTP protocol.

10. The non-transitory computer-readable medium of claim 8 wherein the initiating of the opening of the second communications data connection to the server is performed before the response to the first request is finished transmitting over the opened first communications data connection.

11. The non-transitory computer-readable medium of claim 8 wherein the initiating of the opening of the second communications data connection to the server is performed before the response is received that corresponds to the first request.

12. The non-transitory computer-readable medium of claim 8 wherein the pool of communication connections include a mixture of communication connections that support multi-part requests and communication connections that close when a response corresponding to a request is received.

13. The non-transitory computer-readable medium of claim 8 , further comprising determining that parallel threading is supported in the client computing system prior to opening the second communications data connection.

14. The non-transitory computer-readable medium of claim 8 , further comprising determining that multi-part requests are supported in the client computing system prior to the first transmitting, over the opened first communications connection, the second request.

15. A computing system comprising:

a memory;

a module stored on the memory that is configured, when executed, to:

receive a first request from a first client application to send data to a server;

open a first communications data connection from the pool of communication connections to the server in response to the first request;

transmit, over the opened first communications data connection, the first request to send data to the server;

initiate an opening of a second communications data connection from the pool of communication connections to the server in response to the first request, wherein the second communications data connection is established while the first communications data connection is open;

receive a second request to send data to the server;

determine whether the first request to send data has completed over the first communications data connection and determining whether the first communication data connection is still open;

in response to determining that the first request to send data has completed and that the first communication data connection is still open, transmit the second request to send data over the opened first communications data connection while maintaining the second communications data connection for subsequent requests;

in response to determining that the first request to send data has not completed, transmit the second request to send data over the opened second communications data connection, and open a third communications data connection from the pool of communication connections; and

in response to determining that the first request to send data has completed and that the first communication data connection is closed, transmitting the second request to send data over the opened second communications data connection, and opening the third communications data connection from the pool of communication connections.

16. The computing system of claim 15 wherein initiate of the opening of the second communications data connection to the server is performed before the response to the first request is finished transmitting over the opened first communications data connection.

17. The computing system of claim 15 wherein initiate of the opening of the second communications data connection to the server is performed before the response is received that corresponds to the first request.

18. The computing system of claim 15 wherein the pool of communication connections include a mixture of communication connections that support multi-part requests and communication connections that close when a response corresponding to a request is received.

19. The computing system of claim 15 , further comprising determining that parallel threading is supported in the client computing system prior to opening the second communications data connection.

20. The computing system of claim 15 , further comprising determining that multi-part requests are supported in the client computing system prior to the first transmitting, over the opened first communications connection, the second request.

Assignments (3)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
Continuity (3)
Continuation 13449141 · Apr 17, 2012
Provisional Application 61528634 · Aug 29, 2011
Related Publication 20150237146A1 · Aug 20, 2015