IP Library Granted Patent US 12,069,318
Granted Patent B2
US 12,069,318 · App. 17/693,306 · Granted Aug 20, 2024

Unified routing and caching logic for applications utilizing a content delivery network

Inventors: Mark Brocato (Tallinn, EE); Ivan Erceg (Santiago, CL); Ishan Anand (Sammamish, WA)
Assignee: Edgio, Inc.
H04N21/2183G06F8/71G06F12/0808G06F12/084G06F12/0862H04L41/08H04L67/5682G06F2212/6028
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 12,069,318
App. No.
17/693,306
Granted
Aug 20, 2024
Kind
B2
Abstract

Disclosed are systems and methods for providing unified routing and caching logic for applications utilizing a CDN. First, the system maintains access to one or more edge servers for a CDN, with the one or more edge servers being configured to execute edge logic. The system receives code for an application in a specified application framework, with the code and/or application framework including a unified set of routing and caching logic for dynamic data to be applied to a number of caches, and with the unified set of routing and caching logic being derived from a centralized definition. For each of the caches, the system first analyzes the set of routing and caching logic to determine a subset of the routing and caching logic to be executed by the cache, and then atomically sends the determined subset of the routing and caching logic to the cache.

Claims (46)

1. A method of configuring one or more caches of a web application to be used with a content delivery network (CDN), the web application being in an application framework and comprising a plurality of caches, the method comprising:

analyzing code for the web application in the application framework to identify, from a set of routing and caching logic for the web application,

(1) the one or more caches, of the plurality of caches of the web application, to which at least some of the set of routing and caching logic apply, and

(2) for each cache of the one or more caches, a subset of the routing and caching logic applicable to the respective cache; and

for each cache of the one or more caches, triggering configuration of the respective cache with the subset of the routing and caching logic identified in the analyzing as applicable to the respective cache, wherein the triggering configuration for each cache of the plurality of caches comprises sending the subset of the routing and caching logic to the respective cache.

2. The method of claim 1 , wherein the plurality of caches comprises at least one of: a browser cache, a service worker cache, or one or more CDN caches.

3. The method of claim 1 , wherein the routing and caching logic comprises one or more of: cache expiration times, stale-while-revalidate time, cache key computation logic, associated application version, private and public cache behaviors, browser and edge cache behaviors, or prefetch behaviors.

4. The method of claim 1 , further comprising:

in response to a request in the web application, directing the request to a version of edge logic corresponding to a version of the code of the web application.

5. The method of claim 4 , further comprising:

receiving a cache policy associated with at least one of the plurality of caches; and

atomically binding the cache policy and the code for the web application such that the cache policy executes only in conjunction with the version of the code of the web application.

6. The method of claim 1 , further comprising:

selecting the web application from a plurality of application versions of the web application, wherein each application version comprises a different version of the code of the web application and of the routing and caching logic for each of the plurality of caches based on a past deployment of the web application.

7. The method of claim 1 , wherein the web application is executed such that dynamic web pages and/or API data are pre-fetched and served from one or more edge servers according to the set of routing and caching logic.

8. The method of claim 1 , further comprising:

providing the code of the web application and the routing and caching logic for each of the plurality of caches to local storage of a client device,

wherein the code of the web application and the routing and caching logic for each of the plurality of caches is processed and/or executed locally at the client device when the CDN is not accessible by the client device.

9. The method of claim 1 , wherein the set of routing and caching logic for the web application is a unified set of routing and caching logic for the plurality of caches of the web application.

10. The method of claim 1 , wherein, for each cache of the one or more caches, sending the subset of the routing and caching logic to the cache comprises, for each cache of the one or more caches, atomically sending the subset of the routing and caching logic to the respective cache.

11. At least one non-transitory computer-readable medium containing instructions that, when executed by at least one processor, cause the at least one processor to carry out a method of configuring one or more caches of a web application to be used with a content delivery network (CDN), the web application being in an application framework and comprising a plurality of caches, the method comprising:

analyzing code for the web application in the application framework to identify, from a set of routing and caching logic for the web application,

(1) the one or more caches, of the plurality of caches of the web application, to which at least some of the set of routing and caching logic apply, and

(2) for each cache of the one or more caches, a subset of the routing and caching logic applicable to the respective cache; and

for each cache of the one or more caches, triggering configuration of the respective cache with the subset of the routing and caching logic identified in the analyzing as applicable to the respective cache, wherein the triggering configuration for each cache of the plurality of caches comprises sending the subset of the routing and caching logic to the respective cache.

12. The at least one non-transitory computer-readable medium of claim 11 , wherein the plurality of caches comprises at least one of: a browser cache, a service worker cache, or one or more CDN caches.

13. The at least one non-transitory computer-readable medium of claim 11 , wherein the routing and caching logic comprises one or more of: cache expiration times, stale-while-revalidate time, cache key computation logic, associated application version, private and public cache behaviors, browser and edge cache behaviors, or prefetch behaviors.

14. The at least one non-transitory computer-readable medium of claim 11 , wherein the method further comprises: in response to a request in the web application, directing the request to a version of edge logic corresponding to a version of the code of the web application.

15. The at least one non-transitory computer-readable medium of claim 14 , wherein the method further comprises:

receiving a cache policy associated with at least one of the plurality of caches; and

atomically binding the cache policy and the code for the web application such that the cache policy executes only in conjunction with the version of the code of the web application.

16. The at least one non-transitory computer-readable medium of claim 11 , wherein the method further comprises:

selecting the web application from a plurality of application versions of the web application, wherein each application version comprises a different version of the code of the web application and of the routing and caching logic for each of the plurality of caches based on a past deployment of the web application.

17. The at least one non-transitory computer-readable medium of claim 11 , wherein the web application is executed such that dynamic web pages and/or API data are pre-fetched and served from one or more edge servers according to the set of routing and caching logic.

18. The at least one non-transitory computer-readable medium of claim 11 , wherein the method further comprises:

providing the code of the web application and the routing and caching logic for each of the plurality of caches to local storage of a client device,

wherein the code of the web application and the routing and caching logic for each of the plurality of caches is processed and/or executed locally at the client device when the CDN is not accessible by the client device.

19. A communication system comprising:

one or more processors; and

at least one storage medium having encoded thereon executable instructions that, when executed by the one or more processors, cause the one or more processors to carry out a method of configuring one or more caches of a web application to be used with a content delivery network (CDN), the web application being in an application framework and comprising a plurality of caches, the method comprising:

analyzing code for the web application in the application framework to identify, from a set of routing and caching logic for the web application,

(1) the one or more caches, of the plurality of caches of the web application, to which at least some of the set of routing and caching logic apply, and

(2) for each cache of the one or more caches, a subset of the routing and caching logic applicable to the respective cache; and

for each cache of the one or more caches, triggering configuration of the respective cache with the subset of the routing and caching logic identified in the analyzing as applicable to the respective cache, wherein the triggering configuration for each cache of the plurality of caches comprises sending the subset of the routing and caching logic to the respective cache.

20. The communication system of claim 19 , wherein the method further comprises:

in response to a request in the application, directing the request to a version of edge logic corresponding to a version of the code of the application.

Assignments (9)
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 →
CHANGE OF NAME Recorded Oct 21, 2022
From: LIMELIGHT NETWORKS, INC.
To: EDGIO, INC.
Reel/Frame 061743/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2022
From: BROCATO, MARK; ERCEG, IVAN; ANAND, ISHAN
To: LIMELIGHT NETWORKS, INC.
Reel/Frame 059312/0250 →