IP Library Granted Patent US 12,225,099
Granted Patent B2
US 12,225,099 · App. 18/591,324 · Granted Feb 11, 2025

Programmable delivery network

Inventors: Subramanian Varadarajan (Los Gatos, CA); Rosarin Jolly Roy Antonyraj (Santa Clara, CA); Kumaravel Senthivel (San Jose, CA)
Assignee: Palo Alto Networks, Inc.
H04L67/568H04L67/01H04L67/1001H04L67/63
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,225,099
App. No.
18/591,324
Granted
Feb 11, 2025
Kind
B2
Abstract

A system and method are provided for provisioning code snippets for programming a content delivery network. The method includes receiving a first client code snippet from a first client. The first client code snippet includes identity information of origin servers, standard responses for network requests, and configuration parameters to configure programmable content delivery nodes to respond to the one or more network requests. The method also includes publishing the first client code snippet to a snippet library, and indexing the first client code snippet in the snippet library. The method also includes receiving, from a second client, a request for a second client code snippet. The method also includes selecting a subset of client code snippets stored in the snippet library. The method also includes rendering identification information for the subset of client code snippets, and outputting a selected client code snippet from the subset of client code snippets.

Claims (40)

1. A method comprising:

loading, onto a first plurality of edge servers of a programmable content delivery network, a first client code snippet of a first client, wherein the first client code snippet comprises identifiers of a first set of origin servers of the first client and a first standard response;

for a first time period, buffering first network requests for first content of the first client and responding to the first network requests according to the first standard response;

based on expiration of the first time period, sending the buffered first network requests to corresponding ones of the first set of origin servers; and

based on receipt of responses from the first set of origin servers, reconfiguring the first plurality of edge servers to respond to network requests for the first content of the first client based on the responses from the first set of origin servers.

2. The method of claim 1 further comprising configuring the first plurality of edge servers to execute the first client code snippet.

3. The method of claim 2 , wherein configuring the first plurality of edge servers comprises dividing the first plurality of edge servers into at least two sets and distributing processing of network requests between the at least two sets of edge servers according to a distribution ratio in the first client code snippet.

4. The method of claim 1 further comprising loading, onto a first subset of the first plurality of edge servers, a first monitoring code snippet executable to monitor resource usage from execution of the first client code snippet and determine anomalous resource usage.

5. The method of claim 4 further comprising configuring the first subset of edge servers to execute the first monitoring code snippet.

6. The method of claim 1 further comprising transmitting the first client code snippet and the first monitoring code snippet as a single code snippet from the first client to the first plurality of edge servers.

7. The method of claim 1 , wherein the plurality of edge servers include proxy servers.

8. The method of claim 1 , wherein the first client code snippet also includes a second standard response and claim 1 further comprising:

for the first time period, buffering second network requests for second content of the first client and responding to the second network requests according to the second standard response, wherein the first content is static content and the second content is dynamic content.

9. The method of claim 1 further comprising:

loading, onto at least a subset of the first plurality of edge servers of the programmable content delivery network, a second client code snippet of a second client, wherein the second client code snippet comprises identifiers of a second set of origin servers of the second client and a second standard response;

for the first time period, buffering second network requests for second content of the second client and responding to the second network requests according to the second standard response;

based on expiration of the first time period, sending the buffered second network requests to corresponding ones of the second set of origin servers; and

based on receipt of responses from the second set of origin servers, reconfiguring at least the subset of the first plurality of edge servers to respond to network requests for the second content of the second client based on the responses from the second set of origin servers.

10. The method of claim 1 , wherein reconfiguring the first plurality of edge servers to respond to network requests for the first content of the first client based on the responses from the first set of origin servers comprises updating the first standard response based on at least a first of the responses from the first set of origin servers.

11. The method claim 1 further comprising determining the first plurality of edge servers based on network configuration parameters indicated in the first client code snippet.

12. A non-transitory computer-readable medium having program code stored thereon, the program code comprising instructions to:

configure an edge server of a programmable content delivery network based on a first client code snippet of a first client, wherein the first client code snippet comprises identifiers of a first set of origin servers of the first client and a first standard response;

for a first time period, buffer first network requests for first content of the first client and respond to the first network requests according to the first standard response;

based on expiration of the first time period, send the buffered first network requests to corresponding ones of the first set of origin servers; and

based on receipt of responses from the first set of origin servers, reconfigure the edge server to respond to network requests for the first content of the first client based on the responses from the first set of origin servers.

13. The non-transitory computer-readable medium of claim 12 , wherein the program code further comprises instructions to configure the edge server based on a first monitoring code snippet to monitor resource usage from execution of the first client code snippet and to determine anomalous resource usage.

14. The non-transitory computer-readable medium of claim 12 , wherein the first client code snippet also includes a second standard response and the program code further comprises instructions to:

for the first time period, buffer second network requests for second content of the first client and respond to the second network requests according to the second standard response, wherein the first content is static content and the second content is dynamic content.

15. The non-transitory computer-readable medium of claim 12 , wherein the instructions to reconfigure the edge server to respond to network requests for the first content of the first client based on the responses from the first set of origin servers comprise instructions to update the first standard response based on at least a first of the responses from the first set of origin servers.

16. A programmable content delivery network comprising:

a plurality of edge servers, each of the plurality of edge servers comprising a processor and a computer-readable medium having stored thereon instructions executable by the processor to cause the edge server to,

load a first client code snippet of a first client, wherein the first client code snippet comprises identifiers of a first set of origin servers of the first client and a first standard response;

for a first time period, buffer first network requests for first content of the first client and respond to the first network requests according to the first standard response;

based on expiration of the first time period, send the buffered first network requests to corresponding ones of the first set of origin servers; and

based on receipt of responses from the first set of origin servers, reconfigure the edge server to respond to network requests for the first content of the first client based on the responses from the first set of origin servers.

17. The programmable content delivery network of claim 16 , wherein the computer-readable medium of each edge server further comprises instructions executable by the processor of the edge server to cause the edge server to distribute processing of network requests among the plurality of edge servers according to a distribution ratio in the first client code snippet.

18. The programmable content delivery network of claim 16 , wherein the computer-readable medium of each edge server further comprises instructions executable by the processor of the edge server to cause the edge server to load a first monitoring code snippet executable to monitor resource usage from execution of the first client code snippet and to determine anomalous resource usage.

19. The programmable content delivery network of claim 16 , wherein the first client code snippet also includes a second standard response and wherein the computer-readable medium of each edge server further comprises instructions executable by the processor of the edge server to cause the edge server to:

for the first time period, buffer second network requests for second content of the first client and respond to the second network requests according to the second standard response, wherein the first content is static content and the second content is dynamic content.

20. The programmable content delivery network of claim 16 , wherein instructions to reconfigure an edge server to respond to network requests for the first content of the first client based on the responses from the first set of origin servers comprise instructions executable by the processor to cause the edge server to update the first standard response based on at least a first of the responses from the first set of origin servers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 29, 2024
From: VARADARAJAN, SUBRAMANIAN; ANTONYRAJ, ROSARIN JOLLY ROY; SENTHIVEL, KUMARAVEL
To: PALO ALTO NETWORKS, INC.
Reel/Frame 066608/0540 →
Continuity (5)
Continuation 18077588 · Dec 8, 2022
Continuation 17192593 · Mar 4, 2021
Continuation 16925189 · Jul 9, 2020
Provisional Application 62873637 · Jul 12, 2019
Related Publication 20240205304A1 · Jun 20, 2024
References Cited (18)
US 9736258B2 · Holland · 2017 [cited by examiner]
US 9992260B1 · Mcmullen · 2018 [cited by applicant]
US 11233841B2 · Wei · 2022 [cited by examiner]
US 20130166634A1 · Holland et al. · 2013 [cited by applicant]
US 20140372963A1 · Chandaria · 2014 [cited by applicant]
US 20150378692A1 · Dang et al. · 2015 [cited by applicant]
US 20160078038A1 · Solanki et al. · 2016 [cited by applicant]
US 20170063912A1 · Muddu et al. · 2017 [cited by applicant]
US 20170126538A1 · Wistow · 2017 [cited by applicant]
US 20180041567A1 · Kidambi et al. · 2018 [cited by applicant]
US 20180189292A1 · Grace, Jr. et al. · 2018 [cited by applicant]
US 20190158524A1 · Zadeh et al. · 2019 [cited by applicant]
Woo et al. “A Virtualized, Programmable Content Delivery Network.” 2014 2nd IEEE International Conference on Mobile Cloud Computing, Services, and Engineering. IEEE 2014. 159-168 (Year: 2014). [cited by examiner]
Tschudin et al. “Named Functions for Media Delivery Orchestration.” 2013 20th International Packet Video Workshop. IEEE 2013. 8 pages (Year: 2013). [cited by examiner]
PCT Application No. PCT/US2020/041672, International Preliminary Report on Patentability mailed Jan. 18, 2022, 6 pages. [cited by applicant]
PCT Application No. PCT/US2020/041672, International Search Report and Written Opinion mailed Nov. 13, 2020, 8 pages. [cited by applicant]
U.S. Appl. No. 16/925,189, Notice of Allowance mailed Dec. 23, 2020, 8 pages. [cited by applicant]
U.S. Appl. No. 17/192,593, Notice of Allowance mailed Sep. 8, 2022, 8 pages. [cited by applicant]