IP Library Granted Patent US 8,082,348
Granted Patent B1
US 8,082,348 · App. 11/321,039 · Granted Dec 20, 2011

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 8,082,348
App. No.
11/321,039
Granted
Dec 20, 2011
Kind
B1
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 (53)

1. A 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 is 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 is accessible by the client through a second network route between the client and the second one of the two instances;

accessing routability information that indicates the first network route includes a peering connection between at least one router of a first internet service provider of a first network and at least one router of a second internet service provider of a second network and that indicates the second network route does not include the peering connection, wherein the peering connection is subject to a peering agreement that regulates network traffic that is to be sent over the peering connection;

determining that the first network route includes the peering connection based on the accessed routability information;

determining that the second network route does not include the peering connection based on the accessed routability information;

selecting one of the two instances of the resource based, at least in part, on the determination that the first network route includes the peering connection that is

subject to the peering agreement and the determination that the second network route does not include the peering connection;

determining that the peering agreement for the peering connection will not be maintained if the first of the two instances is selected, wherein selecting one of the two instances of the resource includes selecting the second one of the two instances, at least in part, in order to maintain the peering agreement for the peering connection; 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 the determination that the first network route includes the peering connection and the determination that second network route does not include the peering connection.

3. The method of claim 1 wherein selecting one of the two instances of the resource comprises selecting the second one of the two instances based, at least in part, on the determination that the first network route includes the peering connection and the determination that second network route does not include the peering connection.

4. The method of claim 1 further comprising determining a geographic location of the client, wherein selecting one of the two instances of the resource comprises selecting one of the two instances of the resource based, in addition, on the geographic location of the client.

5. The method of claim 1 further comprising accessing resource utilization information that indicates utilization of each of the first one and the second one of the two instances of the resource, wherein selecting one of the two instances of the resource comprises selecting one of the two instances of the resource based, in addition, on the resource utilization information.

6. The method of claim 1 further comprising accessing network utilization information that 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 selecting one of the two instances of the resource comprises selecting one of the two instances of the resource based, in addition, on the network utilization information.

7. The method of claim 1 further comprising:

determining a geographic location of the client;

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

accessing network utilization information that 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 selecting one of the two instances of the resource comprises selecting one of the two instances of the resource based, in addition, on the geographic location of the client, the resource utilization information, and the network utilization information.

8. A system comprising:

at least two instances of a resource, wherein a first one of the two instances is 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 is accessible by the client through a second network route between the client and the second one of the two instances;

a routability server to indicate that the first network route includes a peering connection between at least one router of a first internet service provider of a first network and at least one router of a second internet service provider of a second network and that the second network route does not include the peering connection, wherein the peering connection is subject to a peering agreement that regulates network traffic that is to be sent over the peering connection;

a resource selection server to:

determine that the first network route includes the peering connection based on the accessed routability information,

determine that the second network route does not include the peering connection based on the accessed routability information, and

select one of the two instances of the resource based, at least in part, on the determination that the first network route includes the peering connection that is subject to the peering agreement and the determination that the second network route does not include the peering connection;

determine that the peering agreement for the peering connection will not be maintained if the first of the two instances is selected, wherein selecting one of the two instances of the resource includes selecting the second one of the two instances, at least in part, in order to maintain the peering agreement for the peering connection; and

a front-end server to receive a request for the resource from the client and to instruct the client to access the selected instance of the resource.

9. The system of claim 8 further comprising a geography server to determine a geographic location of the client, and wherein the resource selection server is configured to select one of the two instances of the resource based, in addition, on the geographic location of the client.

10. The system of claim 8 further comprising a database that stores resource utilization information that indicates utilization of each of the first one and the second one of the two instances of the resource, and wherein the resource selection server is configured to select one of the two instances of the resource based, in addition, on the resource utilization information.

11. The system of claim 8 further comprising a database that stores network utilization information that 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 resource selection server is configured to select one of the two instances of the resource based, in addition, on the network utilization information.

12. The system of claim 8 further comprising:

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

a database that (1) stores resource utilization information that indicates utilization of each of the first one and the second one of the two instances of the resource, and (2) stores network utilization information that 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 resource selection server is configured to select one of the two instances of the resource based, in addition, on the geographic location of the client, the resource utilization information, and the network utilization information.

13. 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 a first one of the two instances is 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 is accessible by the client through a second network route between the client and the second one of the two instances;

access routability information that indicates the first network route includes a peering connection between at least one router of a first internet service provider of a first network and at least one router of a second internet service provider of a second network and that indicates the second network route does not include the peering connection, wherein the peering connection is subject to a peering agreement that regulates network traffic that is to be sent over the peering connection;

determine that the first network route includes the peering connection based on the accessed routability information;

determine that the second network route does not include the peering connection based on the accessed routability information;

select one of the two instances of the resource based, at least in part, on the determination that the first network route includes the peering connection that is subject to the peering agreement and the determination that the second network route does not include the peering connection;

determine that the peering agreement for the peering connection will not be maintained if the first of the two instances is selected, wherein the instructions for causing the computer to select one of the two instances of the resource comprise instructions for causing the computer to select one of the two instances of the resource based, in addition, to maintain the peering agreement for the peering connection; 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.

14. The computer useable medium of claim 13 wherein the instructions for causing the computer to select one of the two instances of the resource comprise instructions for causing the computer to select the first one of the two instances based, at least in part, on the determination that the first network route includes the peering connection and the determination that second network route does not include the peering connection.

15. The computer usable medium of claim 13 wherein the instructions for causing the computer to select one of the two instances of the resource comprise instructions for causing the computer to select the second one of the two instances based, at least in part, on the determination that the first network route includes the peering connection and the determination that second network route does not include the peering connection.

16. The computer usable medium of claim 13 wherein the computer program further includes instructions for causing the computer to access information indicating a geographic location of the client, and wherein the instructions for causing the computer to select one of the two instances of the resource comprise instructions for causing the computer to select one of the two instances of the resource based, in addition, on the geographic location of the client.

17. The computer usable medium of claim 13 wherein the computer program further includes instructions for causing the computer to access resource utilization information that indicates utilization of each of the first one and the second one of the two instances of the resource, and wherein the instructions for causing the computer to select one of the two instances of the resource comprise instructions for causing the computer to select one of the two instances of the resource based, in addition, on the resource utilization information.

18. The computer usable medium of claim 13 wherein the computer program further includes instructions for causing the computer to access network utilization information that 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 instructions for causing the computer to select one of the two instances of the resource comprise instructions for causing the computer to select one of the two instances of the resource based, in addition, on the network utilization information.

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

access information indicating a geographic location of the client;

access resource utilization information that indicates utilization of each of the first one and the second one of the two instances of the resource; and

access network utilization information that 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 instructions for causing the computer to select one of the two instances of the resource comprise instructions for causing the computer to select one of the two instances of the resource based, in addition, on the geographic location of the client, the resource utilization information, and the network utilization information in addition to the routability information.

Assignments (11)
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 →
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 →
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: 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 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 16, 2010
From: BANK OF AMERICA, N A
To: AOL INC; AOL ADVERTISING INC; GOING INC; LIGHTNINGCAST LLC; MAPQUEST, INC; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC; TACODA LLC; TRUVEO, INC; YEDDA, INC
Reel/Frame 025323/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2009
From: AOL LLC
To: AOL INC.
Reel/Frame 023723/0645 →
SECURITY AGREEMENT Recorded Dec 14, 2009
From: AOL INC.; AOL ADVERTISING INC.; BEBO, INC.; ICQ LLC; GOING, INC.; LIGHTNINGCAST LLC; MAPQUEST, INC.; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC.; TACODA LLC; TRUVEO, INC.; YEDDA, INC.
To: BANK OF AMERICAN, N.A. AS COLLATERAL AGENT
Reel/Frame 023649/0061 →