IP Library Granted Patent US 11,797,358
Granted Patent B2
US 11,797,358 · App. 17/384,184 · Granted Oct 24, 2023

Method and system for performing application programming interface calls between heterogeneous applications and cloud service providers

Inventors: Lucas Avery Wilson (Cedar Park, TX); Dharmesh M. Patel (Round Rock, TX)
Assignee: Dell Products L.P.
G06F9/541G06F11/3409
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,797,358
App. No.
17/384,184
Granted
Oct 24, 2023
Kind
B2
Abstract

Techniques described herein relate to a method for managing applications. The method may include obtaining, by a binding manager associated with a first CSP, a first API call from a first application; the binding manager identifies a first CSP API associated with the first CSP; identifies a second CSP API associated with the first API call; make a first determination that the second CSP API does not match the first CSP API; and in response to the first determination: translates the first API call into a format associated with the first CSP API to obtain a translated API call; initiates performance of the translated API call; obtains a first CSP API call return object in first CSP API format; translates the first CSP API call return object to obtain a translated CSP API call return object; and provides the translated CSP API call return object to the first application.

Claims (90)

1. A method for managing applications, the method comprising:

obtaining, by a binding manager associated with a first cloud service provider (CSP), a first application programming interface (API) call from a first application;

in response to obtaining the first API call, the binding manager:

identifies a first CSP API associated with the first CSP;

identifies a second CSP API associated with the first API call;

make a first determination that the second CSP API does not match the first CSP API; and

in response to the first determination:

translates the first API call into a format associated with the first CSP API to obtain a translated API call;

initiates performance of the translated API call;

obtains a first CSP API call return object in first CSP API format associated with the first CSP API;

translates the first CSP API call return object into a format associated with the second CSP API to obtain a translated CSP API call return object; and

provides the translated CSP API call return object to the first application;

obtaining, by the binding manager, a second API call from a second application;

in response to obtaining the second API call, the binding manager:

identifies the first CSP API is associated with the second application;

identifies the first CSP API is associated with the first CSP;

makes a second determination that the first CSP API associated with the second API call matches the first CSP API associated with the first CSP; and

in response to the second determination:

initiates performance of the second API call;

obtains a second CSP API call return object; and

provides the second CSP API call return object to the second application.

2. The method of claim 1 , wherein identifying the second CSP API associated with the first application comprises comparing the first API call to API call mapping information.

3. The method of claim 2 , wherein translating the application API call into a format associated with the CSP to obtain a translated API call comprises:

identifying mappings between the first CSP API and the second CSP API using the API mapping information;

translating an API call name of the first API call to an analogous API call name associated with the first CSP API;

translating an API call argument order of the first API call to an API call argument order associated with the first CSP API; and

translating an API call data format of the first API call to an API call data format associated with the first CSP API.

4. The method of claim 3 , wherein API mapping information specifies translations between the first CSP API and the second CSP API.

5. The method of claim 1 , wherein the first application is written to execute in the second CSP, wherein the second CSP comprises the second CSP API.

6. The method of claim 5 , wherein the first CSP comprises the first CSP API and not the second CSP API.

7. The method of claim 6 , wherein, prior to obtaining, by the binding manager, the first API call from the first application:

the first application migrates from the second CSP to the first CSP.

8. The method of claim 1 , wherein the second application is written to execute in the first CSP, wherein the first CSP comprises the first CSP API.

9. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for managing applications, the method comprising:

obtaining, by a binding manager associated with a first cloud service provider (CSP), a first application programming interface (API) call from a first application;

in response to obtaining the first API call, the binding manager:

identifies a first CSP API associated with the first CSP;

identifies a second CSP API associated with the first API call;

make a first determination that the second CSP API does not match the first CSP API; and

in response to the first determination:

translates the first API call into a format associated with the first CSP API to obtain a translated API call;

initiates performance of the translated API call;

obtains a first CSP API call return object in first CSP API format associated with the first CSP API;

translates the first CSP API call return object into a format associated with the second CSP API to obtain a translated CSP API call return object; and

provides the translated CSP API call return object to the first application;

obtaining, by the binding manager, a second API call from a second application;

in response to obtaining the second API call, the binding manager:

identifies the first CSP API is associated with the second application;

identifies the first CSP API is associated with the first CSP;

makes a second determination that the first CSP API associated with the second API call matches the first CSP API associated with the first CSP; and

in response to the second determination:

initiates performance of the second API call;

obtains a second CSP API call return object; and

provides the second CSP API call return object to the second application.

10. The non-transitory computer readable medium of claim 9 , wherein identifying the second CSP API associated with the first application comprises comparing the first API call to API call mapping information.

11. The non-transitory computer readable medium of claim 10 , wherein translating the application API call into a format associated with the CSP to obtain a translated API call comprises:

identifying mappings between the first CSP API and the second CSP API using the API mapping information;

translating an API call name of the first API call to an analogous API call name associated with the first CSP API;

translating an API call argument order of the first API call to an API call argument order associated with the first CSP API; and

translating an API call data format of the first API call to an API call data format associated with the first CSP API.

12. The non-transitory computer readable medium of claim 11 , wherein API mapping information specifies translations between the first CSP API and the second CSP API.

13. The non-transitory computer readable medium of claim 9 , wherein the first application is written to execute in the second CSP, wherein the second CSP comprises the second CSP API.

14. The non-transitory computer readable medium of claim 13 , wherein the first CSP comprises the first CSP API and not the second CSP API.

15. The non-transitory computer readable medium of claim 14 , wherein, prior to obtaining, by the binding manager, the first API call from the first application:

the first application migrates from the second CSP to the first CSP.

16. The non-transitory computer readable medium of claim 9 , wherein the second application is written to execute in the first CSP, wherein the first CSP comprises the first CSP API.

17. A system for managing applications, the system comprising:

a plurality of client service providers (CSPs); and

a binding manager associated with a first CSP of the plurality of CSPs, comprising a processor and memory, configured to:

obtain, by the binding manager, a first application programming interface (API) call from a first application;

in response to obtaining the first API call, the binding manager:

identifies a first CSP API associated with the first CSP;

identifies a second CSP API associated with the first API call;

make a first determination that the second CSP API does not match the first CSP API; and

in response to the first determination:

translates the first API call into a format associated with the first CSP API to obtain a translated API call;

initiates performance of the translated API call;

obtains a first CSP API call return object in first CSP API format associated with the first CSP API;

translates the first CSP API call return object into a format associated with the second CSP API to obtain a translated CSP API call return object; and

provides the translated CSP API call return object to the first application;

obtain, by the binding manager, a second API call from a second application;

in response to obtaining the second API call, the binding manager:

identifies the first CSP API is associated with the second application;

identifies the first CSP API is associated with the first CSP;

makes a second determination that the first CSP API associated with the second API call matches the first CSP API associated with the first CSP; and

in response to the second determination:

initiates performance of the second API call;

obtains a second CSP API call return object; and

provides the second CSP API call return object to the second application.

18. The system of claim 17 , wherein identifying the second CSP API associated with the first application comprises comparing the first API call to API call mapping information.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2021
From: WILSON, LUCAS AVERY; PATEL, DHARMESH M.
To: DELL PRODUCTS L.P.
Reel/Frame 056967/0124 →
Continuity (1)
Related Publication 20230023981A1 · Jan 26, 2023