IP Library › Granted Patent US 11,593,188
Granted Patent B2
US 11,593,188 · App. 16/914,928 · Granted Feb 28, 2023

Method and apparatus for providing asynchronicity to microservice application programming interfaces

Inventors: Srini Seetharaman (San Bruno, CA); Somdutt Brajaraj Patnaik (Santa Clara, CA)
Assignee: VMware, Inc.
G06F9/546G06F9/542H04L12/66H04L67/01H04L67/1095
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,593,188
App. No.
16/914,928
Granted
Feb 28, 2023
Kind
B2
Abstract

A method of handling an API call includes receiving a first API call from a job requestor, the first API call including a job to be executed by a microservice. The method also includes adding the job to a job queue, making a second, synchronous, API call including the job to the microservice, updating the job queue upon successful completion of the job by the microservice, and notifying the job requestor of the successful completion of the job.

Claims (44)

1. A method of handling an application programming interface (API) call, comprising:

receiving a first API call that has been made to a synchronous microservice, from a job requestor, the first API call specifying a job to be executed by the synchronous microservice;

determining whether or not the first API call is to be handled asynchronously;

upon determining that the first API call is to be handled asynchronously, adding the job specified in the first API call to a job queue and notifying the job requestor that the job has been added to the job queue, wherein the job queue includes a plurality of jobs to be executed by different synchronous microservices and a status indication of each of the jobs;

making a second API call specifying the job that has been added to the job queue, to the synchronous micro service;

updating the job queue upon successful completion of the job by the synchronous microservice; and

notifying the job requestor of the successful completion of the job.

2. The method of claim 1 , wherein the first API call includes a callback uniform resource locator (URL), and the job requestor is notified of the successful completion of the job by posting of a notification of the successful completion of the job to the URL.

3. The method of claim 2 , wherein the job requestor is a server, and the URL is a URL of the server.

4. The method of claim 1 , wherein the job requestor is notified of the successful completion of the job in response to a request for a job status received from the job requestor.

5. The method of claim 4 , wherein the job requestor is a browser, and the request for the job status is a third, synchronous, API call received from the browser.

6. The method of claim 1 , further comprising:

determining which of the different synchronous microservices that are available is least loaded, wherein

the second API call is made when the synchronous microservice targeted by the second API call is the least loaded.

7. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause an apparatus to:

receive a first application programming interface (API) call that has been made to a synchronous microservice, from a job requestor, the first API call specifying a job to be executed by the synchronous microservice;

determine whether or not the first API call is to be handled asynchronously;

upon determining that the first API call is to be handled asynchronously, add the job specified in the first API call to a job queue and notify the job requestor that the job has been added to the job queue, wherein the job queue includes a plurality of jobs to be executed by different synchronous microservices and a status indication of each of the jobs;

make a second API call specifying the job that has been added to the job queue, to the synchronous microservice;

update the job queue upon successful completion of the job by the synchronous micro service; and

notify the job requestor of the successful completion of the job.

8. The non-transitory computer-readable medium of claim 7 , wherein the first API call includes a callback uniform resource locator (URL), and the job requestor is notified of the successful completion of the job by posting of a notification of the successful completion of the job to the URL.

9. The non-transitory computer-readable medium of claim 8 , wherein the job requestor is a server, and the URL is a URL of the server.

10. The non-transitory computer-readable medium of claim 7 , wherein the job requestor is notified of the successful completion of the job in response to a request for a job status received from the job requestor.

11. The non-transitory computer-readable medium of claim 10 , wherein the job requestor is a browser, and the request for the job status is a third, synchronous, API call received from the browser.

12. The non-transitory computer-readable medium of claim 7 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to:

determine which of the different synchronous microservices that are available is least loaded, wherein

the second API call is made when the synchronous microservice targeted by the second API call is the least loaded.

13. A computer system, comprising:

an application programming interface (API) gateway;

an asynchronizer server communicatively connected to the API gateway; and

at least one synchronous microservice communicatively connected to the asynchronizer server, wherein

when the API gateway receives a first API call that has been made to the at least one synchronous microservice, from a job requestor, the first API call specifying a job to be executed by the at least one synchronous microservice, the asynchronizer server performs the steps of:

determining whether or not the first API call is to be handled asynchronously;

upon determining that the first API call is to be handled asynchronously, adding the job specified in the first API call to a job queue and notifying the job requestor that the job has been added to the job queue, wherein the job queue includes a plurality of jobs to be executed by different synchronous microservices and a status indication of each of the jobs;

making a second API call specifying the job that has been added to the job queue, to the at least one synchronous microservice;

updating the job queue upon successful completion of the job by the at least one synchronous microservice; and

notifying the job requestor of the successful completion of the job.

14. The computer system of claim 13 , wherein the first API call includes a callback uniform resource locator (URL), and the job requestor is notified of the successful completion of the job by the API gateway posting a notification of the successful completion of the job to the URL.

15. The computer system of claim 13 , wherein the job requestor is notified of the successful completion of the job in response to a request for a job status received by the API gateway as output from the job requestor.

16. The computer system of claim 13 , wherein the asynchronizer server is in a communication path between the API gateway and the at least one synchronous microservice, and the asynchronizer server sends the second API call directly to the at least one synchronous microservice.

17. The computer system of claim 13 , wherein the asynchronizer server further performs the step of:

determining which of the different synchronous microservices that are available is least loaded, wherein

the second API call is made when the at least one synchronous microservice targeted by the second API call is the least loaded.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2020
From: SEETHARAMAN, SRINI; PATNAIK, SOMDUTT BRAJARAJ
To: VMWARE, INC.
Reel/Frame 053073/0667 →
Continuity (1)
Related Publication 20210406102A1 · Dec 30, 2021