IP Library › Granted Patent US 9,992,157
Granted Patent B2
US 9,992,157 · App. 15/412,310 · Granted Jun 5, 2018

DNS application server

Inventor: Martin Kagan (Portland, OR)
Assignee: Citrix Systems, Inc.
H04L61/1511H04L12/1485H04L61/305H04L61/609H04L67/42
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,992,157
App. No.
15/412,310
Granted
Jun 5, 2018
Kind
B2
Abstract

A method for providing access to an Internet resource includes receiving a DNS query including a hostname to be resolved, receiving status data, invoking a code by a name indicated by the hostname, conveying the status data to the code, receiving from the code a selection of an infrastructure, and generating a DNS response directing a resolution to the infrastructure.

Claims (44)

1. A method for providing access to an Internet resource comprising:

receiving a DNS query to resolve a hostname at a DNS application server;

identifying a selector code associated with the hostname in a plurality of selector codes stored at the DNS application server;

invoking the identified selector code associated with the hostname, the selector code accessing status data for a plurality of content delivery infrastructures and selecting an infrastructure, of the plurality of content delivery infrastructures, based, at least in part, on the infrastructure status data;

receiving, from the selector code associated with the hostname, an identifier for the selected infrastructure; and

responding to the DNS query with a DNS response that directs DNS resolution of the hostname towards the selected infrastructure.

2. The method of claim 1 , wherein directing the resolution towards the infrastructure comprises providing a redirection to a hostname alias.

3. The method of claim 1 , wherein the DNS response comprises a resolution of the hostname to an IP address associated with the selected infrastructure.

4. The method of claim 1 , wherein the selecting the infrastructure comprises determining, by the selector code associated with the hostname, an optimal infrastructure with respect to a function of infrastructure cost and quality of access.

5. The method of claim 1 , wherein the status data comprises status data for the plurality of content delivery infrastructures that is specific to a web client location.

6. The method of claim 1 , wherein the hostname includes a resource provider indicator and wherein the status data comprises status data for the plurality of content delivery infrastructures that is specific to the resource provider indicator.

7. The method of claim 1 , wherein the status data includes a measure of infrastructure usage.

8. The method of claim 1 , wherein the status data includes a measure of access quality.

9. The method of claim 1 , wherein the status data includes a web client location.

10. The method of claim 1 , wherein:

receiving the DNS query comprises receiving the DNS query from a DNS resolver; and

responding to the DNS query comprises transmitting the DNS response to the DNS resolver.

11. The method of claim 1 , wherein:

the hostname includes a domain and a key string; and

identifying the selector code associated with the hostname comprises matching the key string to an identifier of the selector code.

12. The method of claim 1 , further comprising receiving the selector code associated with the hostname from a third party.

13. The method of claim 12 , wherein receiving the selector code associated with the hostname comprises receiving the selector code through a web portal.

14. The method of claim 1 , wherein invoking the selector code associated with the hostname comprises executing an instance of the selector code and queuing a request for the instance of the selector code.

15. The method of claim 1 , wherein invoking the selector code associated with the hostname comprises executing the selector code in a restricted runtime environment.

16. A non-transitory computer readable storage medium storing computer instructions to direct access to a resource to a preferred infrastructure that hosts a copy of the resource, wherein the computer instructions, when executed, cause a device to perform operations, comprising:

receiving a DNS query to resolve a hostname;

identifying a selector code associated with the hostname from a plurality of selector codes stored on the computer-readable storage medium;

invoking the identified selector code associated with the hostname, wherein invoking the selector code causes the device to access status data for a plurality of content delivery infrastructures and select an infrastructure, of the plurality of content delivery infrastructures, using the status data; and

responding to the DNS query with a DNS response that directs DNS resolution of the hostname towards the selected infrastructure.

17. The storage medium of claim 16 , wherein the operations further comprise:

receiving selector code from a third party via a publicly available application programming interface; and

storing the selector code in association with the hostname.

18. The storage medium of claim 16 , wherein:

the operations further comprise determining a query source location for the DNS query; and

wherein the status data relates to performance expected for an access of the resource originating from the query source location.

19. The storage medium of claim 16 , wherein:

the operations further comprise accessing cost information for the plurality of content delivery infrastructures; and

the selecting the infrastructure uses the cost information.

20. A system including a memory, a computer readable storage medium, and a processor coupled to the memory and the computer readable storage medium, wherein the computer readable storage medium stores computer instructions to direct access to an Internet resource to a preferred infrastructure that hosts a copy of the Internet resource, wherein the computer instructions, when executed on the processor, cause the system to perform actions including:

receiving a DNS query to resolve a hostname;

identifying an infrastructure selector code that is associated with the hostname from a plurality of infrastructure selector codes;

invoking the infrastructure selector code associated with the hostname, the infrastructure selector code accessing infrastructure status data for a plurality of content delivery infrastructures and selecting an infrastructure, of the plurality of content delivery infrastructures using the infrastructure status data;

receiving, from the selector code associated with the hostname, an identifier for the selected infrastructure; and

responding to the DNS query with a DNS response that directs DNS resolution of the hostname towards the selected infrastructure.

Assignments (10)
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 →
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 →
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 →
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 Mar 15, 2019
From: KAGAN, MARTIN
To: CEDEXIS INC.
Reel/Frame 048612/0934 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2018
From: CEDEXIS, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 044894/0879 →
Continuity (4)
Continuation 13502100
Provisional Application 61251136 · Oct 13, 2009
Provisional Application 61258042 · Nov 4, 2009
Related Publication 20170134338A1 · May 11, 2017