IP Library › Granted Patent US 10,963,324
Granted Patent B2
US 10,963,324 · App. 16/217,176 · Granted Mar 30, 2021

Predictive microservice systems and methods

Inventor: Rodney Gallart Acosta (Plantation, FL)
Assignee: Citrix Systems, Inc.
G06F9/547G06F9/546G06F16/245
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,963,324
App. No.
16/217,176
Granted
Mar 30, 2021
Kind
B2
Abstract

Methods and systems for predictive execution of microservices. Execution of an application program interface request may entail execution of a plurality of microservices in a series. An events message may be transmitted to an events queue corresponding to the API request. The message may be based on an operating status of one or more microservices. Based on the events message, one or more of the microservices in the series may be configured to perform early execution steps before receiving an internal message from a previous microservice in the series. Such early execution steps may comprise authenticating a user and/or a microservice, retrieving and/or caching data, or the like. The one or more of the microservices may perform subsequent execution steps after receiving an internal message from a previous microservice in the series.

Claims (36)

1. A method comprising:

receiving, by a first microservice executable on a computing device, an application program interface (API) request that initiates execution of the first microservice and a second microservice;

transmitting, by the first microservice, before execution of the first microservice is complete, and in response to receipt of the API request, a first message to a database, the first message comprising data associated with the API request, the first message configured to cause the second microservice to initiate, before receipt of a second message, at least one action to process, based on the data, the received API request so as to reduce time to complete processing of the received API request, and the at least one action comprising caching data to enable processing of the API request; and

transmitting, by the first microservice, and after execution of the first microservice, the second message to the second microservice, the second message to initiate further processing, by the second microservice, of the received API request, and the second microservice having already initiated the at least one action before receiving the second message.

2. The method of claim 1 , wherein the first message comprises authentication data, and wherein the at least one action comprises authenticating the second microservice using the authentication data.

3. The method of claim 1 , wherein the first message comprises an indication of an account associated with a service, and wherein the at least one action comprises using the indication of the account to retrieve, from the service, data associated with the account.

4. The method of claim 1 , wherein transmitting the first message is based on an operating status of the second microservice.

5. The method of claim 1 , wherein the first microservice and the second microservice are configured to periodically retrieve messages from the database.

6. The method of claim 1 , further comprising:

transmitting, by the first microservice, an API response based on a third message from the second microservice.

7. The method of claim 1 , further comprising:

determining a processing time associated with the second microservice, wherein transmitting the first message is based on the processing time satisfying a threshold.

8. A computing device comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the computing device to:

receive an application program interface (API) request configured to initiate execution of the computing device and a second computing device;

transmit, in response to receipt of the API request and before the computing device executes one or more steps associated with the API request, a first message to a database, the first message comprising data associated with the API request, the first message configured to cause the second computing device to initiate, before receipt of a second message, at least one action to process, based on the data, the received API request so as to reduce time to complete processing of the received API request, and the at least one action comprising caching data to enable processing of the API request; and

transmit, after the computing device executes the one or more steps associated with the API request, the second message to the second computing device, the second message to initiate further processing, by the second computing device, of the received API request, and the second computing device having already initiated the at least one action before receiving the second message.

9. The computing device of claim 8 , wherein the first message comprises authentication data, and wherein the at least one action comprises authenticating, using the authentication data, the second computing device.

10. The computing device of claim 8 , wherein the data is used by the second computing device after the second computing device receives the second message.

11. The computing device of claim 8 , wherein the first message comprises an indication of an account associated with a service, wherein the at least one action comprises retrieving data associated with the account from the service, and wherein the data is used by the second computing device after the second computing device receives the second message.

12. The computing device of claim 8 , wherein the instructions, when executed by the one or more processors, further cause the computing device to:

receive an operating status of the second computing device, wherein transmitting the first message is based on the operating status.

13. The computing device of claim 8 , wherein the second computing device is configured to determine the first message by periodically querying the database for new messages.

14. The computing device of claim 8 , wherein the instructions, when executed by the one or more processors, further cause the computing device to:

receive, from the second computing device, an internal API response; and

transmit, based on the internal API response, an API response to a third computing device.

15. The computing device of claim 8 , wherein the instructions, when executed by the one or more processors, further cause the computing device to:

determine a processing time associated with the API request, wherein transmitting the first message is based on the processing time exceeding a threshold.

16. A method comprising:

receiving, by a first microservice of a plurality of microservices executable on a computing device, an application program interface (API) request configured to initiate execution of the plurality of microservices;

determining, based on the API request, an estimated processing time associated with execution of the plurality of microservices;

transmitting, by the first microservice, in response to receipt of the API request, and based on the estimated processing time exceeding a threshold, a first message to a database, the first message comprising data associated with the API request, the first message configured to cause a second microservice to initiate, before receipt of a second message, at least one action to process, based on the data, the received API request so as to reduce time to complete processing of the received API request, and the at least one action comprising caching data to enable processing of the API request; and

transmitting, by the first microservice and after execution of the first microservice, the second message to the second microservice, the second message to initiate further processing, by the second microservice, of the received API request, and the second microservice having already initiated the at least one action before receiving the second message.

17. The method of claim 16 , wherein the first message comprises authentication data, and wherein the at least one action comprises authenticating using the authentication data.

18. The method of claim 16 , wherein the first message comprises an indication of an account associated with a service, and wherein the at least one action comprises using the indication of the account to retrieve data associated with the account from the service.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2018
From: ACOSTA, RODNEY GALLART
To: CITRIX SYSTEMS, INC.
Reel/Frame 047755/0360 →
Continuity (1)
Related Publication 20200192732A1 · Jun 18, 2020