IP Library Granted Patent US 11,048,660
Granted Patent B2
US 11,048,660 · App. 15/628,509 · Granted Jun 29, 2021

Acceleration system for facilitating processing of API calls

Inventor: Olivier Jean Poitrey (Sunnyvale, CA)
Assignee: NETFLIX, INC.
G06F15/17312G06F9/3885H04L67/101H04L67/1004G06F2209/549
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 11,048,660
App. No.
15/628,509
Granted
Jun 29, 2021
Kind
B2
Abstract

One embodiment includes acceleration systems that operate as intermediaries between the API processing system and the clients to reduce API call roundtrip latencies. The acceleration systems are a network of interconnected systems that are distributed across the globe. A given acceleration system establishes a network connection with a given client and receives a request for processing an API call over the connection. The programming function associated with the API call is configured in the API processing system. The acceleration system facilitates the processing of the API call over an established connection with the API processing system.

Claims (47)

1. A method, comprising:

receiving, from a client device, a steering request associated with an application programming interface (API) call; and

in response to receiving the steering request,

selecting, based on reachability selection criteria, an acceleration system that operates as an intermediary between the client device and an API processing system while enabling the API call to be processed, wherein the reachability selection criteria specify that the client device be able to access at least one of an Internet service provider or an Internet exchange point associated with the acceleration system, and wherein Internet service providers and content delivery networks are able to exchange Internet traffic though the Internet exchange point, and

routing the client device to the acceleration system.

2. The method of claim 1 , wherein selecting the acceleration system based on the reachability selection criteria comprises determining that the acceleration system is accessible by the client device.

3. The method of claim 2 , wherein the acceleration system is embedded within the Internet service provider and is accessible only by client devices that are associated with the Internet service provider.

4. The method of claim 1 , wherein the acceleration system also enabled a previous API call to be processed, and selecting the acceleration system is further based on a latency associated with processing the previous API call.

5. The method of claim 1 , further comprising:

receiving measurement data that is associated with processing a second API call and specifies a unique identifier associated with the client device;

computing, based on the measurement data, a latency that represents a total time from when a connection between the client device and the acceleration system was initiated to when a response associated with the second API call was received by the client device;

receiving from a resolver a request including a resolver Internet Protocol (IP) address and the unique identifier; and

matching the unique identifier included in the request with the unique identifier specified by the measurement data to determine that the latency is associated with the resolver IP address.

6. The method of claim 5 , further comprising:

receiving, from the client device, a second steering request associated with a third API call, wherein the second steering request includes the resolver IP address; and

selecting, based on the latency that is associated with the resolver IP address, the acceleration system that operates as the intermediary between the client device and the API processing system while enabling the third API call to be processed.

7. The method of claim 6 , wherein the resolver IP address is associated with the Internet service provider through which the client device accesses Internet services, and wherein the resolver IP address is different than a client IP address associated with the client device.

8. The method of claim 1 , wherein selecting the acceleration system is further based on a level of congestion within a communication connection between the acceleration system and the API processing system.

9. The method of claim 1 , further comprising receiving, from the client device, measurement data from the client device generated from one or more measurement operations associated with the acceleration system.

10. One or more non-transitory computer readable media storing instructions that, when executed by one or more processors, cause the one or more processors to:

receive, from a client device, a steering request associated with an application programming interface (API) call; and

in response to receiving the steering request,

select, based on reachability selection criteria, an acceleration system that operates as an intermediary between the client device and an API processing system while enabling the API call to be processed, wherein the reachability selection criteria specify that the client device be able to access at least one of an Internet service provider or an Internet exchange point associated with the acceleration system, and wherein Internet service providers and content delivery networks are able to exchange Internet traffic though the Internet exchange point, and

route the client device to the acceleration system.

11. The one or more computer readable media of claim 10 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to select the acceleration system based on the reachability selection criteria by determining that the acceleration system is accessible by the client device.

12. The one or more computer readable media of claim 11 , wherein the acceleration system is embedded within the Internet service provider and is accessible only by client devices that are associated with the internet service provider.

13. The one or more computer readable media of claim 10 , wherein the acceleration system is embedded within the Internet exchange point and is accessible only by client devices that can be routed to the Internet exchange point.

14. The one or more computer readable media of claim 10 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:

receive measurement data that is associated with processing a second API call and specifies a unique identifier associated with the client device;

compute, based on the measurement data, a latency that represents a total time from when a connection between the client device and the acceleration system was initiated to when a response associated with the second API call was received by the client device;

receive from a resolver a request including a resolver Internet Protocol (IP) address and the unique identifier; and

match the unique identifier included in the request with the unique identifier specified by the measurement data to determine that the latency is associated with the resolver IP address.

15. The one or more computer readable media of claim 14 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:

receive, from the client device, a second steering request associated with a third API call, wherein the second steering request includes the resolver IP address; and

select, based on the latency that is associated with the resolver IP address, the acceleration system that operates as the intermediary between the client device and the API processing system while enabling the third API call to be processed.

16. The one or more computer readable media of claim 10 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to select the acceleration system based on latency criteria.

17. The one or more computer readable media of claim 16 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to select the acceleration system based on the latency criteria by determining latencies associated with one or more prior API calls received from the client device and processed by the acceleration system.

18. The one or more computer readable media of claim 17 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to process measurement data received from the client device to measure the latencies.

19. A computing environment, comprising:

a plurality of acceleration systems that each operates as an intermediary between a client device and an API processing system while enabling application programming interface (API) calls to be processed; and

a client steering system configured to route the client device to one of the plurality of acceleration systems using reachability selection criteria, wherein the client steering system comprises a selection engine configured to:

receive, from the client device, a steering request associated with an API call, and

in response to receiving the steering request,

select, based on the reachability selection criteria, an acceleration system from the plurality of acceleration systems for enabling the API call to be processed, wherein the reachability selection criteria specify that the client device be able to access at least one of an Internet service provider or an Internet exchange point associated with the selected acceleration system, and wherein Internet service providers and content delivery networks are able to exchange Internet traffic though the Internet exchange point; and

route the client device to the selected acceleration system.

20. The computing environment of claim 19 , wherein, in response to being routed to the selected acceleration system, the client device performs a transmission control protocol (TCP) handshake and a transport layer security (TLS) handshake with the selected acceleration system.

21. The computing environment of claim 20 , wherein, subsequent to the TCP and TLS handshakes, the client device transmits the API call to the selected acceleration system, and the selected acceleration system forwards the API call to the API processing system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2017
From: POITREY, OLIVIER JEAN
To: NETFLIX, INC.
Reel/Frame 042761/0848 →
Continuity (1)
Related Publication 20180365190A1 · Dec 20, 2018
Cited By (1)
US 12,477,034