IP Library Granted Patent US 10,148,793
Granted Patent B2
US 10,148,793 · App. 15/259,826 · Granted Dec 4, 2018

Selecting an instance of a resource using network routability information

Inventors: Pablo Averbuj (Fairfax, VA); Mark J. Muehl (Potomac, MD); Vijay Gill (Clifton, VA)
Assignee: Citrix Systems, Inc.
H04L67/42H04L45/306H04L67/101H04L67/104H04L67/18H04L67/327H04L45/22H04L67/2842
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 10,148,793
App. No.
15/259,826
Granted
Dec 4, 2018
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 (35)

1. A computer-implemented method for processing resource requests in a network wherein at least two instances of a resource are maintained, the method comprising:

receiving, by a resource selection system and from a client, a request for the resource comprising an Internet Protocol (IP) address of the client and an identification of the resource;

accessing, by the resource selection system, routability information for a first instance of the at least two instances of the resource and for a second instance of the at least two instances of the resource, wherein the routability information for a given instance indicates at least a portion of a network path that would be traversed by a packet between the given instance and the client and wherein the routability information for the first instance indicates that the first instance is accessible via a peering connection subject to a peering agreement;

determining, by the resource selection system, a selection score based on both the routability information and at least one of: a geographic location of the client, resource utilization information, or network utilization information;

selecting, by a processor of the resource selection system, one of the first instance or the second instance based, at least in part, on both the selection score and the peering agreement; and

instructing, by the resource selection system, the client to access the selected instance of the resource.

2. The method of claim 1 , wherein instructing the client to access the selected instance of the resource comprises:

redirecting the client to the selected instance of the resource.

3. The method of claim 1 , wherein the first instance and the second instance both provide a same set of services associated with the resource.

4. The method of claim 1 , wherein the resource is a cache server.

5. The method of claim 1 , wherein the resource is a streaming media server.

6. The method of claim 1 , wherein the routability information indicates that the first instance is accessible within a network associated with an operator of the resource selection system, and wherein the first instance is selected as the selected instance based on the routability information.

7. The method of claim 1 , wherein the selected instance of the resource is selected based on the geographic location of the client.

8. The method of claim 1 , wherein the selected instance of the resource is selected based on the resource utilization information, and wherein the resource utilization information indicates utilization of each of the first instance of the resource and the second instance of the resource.

9. The method of claim 1 , wherein the selected instance of the resource is selected based on the network utilization information, and wherein the network utilization information indicates network utilization of each of a first network on which the first instance of the resource resides and of a second network on which the second instance of the resource resides.

10. The method of claim 1 , wherein the selected instance of the resource is selected based on each of the geographic location of the client, the resource utilization information, and the network utilization information.

11. A resource selection 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, the system comprising:

a front-end server to receive the request for the resource from the client, wherein the request comprises an Internet Protocol (IP) address of the client and an identification of the resource;

a routability server to determine routability information for the first instance and for the second instance, wherein the routability information for a given instance indicates at least a portion of a network path that would be traversed by a packet between the given instance and the client and wherein the routability information for the first instance indicates that the first instance is accessible via a peering connection subject to a peering agreement, wherein the routability server comprises at least one processor; and

a resource selection server to select one of the first instance or the second instance based, at least in part, on both a selection score and the peering agreement, wherein the selection score is determined based, at least in part, on both the routability information and at least one of: a geographic location of the client, resource utilization information, or network utilization information,

wherein the front-end server is configured to instruct the client to access the selected instance of the resource.

12. The system of claim 11 , further comprising a geography server to determine the geographic location of the client, and wherein the resource selection server is configured to select the selected instance of the resource based on the geographic location of the client.

13. The system of claim 11 , wherein the resource utilization information indicates utilization of each of the first instance of the resource and the second instance of the resource, and wherein the resource selection server is configured to select the selected instance of the resource based on the resource utilization information.

14. The system of claim 11 , wherein the network utilization information indicates network utilization of each of a first network on which the first instance of the resource resides and of a second network on which the second instance of the resource resides, and wherein the resource selection server is configured to select the selected instance of the resource based on the network utilization information.

15. The system of claim 11 , wherein the resource selection server is configured to select the selected instance of the resource based on each of the geographic location of the client, the resource utilization information, and the network utilization information.

16. 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 from a client for a resource, the request comprising an Internet Protocol (IP) address of the client and an identification of the resource, wherein at least two instances of a resource are maintained;

access routability information for a first instance of the at least two instances of the resource and for a second instance of the at least two instances of the resource, wherein the routability information for a given instance indicates at least a portion of a network path that would be traversed by a packet between the given instance and the client and wherein the routability information for the first instance indicates that the first instance is accessible via a peering connection subject to a peering agreement;

determine a selection score based on both the routability information and at least one of: a geographic location of the client, resource utilization information, or network utilization information;

select one of the first instance or the second instance based, at least in part, both on the selection score and the peering agreement; and

send a response to the client indicating the selected instance.

17. The computer useable medium of claim 16 , wherein the selected instance of the resource is selected based on the geographic location of the client.

18. The computer useable medium of claim 16 , wherein the selected instance of the resource is selected based on the resource utilization information, and wherein the resource utilization information indicates utilization of each of the first instance of the resource and the second instance of the resource.

19. The computer useable medium of claim 16 , wherein the selected instance of the resource is selected based on the network utilization information, and wherein the network utilization information indicates network utilization of each of a first network on which the first instance of the resource resides and of a second network on which the second instance of the resource resides.

20. The computer useable medium of claim 16 , wherein the selected instance of the resource is selected based on each of the geographic location of the client, the resource utilization information, and the network utilization information.

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 →
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 →
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 →
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 →
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 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
CHANGE OF NAME Recorded Jul 30, 2019
From: AMERICA ONLINE, INC.
To: AOL LLC
Reel/Frame 049901/0854 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2018
From: AVERBUJ, PABLO; MUEHL, MARK J.; GILL, VIJAY
To: AMERICA ONLINE, INC.
Reel/Frame 047102/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2018
From: AOL LLC
To: AOL INC.
Reel/Frame 047206/0908 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2018
From: AOL INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 047102/0765 →
Continuity (4)
Continuation 13329841 · Dec 19, 2011
Continuation 11321039 · Dec 30, 2005
Provisional Application 60691253 · Jun 17, 2005
Related Publication 20160381186A1 · Dec 29, 2016