IP Library Granted Patent US 9,026,613
Granted Patent B2
US 9,026,613 · App. 13/449,141 · Granted May 5, 2015

Permanent connection oriented communication using parallel single connection circuits

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,026,613
App. No.
13/449,141
Granted
May 5, 2015
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 (53)

1. A method in a client computing system for providing a pseudo permanent communications connection using communications connections that close when a response corresponding to a request is received, comprising:

receiving a first request to send data to a server;

opening a first communications data connection to the server in response to the first request, the communications data connection of a type that will close when a response is received;

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

opening a second communications data connection to the same server before the first request to send data is completed, the second communications data connection of a type that will close when a response is received that corresponds to a request transmitted over the second communications data connection;

determining whether parallel threading is available in the client computing system; and

in response to the determination, performing the steps of:

receiving a second request to send data to the server; and

transmitting the second request to send data over the second communications data connection after the data associated with the first request has been completely received,

wherein the first communications data connection and the second communications data connection are a part of a pool of connections.

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

3. The method of claim 1 wherein the opening of the second communications data connection to the same server is performed before the first request to send data is transmitted over the opened first communications data connection.

4. The method of claim 1 , further comprising:

opening a third communications data connection to the same server before the second request to send data is completed, the third communications data connection of a type that will close when a response is received that corresponds to a request transmitted over the third communications data connection.

5. The method of claim 4 wherein the opening of the third communications data connection to the same server is performed before the second request to send data is transmitted over the opened second communications data connection.

6. The method of claim 1 , further comprising:

opening a third communications data connection to the same server before the first request to send data is completed, the third communications data connection of a type that will close when a response is received that corresponds to a request transmitted over the third communications data connection.

7. The method of claim 6 wherein the opening of the third communications data connection to the same server is performed before the first request to send data is transmitted over the opened first communications data connection.

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 to send data to a server;

opening a first communications data connection to the server in response to the first request, the communications data connection of a type that will close when a response is received;

transmitting the first request to send data over the opened first communications data connection and opening a second communications data connection to the same server before the first request to send data is completed, the second communications data connection of a type that will close when a response is received that corresponds to a request transmitted over the second communications data connection;

determining whether parallel threading is available in the client computing system; and

in response to the determination, performing the steps of:

receiving a second request to send data to the server; and

transmitting the second request to send data over the second communications data connection after the data associated with the first request has been completely received,

wherein the first communications data connection and the second communications data connection are a part of a pool of connections.

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

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

11. The non-transitory computer-readable medium of claim 8 , the method further comprising:

opening a third communications data connection to the same server before the second request to send data is completed, the third communications data connection of a type that will close when a response is received that corresponds to a request transmitted over the third communications data connection.

12. The non-transitory computer-readable medium of claim 8 wherein the computer-readable medium is a memory in the computing device.

13. The non-transitory computer-readable medium of claim 8 wherein the contents are instructions that when executed cause the computing device to perform the method.

14. A computing system comprising:

a memory;

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

receive a first request to send data to a server;

open a first communications data connection to the server in response to the first request, the communications data connection of a type that will close when a response is received;

transmit the first request to send data over the opened first communications data connection and opening a second communications data connection to the same server before the first request to send data is completed, the second communications data connection of a type that will close when a response is received that corresponds to a request transmitted over the second communications data connection;

determine whether parallel threading is available in the client computing system; and

in response to the determination, performing the steps of:

receive a second request to send data to the server; and

transmit the second request to send data over the second communications data connection after the data associated with the first request has been completely received,

wherein the first communications data connection and the second communications data connection are a part of a pool of connections.

15. The computing system of claim 14 wherein the first and second communications connections are provided using an HTTP protocol.

16. The computing system of claim 14 wherein the module opens the second communications data connection to the same server before the first request to send data is transmitted over the opened first communications data connection.

17. The computing system of claim 14 wherein the module is further configured, when executed, to:

open a third communications data connection to the same server before the second request to send data is completed, the third communications data connection of a type that will close when a response is received that corresponds to a request transmitted over the third communications data connection.

18. The computing system of claim 14 wherein the module includes software instructions for execution in the memory of the computing system.

19. The computing system of claim 14 wherein the computing system is a client computing device and the module is a communications layer.

20. The computing system of claim 14 wherein the computing system further comprises:

a client computing device that includes the memory;

a server computing system that receives requests for data from the client computing system.

Assignments (4)
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/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2012
From: JOOSTE, SAREL KOBUS
To: VMWARE, INC.
Reel/Frame 028062/0114 →