IP Library Granted Patent US 8,583,763
Granted Patent B1
US 8,583,763 · App. 13/623,051 · Granted Nov 12, 2013

Sandboxing content optimization at the network edge

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,583,763
App. No.
13/623,051
Granted
Nov 12, 2013
Kind
B1
Abstract

Some embodiments provide systems and methods for sandboxing content optimization to occur entirely within a network edge or PoP of a CDN. Some embodiments pass a first request for a first URL to a first back-end at the network edge that is configured to cache an optimized instance of the particular object. When the optimized instance of the particular object is not cached at the first back-end, a second request is issued for a second URL identifying a non-optimized instance of the particular object. The second request resolves internally within the network edge to a second back-end that is configured to cache the non-optimized object. The non-optimized object from the second back-end is optimized and passed to the first back-end. The first back-end caches the optimized instance of the non-optimized object and serves the optimized instance to a requesting end user.

Claims (32)

1. A computer-implemented method for sandboxing content optimization within a particular Point-of-Presence (PoP) of a CDN, wherein the particular PoP comprises a plurality of edge servers, the computer-implemented method comprising:

with a computer having at least one processor operating as a first edge server of the plurality of edge servers, receiving a first request comprising a first URL identifying a non-optimized instance of a particular object wherein the first edge server is identified to service the first request based on a hash of the first URL;

with a computer having at least one processor operating as a second edge server of the plurality of edge servers, receiving a second request comprising a second URL identifying an optimized instance of the particular object, wherein the second edge server is identified to service the second request based on a hash of the second URL, and wherein the second URL comprises the first URL and at least one identifier modifying the first URL to identify the optimized instance of the particular object;

servicing the first request at the first edge server, wherein servicing the first request comprises:

(i) passing the non-optimized instance of the particular object from the first edge server; and

(ii) caching the non-optimized instance of the particular object to the first edge server; and

servicing the second request at the second edge server, wherein servicing the second request comprises:

(i) issuing a third request for the non-optimized instance of the particular object from the second edge server operating in the particular PoP to the first edge server operating in the particular PoP based on a hash of the first URL that is included with the second URL when the optimized instance of the particular object is not cached at the second edge server;

(ii) generating at the second edge server, the optimized instance of the particular object based on a copy of the non-optimized instance of the particular object that is retrieved from the first edge server;

(iii) serving the optimized instance of the particular object from the second edge server to a requesting end user; and

(iv) caching the optimized instance of the particular object at the second edge server.

2. The computer-implemented method of claim 1 further comprising receiving a fourth request for the optimized instance of the particular content as identified by the second URL.

3. The computer-implemented method of claim 2 further comprising passing the fourth request to the second edge server based on a hash of the second URL.

4. The computer-implemented method of claim 3 further comprising serving the optimized instance of the particular object from cache of the second edge server to a requesting end user.

5. The computer-implemented method of claim 1 , wherein generating the optimized instance of the particular object comprises producing the optimized instance of the particular object with a smaller file size than the non-optimized instance of the particular object.

6. The computer-implemented method of claim 1 further comprising retrieving from an origin outside the particular PoP to the first edge server, a non-optimized base HTML page comprising the first URL linking to the non-optimized instance of the particular object.

7. The computer-implemented method of claim 6 further comprising generating an optimized base HTML page from the non-optimized base HTML page by replacing the first URL linking to the non-optimized instance of the particular object with the second URL linking to the optimized instance of the particular object.

8. The computer-implemented method of claim 7 further comprising passing the optimized base HTML page to the requesting end user and contemporaneously prefetching the non-optimized instance of the particular object from an origin outside the particular PoP.

9. The computer-implemented method of claim 7 , wherein generating the optimized base HTML page further comprises optimizing the non-optimized base HTML page to reduce a file size of the non-optimized base HTML page.

10. A particular Point-of-Presence (PoP) for a Content Delivery Network (CDN), the PoP providing optimized content delivery to a set of end users that are geographically proximate to the particular PoP, the particular PoP comprising:

a plurality of edge servers for optimizing content within the particular PoP and for serving the optimized content to requesting end users, a first edge server of the plurality of edge servers having at least one processor effectuating:

(i) a back-end agent comprising a cache configured to store a different subset of content deliverable by the CDN;

(ii) a front-end agent configured to forward a request for content to any back-end agent of an edge server of the plurality of edge servers that is designated to cache the content being requested, wherein the front-end agent identifies a back-end agent based on a hash of a URL in the request identifying the content; and

(iii) an optimization agent for generating an optimized instance for non-optimized content, wherein generating the optimized instance comprises:

receiving a request for the optimized instance of the non-optimized content from the back-end agent when the optimized instance is not in the back-end agent cache;

issuing a request for the non-optimized content to the front-end agent, the front-end agent forwarding the request to a back-end agent of a second edge server of the plurality of edge servers based on a hash of a URL identifying the non-optimized content, wherein the back-end agent of the second edge server is configured to cache the non-optimized content:

receiving the non-optimized content from the back-end agent of the second edge server;

producing the optimized instance from the non-optimized content;

caching the optimized content to the back-end agent of the first edge server:

serving the optimized content from the back-end agent of the first edge server, wherein the optimized instance has a smaller file size than the non-optimized content from which the optimized instance is generated.

11. The particular PoP of claim 10 , wherein the back-end agent is further configured to access a configuration and to forward a request for content to the optimization agent when the content being requested is designated for optimization in the configuration.

12. The particular PoP of claim 10 , wherein the back-end agent is configured to forward a request for an optimized instance of non-optimized content to the optimization agent when the optimized instance is not cached at the back-end agent and to serve the optimized instance to a requesting end user when the optimized instance is stored to the cache of the back-end agent.

Assignments (11)
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0406] Recorded Jul 9, 2025
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
To: UPLYNK, INC. (F/K/A EDGIO, INC.)
Reel/Frame 071875/0105 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0212] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071817/0877 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 068763/0276] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071818/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2025
From: EDGIO, INC.
To: DRNC HOLDINGS, INC.
Reel/Frame 070071/0327 →
PATENT SECURITY AGREEMENT Recorded Aug 23, 2024
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 068763/0276 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 065597/0212 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065597/0406 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2022
From: EDGECAST INC.
To: EDGIO, INC.
Reel/Frame 061738/0972 →
CHANGE OF NAME Recorded Mar 15, 2022
From: VERIZON DIGITAL MEDIA SERVICES INC.
To: EDGECAST INC.
Reel/Frame 059367/0990 →
CHANGE OF NAME Recorded Apr 25, 2016
From: EDGECAST NETWORKS, INC
To: VERIZON DIGITAL MEDIA SERVICES INC.
Reel/Frame 038511/0045 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2012
From: KIM, HAYES; PETERS, ROBERT J.; RUIZ, SERGIO LEONARDO; SEGIL, JAMES
To: EDGECAST NETWORKS, INC.
Reel/Frame 028991/0530 →