Outer Rim Archives
Archives · 2020 · 20200034215

Application (pre-grant publication)

TECHNIQUES FOR AUTOMATICALLY ALLOCATING TASKS TO APPLICATION PROGRAMMING INTERFACES

Number
20200034215
Published
2020-01-30
Filed
2018-07-27
Assignee
DISNEY ENTERPRISES, INC.
Inventors
PETRILLO; Matthew Charles, ALFARO VENDRELL; Monica, JUNYENT MARTIN; Marc, ACCARDO; Anthony M., FARRE GUIU; Miquel Angel, ETTINGER; Katharine S., SWERDLOW; Avner
CPC
G06N3/096; G06N3/09; G06N3/0442; G06N3/08; G06F9/542; G06N3/0464; G06F9/4881; G06N20/20
Verdict
Set aside software task allocation, engineering/business
Source
Google Patents · FreePatentsOnline

Abstract

In various embodiments, a broker application automatically allocates tasks to application programming interfaces (APIs) in microservice architectures. After receiving a task from a client application, the broker application performs operation(s) on content associated with the task to compute predicted performance data for multiple APIs. The broker application then determines that a first API included in the APIs should process the first task based on the predicted performance data. The broker application transmits an API request associated with the first task to the first API for processing. After receiving a result associated with the first task from the first API, the client application performs operation(s) based on the result.. Advantageously, because the broker application automatically allocates the first task to the first API based on the content, time and resource inefficiencies are reduced compared to prior art approaches that indiscriminately allocate tasks to APIs.

Background

BACKGROUNDField of the Various Embodiments

Embodiments of the present invention relate generally to monitoring and controlling the use of microservices, and more specifically to techniques for automatically allocating tasks to application programming interfaces.Description of the Related Art

Many applications are developed based on a microservice architecture that facilitates integration with any number of different microservices. A typical microservice is an independently deployed application that implements a fine-grained service and interacts with other applications, including other microservices, via one or more well-defined interfaces. In general, a client application sends a request to a microservice via an application programming interface (API) associated with the microservice, the microservice processes the request, and the API provides a result back to the client application. A request to a microservice typically describes a task that can involve any amount and any type of content. An example of a well-known microservice request is a request to translate audio to text.

One drawback of using APIs to perform tasks in microservice architectures is that tasks oftentimes are assigned to APIs that are unable to properly perform those tasks and, consequently, time and resources are needlessly wasted. For example, to reliably identify the maker of a car, a car maker identification API may require an image of the outside of the car that is taken at a certai

Claims

1. A computer-implemented method, comprising: receiving a first task from a first client application, wherein the first task is associated with first content; performing one or more operations on the first content to generate first predicted performance data associated with a plurality of application programming interfaces (APIs); determining that a first API included in the plurality of APIs should process the first task based on the first predicted performance data; transmitting a first API request associated with the first task to the first API for processing; and receiving a first result associated with the first task from the first API, wherein the first client application performs at least one operation based on the first result. 11. A computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: receiving a first task from a first client application, wherein the first task is associated with first content; performing one or more operations on the first content to generate first predicted performance data associated with a plurality of application programming interfaces (APIs); determining that a first API included in the plurality of APIs should process the first task based on the first predicted performance data; transmitting a first API request associated with the first task to the first API for processing; and receiving a first result associated with the first task from the first API, wherein the first client application performs at least one operation based on the first result. 20. A system, comprising: a memory storing instructions; and a processor that is coupled to the memory and, when executing the instructions, is configured to: receive a task from a client application, wherein the task is associated with first content; perform one or more operations on the first content to generate predicted performance data associated with a plurality of application programming interfaces (APIs); determine that a first API included in the plurality of APIs should process the task based on the predicted performance data; transmit an API request associated with the task to the first API for processing; and receive a result associated with the task from the first API, wherein the client application performs at least one operation based on the result.