IP Library Granted Patent US 11,184,462
Granted Patent B2
US 11,184,462 · App. 16/148,474 · Granted Nov 23, 2021

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 11,184,462
App. No.
16/148,474
Granted
Nov 23, 2021
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 (36)

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 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 whether at least a portion of a network path, that would be traversed by a packet between the given instance and the client, is maintained by the same entity that maintains the two instances of the resource;

determining, by the resource selection system, a selection score based on both the routability information and resource utilization information for the resource and based on a geographic location of the client, wherein the resource utilization information indicates utilization of each of the first instance of the resource and the second instance of the resource;

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

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

2. The method of claim 1 , wherein the selection score is further based on 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.

3. 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.

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

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

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

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

8. 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 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 whether at least a portion of a network path, that would be traversed by a packet between the given instance and the client, is maintained by the same entity that maintains the two instances of the resource, 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 a selection score, wherein the selection score is determined based, at least in part, on both the routability information and network utilization information for the resource and based on a geographic location of the client, 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;

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

9. The system of claim 8 , wherein the selection score is further based on resource utilization information, wherein the resource utilization information indicates utilization of each of the first instance of the resource and the second instance of the resource.

10. The system of claim 8 , further comprising a geography server to determine the geographic location of the client.

11. The system of claim 8 , wherein the front-end server is configured to instruct the client to access the selected instance of the resource by:

redirecting the client to the selected instance of the resource.

12. The system of claim 8 , wherein the first instance and the second instance both provide a same set of services associated with the resource.

13. The system of claim 8 , wherein the resource is a cache server.

14. The system of claim 8 , wherein the resource is a streaming media server.

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 from a client for a resource, the request comprising an 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 whether at least a portion of a network path, that would be traversed by a packet between the given instance and the client, is maintained by the same entity that maintains the two instances of the resource;

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

resource utilization information, wherein the resource utilization information indicates utilization of each of the first instance of the resource and the second instance of the resource; or

network utilization information, 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;

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

send a response to the client indicating the selected instance.

16. The computer useable medium of claim 15 , wherein the first instance and the second instance both provide a same set of services associated with the resource.

17. The computer useable medium of claim 15 , wherein the resource is a cache server.

18. The computer useable medium of claim 15 , wherein the resource is a streaming media server.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2019
From: AOL LLC
To: AOL INC
Reel/Frame 049902/0345 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2018
From: AVERBUJ, PABLO; MUEHL, MARK J.; GILL, VIJAY
To: AMERICA ONLINE, INC.
Reel/Frame 047105/0477 →
CHANGE OF NAME Recorded Oct 9, 2018
From: AMERICA ONLINE, INC.
To: AOL LLC
Reel/Frame 047207/0357 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2018
From: AOL INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 047105/0586 →
Continuity (5)
Continuation 15259826 · Sep 8, 2016
Continuation 13329841 · Dec 19, 2011
Continuation 11321039 · Dec 30, 2005
Provisional Application 60691253 · Jun 17, 2005
Related Publication 20190075188A1 · Mar 7, 2019