IP Library › Granted Patent US 12,585,514
Granted Patent B2
US 12,585,514 · App. 18/541,909 · Granted Mar 24, 2026

Content delivery network-based routing of application programming interface requests to cloud service instances

Inventors: Roman Nersisyan (Santa Clara, CA); Michael Zayats (Santa Clara, CA); Travis S. Tripp (Ft. Collins, CO)
Assignee: Hewlett Packard Enterprise Development LP
G06F9/547
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,585,514
App. No.
18/541,909
Granted
Mar 24, 2026
Kind
B2
Abstract

A process includes receiving, by a server associated with a content delivery network, a first request that specifies an application programming interface (API) call to a cloud service. The first request includes data that represents an authorization bearer token, a geographical service region identifier and an API call group. The process includes routing, by the server, the API call to an instance of the cloud service. The routing includes determining, by the server, a client identifier based on the authorization bearer token; and identifying, by the server, a location of the instance based on the client identifier, the geographical region identifier and the API call group identifier. The routing includes, responsive to the identification, sending, by the receiver, a second request corresponding to the API call to the location.

Claims (55)

1 . A method comprising:

receiving, by a server associated with a content delivery network, a first request specifying an application programming interface (API) call to a cloud service, wherein the first request comprises data representing an authorization bearer token, a geographical service region identifier and an API call group identifier; and

routing, by the server, the API call to an instance of the cloud service, wherein the routing comprises:

determining, by the server, a client identifier based on the authorization bearer token;

identifying, by the server, a location of the instance based on the client identifier, the geographical service region identifier and the API call group identifier; and responsive to the identification, sending, by the server, a second request corresponding to the API call to the location.

2 . The method of claim 1 , wherein identifying the location of the instance comprises:

identifying, by the server, an entry of a table based on the client identifier, the geographical service region identifier and the API call group identifier; and

reading the entry to determine the location of the instance.

3 . The method of claim 2 , further comprising:

responsive to determining, by a cloud service manager, to migrate a workload associated with the client identifier from the instance to a second instance of the cloud service, updating the entry with data representing a location of the second instance.

4 . The method of claim 1 , wherein the data represents a uniform resource location (URL) and a header, and the header comprises an authorization bearer token, the method further comprising determining the client identifier based on the authorization bearer token.

5 . The method of claim 1 , wherein the data represents a uniform resource location (URL), and the URL comprises a subdomain name that contains the geographical service region identifier.

6 . The method of claim 1 , wherein the data represents a uniform resource location (URL), and the URL comprises a path that contains the API call group identifier.

7 . The method of claim 1 , wherein identifying the location of the instance comprises:

identifying a record of a lookup table based on the client identifier, the geographical service region identifier and the API call group identifier; and

responsive to the identification of the record of the lookup table, reading, from the record, the location of the instance.

8 . The method of claim 1 , wherein:

the location of the instance corresponds to a second server of a plurality of servers located in a geographical service region corresponding to the geographical service region identifier; and

the plurality of servers hosts at least one other instance of the service.

9 . The method of claim 8 , wherein a third server of the plurality of servers other than the second server hosts an instance of the at least one other instance.

10 . The method of claim 1 , wherein the location of the instance is in a geographical service region corresponding to the geographical service region identifier, the method further comprising constraining the client identifier to a single instance of the service corresponding to the geographical service region.

11 . A non-transitory storage medium that stores machine-readable instructions that, when executed by a machine associated with a point of presence of a content delivery network, cause the machine to:

access an application programming interface (API) request directed to a service;

process the API request to determine a client identifier associated with the API request, a geographical region associated with the API request and an API call group associated with the API request;

access location information stored in a global data store based on the client identifier, the geographical region and the API call group, wherein the location information corresponds to an instance of the service; and

route the API request to the instance based on the location information.

12 . The storage medium of claim 11 , wherein the instructions, when executed by the machine, further cause the machine to:

process the API request to extract, from a uniform resource location (URL) of the API request, a subdomain of a domain name contained in the URL; and

determine the geographical region based on the subdomain.

13 . The storage medium of claim 11 , wherein the instructions, when executed by the machine, further cause the machine to:

process the API request to extract, from a uniform resource location (URL) of the API request, a resource path; and

determine the API call group based on the resource path.

14 . The storage medium of claim 11 , wherein the instructions, when executed by the machine, further cause the machine to:

process the API request to extract, from a header of the API request, an authorization bearer token; and

determine the client identifier based on the authorization bearer token.

15 . The storage medium of claim 11 , wherein the instructions, when executed by the machine, further cause the machine to:

access a global routing table of the global data store;

identify a record of the global routing table based on the client identifier, the geographical region identifier and the API call group identifier; and

read data from the record representing the location information.

16 . An apparatus comprising:

a hardware processor associated with a point of presence of a content delivery network; and

a memory to store machine-readable instructions that, when executed by the hardware processor, cause the hardware processor to:

receive an API request directed to a service;

based on a Uniform Resource Location (URL) represented by first data of the API request, determine a geographical region identifier from a subdomain name of the URL and determine an API call group identifier from a path of the URL;

based on an authorization bearer token represented by second data of the API request, determine a client identifier;

determine a location corresponding to an instance of the service based on the geographical region identifier, the API call group identifier and the client identifier; and

forward the API request to the location.

17 . The apparatus of claim 16 , wherein the instructions, when executed by the hardware processor, further cause the hardware processor to:

generate a second API request, wherein the second API request comprise a URL that identifies the location corresponding to the instance; and

send the API request to the location.

18 . The apparatus of claim 16 , wherein the API request corresponds to a representational state transfer (REST) API model.

19 . The apparatus of claim 16 , wherein the instructions, when executed by the hardware processor, further cause the hardware processor to:

identify an entry of a table based on the client identifier, the geographical service region identifier and the API call group identifier; and

read the entry to determine the location.

20 . The apparatus of claim 19 , wherein the instructions, when executed by the hardware processor, further cause the hardware processor to access a global data store to read the entry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2023
From: NERSISYAN, ROMAN; ZAYATS, MICHAEL; TRIPP, TRAVIS S.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 065887/0309 →
Continuity (1)
Related Publication 20250199892A1 · Jun 19, 2025
References Cited (15)
US 11165634B2 · Medam · 2021 [cited by examiner]
US 11228573B1 · Rangasamy · 2022 [cited by examiner]
US 11263201B2 · Bar Oz · 2022 [cited by examiner]
US 11637831B2 · Heldman · 2023 [cited by examiner]
US 20190306138A1 · Carru · 2019 [cited by examiner]
US 20190334757A1 · Hill · 2019 [cited by examiner]
US 20220335384A1 · Sharma · 2022 [cited by examiner]
US 20240037267A1 · Kwong · 2024 [cited by examiner]
Design Gurus; “System Design Basics: Navigating the World of CDN”; https://www.designgurus.io/blog/content-delivery-network-CDN-system-design-basics?gclid=Cj0KCQiA7OqrBhD9ARIsAK3UXh0kLgFhFk4IFLHCSU . . . downloaded on D… [cited by applicant]
Cloudflare; “What is a cloud API?”; https://www.cloudflare.com/learning/security/api/what-is-a-cloud-api/#:˜:text=Cloud%20APIs%20are%20software%20programs,of%20data%20between%20software%20programs; downloaded on Dec. 14… [cited by applicant]
Citrix|Blogs; “DaaS vs. SaaS vs. PaaS vs. IaaS: Which is right for your business?”; https://www.citrix.com/blogs/2022/01/20/saas-vs-paas-vs-iaas-vs-daas/#:˜:text=Businesses%20now%20have%20several%different,Desktop%20as%… [cited by applicant]
Microsoft Learn; “Container Apps—Create or Update—REST API (Azure Azure Container Apps)”; https://learn. microsoft.com/en-us/rest/api/containerapps/container-apps/create-or-update?view=rest-containerapps-2023-05-01&tabs… [cited by applicant]
Chekmazov, Roman; AWS for M&E Blog; “Application Programming Interface (API) call samples for AWS Elemental Live”; https://aws.amazon.com/blogs/media/application-programming-interface-api-call-samples-for-aws-elemental-… [cited by applicant]
Google Cloud; “Creating API requests and handling responses | Compute Engine Documentation |”; https://cloud.google.com/compute/docs/api/how-tos/api-requests-responses; downloaded on Dec. 14, 2023; 12 pp. [cited by applicant]
Hewlett Packard Enterprise; “introduction—API Reference”; https://hewlettpackard.github.io/iLOAmpPack-Redfish-API-Docs/; downloaded on Dec. 14, 2023; 323 pp. [cited by applicant]