IP Library Granted Patent US 7,962,580
Granted Patent B2
US 7,962,580 · App. 12/334,430 · Granted Jun 14, 2011

Content delivery network

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 7,962,580
App. No.
12/334,430
Granted
Jun 14, 2011
Kind
B2
Abstract

A content delivery system for providing content from a content delivery network to end users may include a plurality of delivery servers that host one or more content items and an inventory server having an inventory of content. The inventory of content can indicate which of the delivery servers host the content items. The inventory server may receive a request for a content item from an end user system and may access the inventory of content to determine one or more delivery servers that host the content item. In response to this determination, the inventory server may redirect the request for the content item to a selected one of the delivery servers. The selected delivery server can then serve the content item to the end user system.

Claims (44)

1. A computer-implemented method of providing content to end users from a content delivery network, the method comprising:

receiving, within a content delivery network comprising a plurality of delivery servers, a content item from a content provider, the content provider providing a web site;

returning a uniform resource indicator (URI) corresponding to the content item, the URI operative to identify a plurality of inventory servers in the content delivery network;

provisioning the content item to one or more of the delivery servers in the content delivery network, the one or more delivery servers each comprising computer hardware;

in response to the one or more delivery servers receiving the content item, providing to the plurality of inventory servers a message from each of the one or more delivery servers that have received the content item, the message announcing the receiving of the content item by a respective one of the delivery servers, the message comprising content location information identifying a location of the content item on the respective delivery server;

storing inventory information in an inventory of each of the plurality of inventory servers, the inventory information describing which of the one or more delivery servers hosts the content item and the content location information for the content item;

receiving, at one of the plurality of inventory servers, a request for the content item from an end user, the request specifying the URI, the end user having received the URI in response to accessing the web site of the content provider;

in response to receiving the request for the content item, accessing the inventory of the selected inventory server to determine a selected one of the one or more delivery servers that hosts the content item;

redirecting the request for the content item from the selected inventory server to the selected delivery server; and

providing the content item to the end user from the selected delivery server.

2. The method of claim 1 , wherein the inventory information comprises at least one mapping of a name of the content item with a network address for one or more of the delivery servers that host the content item.

3. The method of claim 1 , further comprising propagating the inventory information to others of the plurality of inventory servers in the content delivery network.

4. The method of claim 1 , wherein providing the content item comprises sending one or more messages each containing a portion of the content item using a push-based network protocol to the one or more delivery servers.

5. The method of claim 1 , wherein at least some of the plurality of inventory servers are located in geographically different locations.

6. The method of claim 1 , wherein said receiving the request for the content item at one of the plurality of inventory severs is performed using anycast routing.

7. A non-transitory computer-readable storage medium comprising computer-executable instructions configured to implement in one or more processors a method of provisioning content in a content delivery network, the method comprising:

provisioning a content item to first delivery servers selected from a plurality of delivery servers, each of the plurality of delivery servers comprising computer hardware;

returning, to a provider of the content item, a uniform resource indicator (URI) corresponding to the content item, the URI operative to identify a plurality of inventory servers in the content delivery network;

in response to a selected one of the first delivery servers receiving the content item, providing to the plurality of inventory servers an inventory message from the selected delivery server, the inventory message comprising content location information identifying a location of the content item on the selected delivery server; and

storing, with each of the plurality of inventory servers, an inventory in physical computer storage, the inventory indicating which of the first delivery servers hosts the content item, thereby enabling a user system accessing a selected one of the inventory servers with the URI to be redirected to one of the delivery servers that hosts the content item.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the method further comprises providing a content delivery network comprising the plurality of delivery servers.

9. The non-transitory computer-readable storage medium of claim 7 , wherein said provisioning content comprises randomly selecting the first delivery servers to receive the content item.

10. The non-transitory computer-readable storage medium of claim 7 , wherein storing the inventory comprises storing a network address for the selected delivery server in association with a name of the content item.

11. The non-transitory computer-readable storage medium of claim 7 , wherein the selected delivery server allows an operating system installed on the selected delivery server to manage caching of the content item into computer memory, without using any additional caching mechanisms.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises providing a network address for the content item to a content provider, the network address operative to indicate a selected one of the inventory servers.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the method further comprises accessing the inventory of the selected inventory server to determine a second delivery server that hosts the content, and providing a network address for the second delivery server responsive to the request.

14. The non-transitory computer-readable storage medium of claim 7 , wherein the method further comprises propagating the inventory message to others of the plurality of inventory servers in the content delivery network.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the method further comprises receiving, with the selected inventory server, a request for the content item.

16. The non-transitory computer-readable storage medium of claim 7 , wherein at least some of the first delivery servers are located in different data centers.

17. A content delivery system for providing content from a content delivery network to end users, the system comprising:

a plurality of delivery servers in a content delivery network, the delivery servers comprising computer hardware, at least some of the delivery servers hosting one or more content items; and

a plurality of inventory servers, each of the inventory servers comprising an inventory of content, the inventory of content indicating which of the delivery servers host the one or more content items, the inventory being established in the plurality of inventory servers by receiving inventory announcements from one or more of the delivery servers that host the one or more content items, the inventory announcements comprising location information corresponding to the one or more content items on the respective one or more delivery servers;

each of the inventory servers operative to:

receive a request for a selected one of the one or more content items from a user system, the request specifying a logical location of the selected content item, the logical location configured to address each of the plurality of inventory servers while allowing the user system to connect to one of the plurality of inventory servers;

use the logical location of the content item to access the inventory of content to determine one or more of the delivery servers that host the selected content item, and

redirect the request for the selected content item to a selected one of the delivery servers, such that the selected delivery server is operative to serve the selected content item to the user system.

18. The system of claim 17 , wherein said redirection comprises providing a network address for one of the delivery servers.

19. The system of claim 18 , wherein the network address specifies a path and file name of the content item on one of the delivery servers.

20. The system of claim 17 , wherein the logical location comprises a uniform resource identifier.

21. The system of claim 17 , wherein the inventory comprises mappings of content item file names and network addresses of one or more of the delivery servers.

22. The system of claim 17 , wherein said redirection comprises performing Hyper-Text Transfer Protocol (HTTP) redirection.

23. The system of claim 17 , wherein said redirection comprises performing a direct server return.

24. The system of claim 17 , further comprising a server of last resort operative to serve the content item in response to the selected delivery server being unable to serve the content item.

25. The system of claim 17 , wherein each of the plurality of inventory servers comprises one or more processors.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2021
From: HIGHWINDS HOLDINGS, INC.
To: STACKPATH, LLC
Reel/Frame 055732/0601 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2020
From: WHITEHORSE CAPITAL MANAGEMENT, LLC (F/K/A WHITEHORSE LENDING, LLC)
To: ABRY PARTNERS VIII, LP
Reel/Frame 051478/0014 →
RELEASE OF SECURITY INTEREST Recorded Apr 5, 2019
From: ANTARES CAPITAL LP
To: HIGHWINDS HOLDINGS INC.; SECURED CONNECTIVITY, LLC; FIREBLADE HOLDINGS, LLC
Reel/Frame 048803/0554 →
RELEASE OF PATENT SECURITY AGREEMENT Recorded Feb 10, 2017
From: CERBERUS BUSINESS FINANCE, LLC
To: HIGHWINDS HOLDINGS, INC.
Reel/Frame 041675/0214 →
SECURITY INTEREST Recorded Feb 7, 2017
From: HIGHWINDS HOLDINGS, INC.; SECURED CONNECTIVITY, LLC
To: WHITEHORSE LENDING, LLC, AS COLLATERAL AGENT
Reel/Frame 041191/0014 →
RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME NO. 30936/0509 Recorded Feb 6, 2017
From: GOLDMAN SACHS BDC, INC.
To: HIGHWINDS HOLDINGS, INC.
Reel/Frame 041639/0945 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2017
From: HIGHWINDS HOLDINGS, INC.
To: ANTARES CAPITAL LP, AS COLLATERAL AGENT
Reel/Frame 041624/0784 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 2, 2013
From: SILICON VALLEY BANK
To: HIGHWINDS HOLDINGS, INC.
Reel/Frame 030948/0944 →
NOTICE OF GRANT OF A SECURITY INTEREST IN PATENTS Recorded Aug 1, 2013
From: HIGHWINDS HOLDINGS, INC.
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 030937/0547 →
NOTICE OF GRANT OF A SECURITY INTEREST IN PATENTS Recorded Jul 31, 2013
From: HIGHWINDS HOLDINGS, INC.
To: GOLDMAN SACHS BDC, INC.
Reel/Frame 030936/0509 →
RELEASE OF SECURITY INTEREST Recorded Apr 13, 2011
From: HARBERT MEZZANINE PARTNERS II SPIC, L.P.
To: HIGHWINDS CAPITAL, INC.; HIGHWINDS SOFTWARE, L.L.C.; HIGHWINDS GREENHEAD, LLC; TSM TECHNOLOGY MANAGEMENT, INC.; HIGHWINDS HOLDINGS, INC.; HIGHWINDS WHOLESALE GROUP, INC. (N/K/A WHOESALE NEWS, INC.); HIGHWINDS MEDIA GROUP, INC.; HIGHWINDS RETAIL GROUP, INC. (N/K/A NEWSHOSTING HOLDINGS, INC.)
Reel/Frame 026122/0086 →
SECURITY AGREEMENT Recorded Mar 9, 2010
From: HIGHWINDS HOLDINGS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 024045/0953 →
SECURITY AGREEMENT Recorded Feb 25, 2010
From: HIGHWINDS HOLDINGS, INC.
To: HARBERT MEZZANINE PARTNERS II SBIC, L.P.
Reel/Frame 023991/0380 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2009
From: GAGLIARDI, JOSHUA D.; MUNGER, TIMOTHY S.
To: HIGHWINDS HOLDINGS, INC.
Reel/Frame 022333/0792 →