IP Library Granted Patent US 10,824,483
Granted Patent B2
US 10,824,483 · App. 16/432,957 · Granted Nov 3, 2020

Application programming interface scoring, ranking and selection

Inventors: Iddo Gino (San Francisco, CA); Andrey Bukati (Ashqelon, IL); Srivatsan Srinivasan (San Francisco, CA)
Assignee: R SOFTWARE INC.
G06F9/541G06F9/547G06F16/2471G06F16/24539
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,824,483
App. No.
16/432,957
Granted
Nov 3, 2020
Kind
B2
Abstract

A method for ranking a set of APIs for multiple software applications executing on respective servers, including initializing, by a first computer, respective ranking scores for the APIs, and receiving, from a plurality of second computers, multiple API calls to the APIs in the set. For each given API call to a given API in the set received from a given second computer, a given server executing a given software application including the given API is identified, the given API call is forwarded to the identified server, a response to the given API call is received from the identified server, performance metrics with respect to the given API call and response are computed, and the ranking score for the given API are updated based on the computed performance metrics. The APIs can be provided to the second computers responsively to the ranking scores, as updated in response to the requests.

Claims (37)

1. A method, comprising:

defining, by a computer, a set of software applications that execute a specific operation on different, respective servers, the software applications having respective application programming interfaces (APIs);

during a first time period:

performing the specific operation multiple times by conveying, from the computer to different ones of the servers, API calls to the APIs, and receiving respective responses to the first API calls;

computing, based at least on the responses, respective performance metrics for the APIs; and

ranking the APIs based on the computed performance metrics; and

at a second time subsequent to the first time period:

receiving, in the computer, a request to execute the specific operation; and

executing the specific operation by automatically selecting, based on the rankings, a given API, and conveying an API call to the selected API.

2. The method according to claim 1 , wherein computing respective performance metrics for the APIs comprises computing respective performance metrics for the API calls, and wherein ranking the APIs in the set comprises ranking the API calls based on the computed performance metrics.

3. The method according to claim 1 , and comprising receiving, from the selected one or the servers, a response to the conveyed API call to the selected API.

4. The method according to claim 3 , wherein the computer comprises a first computer and wherein the instruction to execute the specific operation is received from a second computer, and comprising forwarding, by the first computer to the second computer, the received response to the API call to the selected API.

5. The method according to claim 3 , and comprising computing, based at least on the response to the API call to the selected API, updated respective performance metrics for the selected API, and re-ranking the APIs in the set based on the updated computed performance metrics.

6. An apparatus, comprising:

a memory; and

a processor configured:

to define, in the memory, a set of software applications that execute a specific operation on different, respective servers, the software applications having respective application programming interfaces (APIs),

during a first time period:

to perform the specific operation multiple times by conveying, from the computer to different ones of the servers, API calls to the APIs, and receiving respective first responses to the first API calls,

to compute, based at least on the responses, respective performance metrics for the APIs, and

to rank, in the memory, the APIs based on the computed performance metrics; and

at a second time subsequent to the first time period:

to receive a request to execute the specific operation, and

to execute the specific operation by automatically selecting, based on the rankings, a given API, and conveying an API call to the selected API.

7. The apparatus according to claim 6 , wherein the processor is configured to compute respective performance metrics for the APIs by computing respective performance metrics for the API calls, and wherein the processor is configured to rank the APIs in the set by ranking the API calls based on the computed performance metrics.

8. The apparatus according to claim 6 , wherein the processor is configured to receive, from the selected one or the servers, a response to the conveyed API call to the selected API.

9. The apparatus according to claim 8 , wherein the instruction to execute the specific operation is received from a computing device, and wherein the processor is further configured to forward, to the computing device, the received response to the API call to the selected API.

10. The apparatus according to claim 8 , wherein the processor is further configured to compute, based at least on the response to the API call to the selected API, updated respective performance metrics for the selected API, and to re-rank the APIs in the set based on the updated computed performance metrics.

11. A computer software product, the product comprising a non-transitory computer-readable medium, in which program instructions are stored, which instructions, when read by a computer, cause the computer:

to define a set of software applications that execute a specific operation on different, respective servers, the software applications having respective application programming interfaces (APIs);

during a first time period:

to perform the specific operation multiple times by conveying, from the computer to different ones of the servers, API calls to the APIs, and receiving respective responses to the first API calls;

to compute, based at least on the responses, respective performance metrics for the APIs; and

to rank the APIs based on the computed performance metrics; and

at a second time subsequent to the first time period:

to receive, in the computer, a request to execute the specific operation; and

to execute the specific operation by automatically selecting, based on the rankings, a given API, and conveying an API call to the selected API.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2024
From: R SOFTWARE INC.
To: NOKIA SOLUTIONS AND NETWORKS OY
Reel/Frame 069639/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2019
From: GINO, IDDO; BUKATI, ANDREY; SRINIVASAN, SRIVATSAN
To: R SOFTWARE INC
Reel/Frame 049387/0989 →
Continuity (2)
Provisional Application 62769578 · Nov 20, 2018
Related Publication 20200159597A1 · May 21, 2020
Cited By (4)
US 12,244,466 US 12,413,468 US 12,438,769 US 12,581,392