US-12619484-B2 - System and method of application programming interface scheduling
Abstract
The present invention provides a robust and effective solution to an entity or an organization by enabling maximization of the utilization of machine resources by optimally allocating the tasks such as application programming interfaces (APIS) in the queue using a set of predetermined instructions. The method further enables finding the number of machines in order to fulfil a cumulative service-level agreement (SLA) of the APIs in the queue using heuristics and the set of predetermined instructions.
Inventors
- Ameya MUNAGEKAR
- Akansha Kumar
- Kamlesh DHONDGE
- Akhil Patel PATLOLLA
- Rajeev Gupta
Assignees
- Jio Platforms Limited
Dates
- Publication Date
- 20260505
- Application Date
- 20221029
- Priority Date
- 20211030
Claims (13)
- 1 . A system for facilitating scheduling of a plurality of application programming interfaces (APIs), the system comprising: a processor coupled to one or more computing devices in a network, and a memory, wherein the processor is further coupled with the memory, and wherein said memory stores instructions which when executed by the processor causes the system to: receive a set of parameters from the one or more computing devices, the set of parameters pertaining to a predefined set of instructions associated with the plurality of APIs; based on the received set of parameters, determine a cumulative service-level agreement (SLA) of each API applicable for each computing device; rank, the plurality of APIs in an ascending order based on the cumulative SLA determined for each API; queue, the plurality of APIs based on a combination of a set of instructions on a number of computing devices required to meet the cumulative SLA of each API and the rank of each said API; find a minimum number of computing devices required to schedule the plurality of APIs to adhere to the cumulative SLA, wherein finding the minimum number of computing devices comprises: using a mixed integer programming (MIP) model for allocating the plurality of APIs in the queue; providing an iterative increment to check whether a current set of computing devices manages to meet the cumulative SLA; assign the plurality of APIs to the minimum number of computing devices based on an allocation determined by the MIP model, the assigning being by creating bins of the plurality of APIs on the minimum number of computing devices; and execute the plurality of APIs on the minimum number of computing devices according to the allocation.
- 2 . The system as claimed in claim 1 , wherein the memory stores further instructions which, when executed by the processor, cause the system to assign one or more APIs to be executed on the one or more computing devices from available set of computing devices based on the queued plurality of APIs.
- 3 . The system as claimed in claim 1 , wherein the set of parameters includes any or a combination of processing engines, memory and graphical processing units (GPU) utilization of the plurality of APIs in the queue, available set of computing devices in the queue and constraint parameters comprising the cumulative SLA of each said API in the queue.
- 4 . The system as claimed in claim 1 , wherein the set of instructions provides optimization of scheduling of the plurality of APIs.
- 5 . The system as claimed in claim 4 , wherein the set of instructions further provides at least two simultaneous outputs comprising the number of computing devices required for running the plurality of APIs and allocation of the APIs to the computing devices.
- 6 . The system as claimed in claim 1 , wherein the memory stores further instructions which, when executed by the processor, cause the system to club the plurality of APIs in a bin and the one or more computing devices to which the bin should be assigned.
- 7 . A user equipment (UE) for facilitating scheduling of a plurality of application programming interfaces (APIs), the UE comprising: an edge processor, a receiver coupled to one or more computing devices in a network, and a memory, wherein the edge processor is further coupled with the memory, and wherein said memory stores instructions which when executed by the edge processor causes the UE to: receive a set of parameters from the one or more computing devices, the set of parameters pertaining to a predefined set of instructions associated with the plurality of APIs; based on the received set of parameters, determine a cumulative service-level agreement (SLA) of each API applicable for each computing device; rank, the plurality of APIs in an ascending order based on the cumulative SLA determined for each API; queue, the plurality of APIs based on a combination of a set of instructions on a number of computing devices required to meet the cumulative SLA of each API and the rank of each said API; find a minimum number of computing devices required to schedule the plurality of APIs to adhere to the cumulative SLA, wherein finding the minimum number of computing devices comprises: using a mixed integer programming (MIP) model for allocating the plurality of APIs in the queue; providing an iterative increment to check whether a current set of computing devices manages to meet the cumulative SLA; assign the plurality of APIs to the minimum number of computing devices based on an allocation determined by the MIP model, the assigning being by creating bins of the plurality of APIs on the minimum number of computing devices; and execute the plurality of APIs on the minimum number of computing devices according to the allocation.
- 8 . A method for facilitating scheduling of a plurality of application programming interfaces (APIs), the method comprising: receiving, by a processor, a set of parameters from one or more computing devices, the set of parameters pertaining to a predefined set of instructions associated with the plurality of APIs, wherein the processor is coupled to the one or more computing devices in a network, wherein the processor is further coupled with a memory that stores instructions that are executed by the processor; based on the received set of parameters, determining, by the processor, a cumulative service-level agreement (SLA) of each API applicable for each computing device; ranking, by the processor, the plurality of APIs in an ascending order based on the cumulative SLA determined for each API; queueing, by the processor, the plurality of APIs based on a combination of a set of instructions on a number of computing devices required to meet the cumulative SLA of each API and the rank of each said API; finding, by the processor, a minimum number of computing devices required to schedule the plurality of APIs to adhere to the cumulative SLA, wherein finding the minimum number of computing devices comprises: using a mixed integer programming (MIP) model for allocating the plurality of APIs in the queue; providing an iterative increment to check whether a current set of computing devices manages to meet the cumulative SLA; assigning the plurality of APIs to the minimum number of computing devices based on an allocation determined by the MIP model, the assigning being by creating bins of the plurality of APIs on the minimum number of computing devices; and executing the plurality of APIs on the minimum number of computing devices according to the allocation.
- 9 . The method as claimed in claim 8 , wherein the method further comprises assigning, by the processor, one or more APIs to be executed on the one or more computing devices from available set of computing devices based on the queued plurality of APIs.
- 10 . The method as claimed in claim 9 , wherein the set of parameters includes any or a combination of processing engines, memory and graphical processing units (GPU) utilization of the plurality of APIs in the queue, the available set of computing devices in the queue and constraint parameters comprising the cumulative SLA of each said API in the queue.
- 11 . The method as claimed in claim 9 , wherein the set of instructions provides optimization of scheduling of the plurality of APIs.
- 12 . The method as claimed in claim 11 , wherein the set of instructions further provides at least two simultaneous outputs comprising the number of computing devices required for running the plurality of APIs and allocation of the APIs to the computing devices.
- 13 . The method as claimed in claim 8 , wherein the method further comprises clubbing the plurality of APIs in a bin and the one or more computing devices to which the bin should be assigned.
Description
FIELD OF INVENTION The embodiments of the present disclosure herein relate to scheduling assignment problem of one or more Application Programming Interface (API) on one or more available machines in an API management system. BACKGROUND OF THE INVENTION The following description of related art is intended to provide background information pertaining to the field of the disclosure. This section may include certain aspects of the art that may be related to various features of the present disclosure. However, it should be appreciated that this section be used only to enhance the understanding of the reader with respect to the present disclosure, and not as admissions of prior art. Application Programming Interfaces (APIs) are communication mechanism between different services. An API lifecycle is usually driven by an API provider (who may be responding to consumer requests). APIs may exist in various versions and software lifecycle states within a system landscape and are frequently developed like any software by API developers (including those of API consumers) using an integrated development environment (IDE). After a successful test within an IDE, a particular API is usually deployed in a test/quality landscape for further tests (e.g., integration tests). After further successful tests, the API is deployed in a productive landscape. These states (e.g., development version, test/quality version, and productive version) are typically managed by the API provider. Services hold the business logic for a task. These APIs are exposed for a consumer for usage over a network with many different interfaces or custom home-made interfaces. As the services grow, the number of APIs increase in size and it becomes difficult to manage all remote APIs at a single place for an organization. Problems occur when APIs grow within an enterprise and there is a huge number of inconsistent APIs when there is a need of reinventing common modules, locating and consuming multiple API from different teams, onboarding new APIs as per end user's requirements, using a chain of APIs for a particular task and the like. Contemporary optimization methods cannot maximize the machine utilization for a service-level agreement (SLA) in perspective. Additionally, minimum number of machines required to schedule the set of APIs to adhere to the cumulative SLA is difficult to determine. There is therefore a need in the art to provide a method and a system that can overcome the shortcomings of the existing prior art. OBJECTS OF THE PRESENT DISCLOSURE Some of the objects of the present disclosure, which at least one embodiment herein satisfies are as listed herein below. An object of the present disclosure is to provide for a method and system to maximize the utilization of the available machine resources. An object of the present disclosure is to provide for a method and system for finding the number of machines in order to fulfil the cumulative SLA of the APIs in the queue. An object of the present disclosure is to provide for a method and system for minimizing the resources used i.e., machines in order to meet the cumulative SLA of the APIs to be scheduled. SUMMARY This section is provided to introduce certain objects and aspects of the present invention in a simplified form that are further described below in the detailed description. This summary is not intended to identify the key features or the scope of the claimed subject matter. In an aspect, the present disclosure provides a system for facilitating scheduling of a plurality of application programming interfaces (API), the system may include a processor coupled to one or more computing devices in a network. The processor may be further coupled with a memory that stores instructions which when executed by the processor may cause the system to: receive a set of parameters from the one or more computing devices, the set of parameters pertaining to a predefined set of instructions associated with the plurality of APIs. Based on the received set of parameters, determine a cumulative service-level agreement (SLA) of each API applicable for each computing device. The system may then be configured to rank, the plurality of APIs in an ascending order based on the cumulative SLA determined for each API and then queue, the plurality of APIs based on a combination of a set of instructions on the number of computing devices required to meet the cumulative SLA of each APIs and the rank of each API. In an embodiment, the system may be further configured to assign one or more APIs to be executed on the computing device from the available set of computing devices based on the queued plurality of APIs. In an embodiment, the set of parameters may include any or a combination of processing engines, memory and graphical processing units (GPU) utilization of the plurality of APIs in the queue, the available set of computing devices in the queue and the constraint parameters such as the cumulative SLA of each said