IP Library › Granted Patent US 10,437,634
Granted Patent B1
US 10,437,634 · App. 15/953,834 · Granted Oct 8, 2019

Independently threading API calls to service a request

Inventors: Dean Shiyu Chiang (Bellevue, WA); Rong Guo (Kenmore, WA); Deepak Kumar Singh (Redmond, WA)
Assignee: Microsoft Technology Licensing LLC
G06F9/4843G06F9/5027G06F9/54
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 10,437,634
App. No.
15/953,834
Granted
Oct 8, 2019
Kind
B1
Abstract

An asynchronous engine identifies API calls that are to be made in order to fulfill a received service request. The asynchronous engine secures a separate computing thread for making each API call, and generates the API calls on the separate computing threads. Workflows performed in responding to the service call interact with the asynchronous engine to obtain results from the API calls.

Claims (53)

1. A computing system, comprising:

initialization logic that receives a service request and identifies a set of workflows to be executed, and a set of application programming interface (API) calls to be made, in responding to the service request and generates an initialization output signal indicative of the set of workflows and the set of API calls;

an API calling engine that makes the set of API calls, concurrently with one another, based on the initialization output signal, and receives API call results;

request handling workflow logic that executes the set of workflows to obtain workflow results, to respond to the service request, the result handling workflow logic executing the set of workflows concurrently with, and asynchronously with respect to, the API calling engine making the set of API calls, wherein results of a given workflow, in the set of workflows, are dependent on the API call results of one of the set of API calls, wherein the given workflow is configured to access the API call results from the API calling engine; and

response logic that generates a response to the service request based on the workflow results.

2. The computing system of claim 1 wherein each API call is made by performing a set of corresponding processing tasks, and further comprising:

a plurality of central processing unit (CPU) cores, wherein the API calling engine is configured to perform multiprocessing by allocating the sets of processing tasks, corresponding to the different API calls in the set of API calls, among the plurality of different CPU cores.

3. The computing system of claim 2 and further comprising:

thread securing logic configured to secure a separate computing thread, on a separate one of the plurality of CPU cores, corresponding to each API call in the set of API calls, so the set of processing tasks corresponding to each API call are made on separate threads.

4. The computing system of claim 3 wherein the API calling engine comprises:

a separate instance of API calling logic corresponding to each API call, in the set of API calls, wherein the API calling engine is configured to control the separate instances of API calling logic to make the corresponding API calls.

5. The computing system of claim 4 wherein the set of workflows includes:

a first workflow that generates a first workflow result that depends on a result of a first API call, in the set of API calls; and

a second workflow that generates a second workflow result that depends on a result of a second API call, in the set of API calls.

6. The computing system of claim 5 wherein the thread securing logic secures a first thread on which a first instance of API calling logic makes the first API call and a second thread on which a second instance of API calling logic makes the second API call, wherein the first and second instances of the API calling logic are configured to make the first and second API calls concurrently, and asynchronously, with respect to one another.

7. The computing system of claim 6 and further comprising:

result aggregation logic configured to aggregate the first and second workflow results to obtain aggregate results and provide the aggregate results to the response logic for generation of the response.

8. The computing system of claim 4 wherein the API calling engine is configured to access engine configuration criteria and identify which of the set of API calls are to be made based on the engine configuration criteria and to control instances of API calling logic to make only the identified API calls.

9. The computing system of claim 8 wherein the API calling engine is configured to identify the API calls as a subset of the set of API calls.

10. A computer implemented method, comprising:

receiving, at a service computing system, a service request;

identifying a set of workflows to be executed and a set of application programming interface (API) calls to be made in responding to the service request;

generating an initialization output signal indicative of the set of workflows and the set of API calls;

making the set of API calls, based on the initialization output signal, concurrently with one another;

receiving API call results;

executing the set of workflows, asynchronously relative to making the set of API calls, to obtain workflow results, to respond to the service request, wherein results of a given workflow are dependent on an API call result of at least one of the set of API calls; and

generating a response to the service request based on the workflow results.

11. The computer implemented method of claim 10 wherein making the API calls concurrently with one another comprises:

performing a set of processing steps corresponding to each API call, to make each API call in the set of API calls.

12. The computer implemented method of claim 11 wherein making the set of API calls comprises:

allocating each set of processing steps to a different computing system thread.

13. The computer implemented method of claim 11 wherein making the set of API calls is performed by a computing system having a plurality of different central processing unit (CPU) cores and wherein making the set of API calls comprises:

allocating each set of processing steps to a different CPU core of the plurality of different CPU cores.

14. The computer implemented method of claim 10 wherein making the set of API calls is performed concurrently with, and asynchronously with respect to, executing the set of workflows.

15. The computer implemented method of claim 13 wherein making the set of API calls comprises:

controlling a separate instance of API calling logic, corresponding to each of the API calls in the set of API calls, to make the corresponding API call.

16. The computer implemented method of claim 15 wherein identifying a set of API calls to be executed includes:

identifying a first workflow, in the set of workflows, that generates a first workflow result that depends on a result of a first API call, in the set of API calls; and

identifying a second workflow, in the set of workflows, that generates a second workflow result that depends on a result of a second API call, in the set of API calls.

17. The computer implemented method of claim 16 wherein allocating each set of processing steps to a different CPU core comprises:

allocating a first set of processing steps corresponding to the first API call to a first CPU core of the plurality of CPU cores; and

allocating a second set of processing steps corresponding to the second API call to a second CPU core of the plurality of CPU cores, the first and second CPU cores performing the first and second sets of processing steps, respectively, asynchronously with respect to one another.

18. The computer implemented method of claim 11 wherein making the set of API calls comprises:

accessing engine configuration criteria; and

identifying which of the set of API calls are to be made based on the engine configuration criteria; and

making only the identified API calls.

19. A computing system, comprising:

a plurality of central processing unit cores;

initialization logic that receives a service request and identifies a set of workflows to be executed and a set of application programming interface (API) calls to be made in responding to the service request and that generates an initialization output signal indicative of the set of workflows and the set of API calls;

an API calling engine that makes each of the API calls, in the set of API calls, using a separate CPU core, of the plurality of different CPU cores, and concurrently with one another, based on the initialization output signal, the API calling engine receiving API call results;

request handling workflow logic that executes the set of workflows to obtain workflow results, to respond to the service request, the result handling workflow logic executing the set of workflows concurrently with, and asynchronously with respect to, the API calling engine making the set of API calls, wherein results of a given workflow, in the set of workflows, are dependent on the API call results of one of the set of API calls, wherein the given workflow is configured to access the API call results from the API calling engine; and

response logic that generates a response to the service request based on the workflow results.

20. The computing system of claim 19 wherein the API calling engine is configured to access engine configuration criteria and identify, based on the engine configuration criteria, which API calls in the set of API calls are to be made and to make only the identified API calls.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2018
From: CHIANG, DEAN SHIYU; GUO, RONG; SINGH, DEEPAK KUMAR
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 045859/0315 →
Cited By (1)
US 12,619,478