IP Library Granted Patent US 9,686,373
Granted Patent B2
US 9,686,373 · App. 14/263,980 · Granted Jun 20, 2017

Connection cache method and system

Inventor: Darren Richard Todd (County Down, GB)
Assignee: OPENWAVE MOBILITY, INC.
H04L67/2842G06F11/3055H04L43/0882H04L67/1031H04L67/14H04L67/2852
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,686,373
App. No.
14/263,980
Granted
Jun 20, 2017
Kind
B2
Abstract

A method, apparatus and computer program product for maintaining a connection cache at an intermediate server, wherein the connection cache relating to resource requests from a plurality of devices to a plurality of servers remote therefrom. The method comprises monitoring resource requests addressed to a plurality of said remote servers during a first time period; generating statistics data on the basis of the monitored resource requests; establishing a plurality of connections from the intermediate server to a subset of the plurality of remote servers, said subset being determined on the basis of the generated statistics data; and storing data indicative of the plurality of established connections in a connection cache. Caching of connections in this manner ensures efficient use of proxy server resources by only caching connections to “popular” remote servers.

Claims (43)

1. A method of maintaining a connection cache at an intermediate server, the connection cache relating to resource requests from a plurality of devices to a plurality of remote servers, the method comprising:

monitoring resource requests addressed to a plurality of the remote servers during a first time period;

generating statistics data on the basis of the resource requests monitored during the first time period;

establishing a plurality of connections from the intermediate server to a first subset of the plurality of remote servers, the first subset being determined on the basis of the generated statistics data, wherein the statistics data indicates a ranking of the plurality of remote servers based on number or rate of connection requests in respect thereof, and the subset of remote servers is selected on the basis of the ranking; and

storing data indicative of the plurality of established connections in a connection cache, wherein the plurality of connections from the intermediate server to the first subset of the plurality of remote servers comprises a plurality of connections from the intermediate server to a first remote server in the plurality of remote servers, wherein the connection cache comprises a data structure which indicates the plurality of established connections from the intermediate server to the first subset of the plurality of remote servers and a plurality of respective status indicators;

monitoring resource requests addressed to the plurality of remote servers during a second time period;

updating the statistics data on the basis of the resource requests monitored during the second time period;

closing a plurality of connections from the intermediate server to a second subset of the plurality of remote servers, the second subset being determined on the basis of the updated statistics data; and

modifying the data indicative of the plurality of established connections in the connection cache based on the plurality of closed connections.

2. The method of claim 1 , further comprising:

receiving a further resource request addressed to a particular remote server of the plurality of remote servers;

identifying, from the connection cache, data corresponding to the further resource request; and

utilizing whichever established connection corresponds to the identified data to forward the further resource request to the particular remote server.

3. The method of claim 2 further comprising, responsive to receipt of a termination request in respect of the utilized connection, modifying data corresponding to the utilized connection in the connection cache.

4. The method of claim 3 , wherein the termination request is received from a device associated with the utilized connection and wherein the data corresponding to the utilized connection is modified to indicate that the utilized connection is available for further resource requests.

5. The method of claim 3 , wherein the termination request is received from a remote server associated with the utilized connection and wherein the data corresponding to the utilized connection is modified to indicate that the utilized connection has been closed.

6. The method of claim 1 , wherein the resource requests comprise a Hypertext Transfer Protocol (HTTP) request.

7. An intermediate server for maintaining a connection cache, the connection cache relating to resource requests from a plurality of devices to a plurality of remote servers, the intermediate server comprising at least one processor and at least one memory including computer program code, the memory and the computer program code being configured to cause the processor to:

monitor resource requests received addressed to a plurality of the remote servers during a first time period;

generate statistics data on the basis of the resource requests monitored during the first time period;

establish a plurality of connections from the intermediate server to a first subset of the plurality of remote servers, the first subset being determined on the basis of the generated statistics data, wherein the statistics data indicates a ranking of the plurality of remote servers based on number or rate of connection requests in respect thereof, and the subset of remote servers is selected on the basis of the ranking; and

store data indicative of the plurality of established connections in a connection cache, wherein the plurality of connections from the intermediate server to the subset of the plurality of remote servers comprises a plurality of connections from the intermediate server to a first remote server in the plurality of remote servers, wherein the connection cache comprises a data structure which indicates the plurality of established connections from the intermediate server to the first subset of the plurality of remote servers and a plurality of respective status indicators;

monitor resource requests addressed to the plurality of remote servers during a second time period;

update the statistics data on the basis of the resource requests monitored during the second time period;

close a plurality of connections from the intermediate server to a second subset of the plurality of remote servers, the second subset being determined on the basis of the updated statistics data; and

modify the data indicative of the plurality of established connections in the connection cache based on the plurality of closed connections.

8. The intermediate server of claim 7 , wherein the processor is further configured to:

receive a further resource request addressed to a particular remote server of the plurality of remote servers;

identify, from the connection cache, data corresponding to the further resource request; and

utilize whichever established connection corresponds to the identified data to forward the further resource request to the particular remote server.

9. The intermediate server of claim 8 , wherein the processor is further configured to, responsive to receipt of a termination request in respect of the utilized connection, modify data corresponding to the utilized connection in the connection cache.

10. The intermediate server of claim 9 , wherein the termination request is received from a device associated with the utilized connection and wherein the data corresponding to the utilized connection is modified to indicate that the utilized connection is available for further resource requests.

11. The intermediate server of claim 9 , wherein the termination request is received from a remote server associated with the utilized connection and wherein the data corresponding to the utilized connection is modified to indicate that the utilized connection has been closed.

12. The intermediate server of claim 7 , wherein the resource requests comprise a Hypertext Transfer Protocol (HTTP) request.

13. A computer program product comprising a non-transitory computer-readable storage medium comprising computer-executable instructions which, when executed by a processor, cause a computing device to perform a method of maintaining a connection cache at an intermediate server, the connection cache relating to resource requests from a plurality of devices to a plurality of remote servers, the method comprising:

monitoring resource requests addressed to a plurality of the remote servers during a first time period;

generating statistics data on the basis of the resource requests monitored during the first time period;

establishing a plurality of connections from the intermediate server to a first subset of the plurality of remote servers, the first subset being determined on the basis of the generated statistics data, wherein the statistics data indicates a ranking of the plurality of remote servers based on number or rate of connection requests in respect thereof, and the subset of remote servers is selected on the basis of the ranking; and

storing data indicative of the plurality of established connections in a connection cache, wherein the plurality of connections from the intermediate server to the first subset of the plurality of remote servers comprises a plurality of connections from the intermediate server to a first remote server in the plurality of remote servers, wherein the connection cache comprises a data structure which indicates the plurality of established connections from the intermediate server to the first subset of the plurality of remote servers and a plurality of respective status indicators;

monitoring resource requests addressed to the plurality of remote servers during a second time period;

updating the statistics data on the basis of the resource requests monitored during the second time period;

closing a plurality of connections from the intermediate server to a second subset of the plurality of remote servers, the second subset being determined on the basis of the updated statistics data; and

modifying the data indicative of the plurality of established connections in the connection cache based on the plurality of closed connections.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2014
From: TODD, DARREN RICHARD
To: OPENWAVE MOBILITY, INC.
Reel/Frame 032888/0993 →
Continuity (3)
Continuation PCTEP2012071178 · Oct 25, 2012
Provisional Application 61553142 · Oct 28, 2011
Related Publication 20140237067A1 · Aug 21, 2014