IP Library Granted Patent US 9,450,860
Granted Patent B2
US 9,450,860 · App. 13/329,841 · Granted Sep 20, 2016

Selecting an instance of a resource using network routability information

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,450,860
App. No.
13/329,841
Granted
Sep 20, 2016
Kind
B2
Abstract

A client computer requests a resource from an ISP/OSP. The ISP/OSP maintains multiple instances of the resource. In deciding to which instance of the resource to route the client computer, a resource selection server takes network routability information into account. Geographic proximity, resource utilization, network utilization, and/or maintenance of peering agreements may also be taken into account in selecting the instance of the resource.

Claims (46)

1. A computer-implemented method for processing resource requests, the method comprising:

receiving a request for a resource from a client, wherein at least two instances of the resource are maintained, a first one of the two instances being accessible by a client through a first network route between the client and the first one of the two instances, and a second one of the two instances being accessible by the client through a second network route between the client and the second one of the two instances;

accessing routability information for at least a portion of the first network route and at least a portion of the second network route, wherein the routability information indicates that at least one of the first network route and the second network route includes a peering connection and identifies a peer network associated with the peering connection;

determining that the peering connection is subject to a peering agreement that regulates network traffic that is to be sent over the peering connection

selecting, with a processor, one of the at least two instances of the resource based, at least in part, on both a selection score and an instance preference score, wherein the selection score is computed based on the routability information and the peering agreement, wherein the instance preference score defines proportions in which requests for a resource should be routed to individual instances of the at least two instances of the resource, and wherein the selection score is further based on at least one of: a geographic location of the client, resource utilization information, or network utilization information; and

instructing the client to access the selected instance of the resource.

2. The method of claim 1 , wherein selecting one of the two instances of the resource comprises:

selecting the first one of the two instances based, at least in part, on a portion of the first network route not including a network maintained by an entity that maintains the two instances of the resource.

3. The method of claim 1 , wherein selecting one of the two instances of the resource comprises:

selecting the first one of the two instances based, at least in part, on a portion of the first network route including a network maintained by an entity that maintains the two instances of the resource.

4. The method of claim 1 , further comprising determining the geographic location of the client, wherein the selection score is based on the geographic location of the client.

5. The method of claim 1 , wherein the resource utilization information indicates utilization of each of the first one and the second one of the two instances of the resource, wherein the selection score is based on the resource utilization information.

6. The method of claim 1 , wherein the network utilization information indicates network utilization of each of a first network on which the first one of the two instances resides and a second network on which the second one of the two instances resides, wherein the selection score is based on the network utilization information.

7. The method of claim 1 , further comprising:

determining the geographic location of the client;

accessing the resource utilization information, wherein the resource utilization information indicates utilization of each of the first and second of the two instances of the resource; and

accessing network utilization information, wherein the network resource utilization information indicates network utilization of each of a first network on which the first one of the two instances resides and a second network on which the second one of the two instances resides,

wherein the selection score is based on each of the geographic location of the client, the resource utilization information, and the network utilization information.

8. The method of claim 1 , wherein the selection score is further computed based on maintaining a ratio of incoming and outgoing traffic across the peering connection.

9. A system for processing a request for a resource from a client, a first instance of the resource being accessible by the client through a first network route, and a second instance of the resource being accessible by the client through a second network route, wherein at least two instances of the resource are maintained, the system comprising;

a routability server to determine routability information for at least a portion of the first network route and at least a portion of the second network route, wherein the routability information indicates that at least one of the first network route and the second network route includes a peering connection subject to a peering agreement that regulates network traffic that is to be sent over a peer network associated with the peering connection and identifies a peer network associated with the peering connection, wherein the routability server comprises at least one processor;

a resource selection server to select one of the two instances of the resource based, at least in part, on both a selection score and an instance preference score, wherein the selection score is computed based on the routability information and the presence of the peering connection, wherein the instance preference score defines proportions in which requests for a resource should be routed to individual instances of the at least two instances of the resource, and wherein the selection score is further based on at least one of: a geographic location of the client, resource utilization information, or network utilization information; and

a front-end server to instruct the client to access the selected instance of the resource.

10. The system of claim 9 , further comprising a geography server to determine the geographic location of the client, and wherein the selection score is based on the geographic location of the client.

11. The system of claim 9 , wherein the resource utilization information indicates utilization of each of the two instances of the resource, and wherein the selection score is based on the resource utilization information.

12. The system of claim 9 , wherein the network utilization information indicates network utilization of each of a first network on which the first one of the two instances resides and a second network on which the second one of the two instances resides, and wherein the selection score is based on the network utilization information.

13. The system of claim 9 , further comprising:

a geography server to determine the geographic location of the client;

a database that stores the resource utilization information, wherein the resource utilization information indicates utilization of each of the two instances of the resource, and stores the network utilization information, wherein the network utilization information indicates a network utilization of each of a first network on which the first one of the two instances resides and a second network on which the second one of the two instances resides; and

wherein the selection score is based on each of the geographic location of the client, the resource utilization information, and the network utilization information.

14. The system of claim 9 , wherein the selection score is further computed based on maintaining a ratio of incoming and outgoing traffic across the peering connection.

15. A non-transitory computer useable medium having a computer program embodied thereon, the computer program including instructions for causing a computer to perform the following operations:

receive a request for selection of one of at least two instances of a resource, wherein at least two instances of the resource are maintained, a first one of the two instances being accessible by a client through a first network route, and a second one of the two instances being accessible by the client through a second network route;

access routability information for at least a portion of the first network route and at least a portion of the second network route, wherein the routability information indicates that at least one of the first network route and the second network route includes a peering connection subject to a peering agreement that regulates network traffic that is to be sent over a peer network associated with the peering connection;

select one of the two instances of the resource based, at least in part, on both a selection score and an instance preference score, wherein the selection score is computed based on the routability information and the peering agreement, wherein the instance preference score defines proportions in which requests for a resource should be routed to individual instances of the at least two instances of the resource, and wherein the selection score is further based on at least one of: a geographic location of the client, resource utilization information, or network utilization information; and

send a response to the request for selection of one of the two instances of the resource, the response including an indication of the selected instance.

16. The computer usable medium of claim 15 , wherein the computer program further includes instructions for causing the computer to access information indicating geographic locations of each of the at least two instances of the resource, and wherein the selection score is further based on the geographic locations of each of the at least two instances of the resource.

17. The computer usable medium of claim 15 , wherein the computer program further includes instructions for causing the computer to access the resource utilization information, wherein the resource utilization information indicates utilization of each of the two instances of the resource, and wherein the selection score is based on the resource utilization information.

18. The computer usable medium of claim 15 , wherein the computer program further includes instructions for causing the computer to access network utilization information, wherein the network utilization information indicates network utilization of each of a first network on which the first one of the two instances resides and a second network on which the second one of the two instances resides, and wherein the selection score is based on the network utilization information.

19. The computer usable medium of claim 15 , wherein the computer program further includes instructions for causing the computer to:

access information indicating the geographic location of the client;

access the resource utilization information, wherein the resource utilization information indicates utilization of the two instances of the resource; and

access the network utilization information, wherein the network utilization information indicates network utilization of each of a first network on which the first one of the two instances resides and a second network on which the second one of the two instances resides; and

wherein the selection score is based on the geographic location of the client, the resource utilization information, and the network utilization information.

20. The method of claim 1 , wherein the selection score is a numeric value.

21. The computer usable medium of claim 15 , wherein the selection score is further computed based on maintaining a ratio of incoming and outgoing traffic across the peering connection.

Assignments (12)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2012
From: AOL, INC.; RELEGANCE CORPORATION
To: CITRIX SYSTEMS, INC.
Reel/Frame 028391/0832 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2011
From: AVERBUJ, PABLO; MUEHL, MARK J.; GILL, VIJAY
To: AMERICA ONLINE, INC.
Reel/Frame 027419/0928 →
CHANGE OF NAME Recorded Dec 20, 2011
From: AMERICA ONLINE, INC.
To: AOL LLC
Reel/Frame 027423/0019 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2011
From: AOL LLC
To: AOL INC.
Reel/Frame 027420/0080 →