IP Library › Granted Patent US 11,360,825
Granted Patent B2
US 11,360,825 · App. 16/773,019 · Granted Jun 14, 2022

Systems and methods for service resource allocation and deployment

Inventors: Yongyu Chen (Nanjing, CN); Liang Bao (Nanjing, CN); Ruiqi Liang (Nanjing, CN); Lei Xu (Nanjing, CN)
Assignee: CITRIX SYSTEMS, INC.
G06F9/5077G06F9/45533G06F9/45558G06F9/505G06F9/5072G06F11/3409G06F11/3442H04L45/46H04L47/786G06F2009/4557
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 11,360,825
App. No.
16/773,019
Granted
Jun 14, 2022
Kind
B2
Abstract

A method, computer program product, and computer system for determining, by a computing device, a service instance count for each of a plurality of services to be executed on a plurality of host devices. A similarity between the plurality of services may be determined. A host instance count for the plurality of host devices may be determined based upon, at least in part, the similarity between the plurality of services. Each service instance may be allocated to a respective host device for execution based upon, at least in part, the similarity between the plurality of services, the service instance count, and the host service count.

Claims (34)

1. A method comprising:

determining, by a computing device, a service instance count for each of a plurality of services to be executed on a plurality of host devices, wherein the service instance count defines a number of copies of code of a service for each respective service of the plurality of services to be executed on the plurality of host devices;

determining a similarity between the plurality of services;

determining a host instance count for the plurality of host devices based upon, at least in part, the similarity between the plurality of services; and

allocating each service instance to a respective host device for execution based upon, at least in part, the similarity between the plurality of services, the service instance count, and the host instance count, wherein service instances of the plurality of services that have less of a similarity to other service instances of the plurality of services are allocated to the respective host device for execution.

2. The method of claim 1 wherein the service instance count is determined based upon, at least in part, a resource capacity model and usage data.

3. The method of claim 1 wherein the similarity between the plurality of services is based upon, at least in part, a correlation of resource consumption for the plurality of services.

4. The method of claim 3 wherein allocating each service instance includes grouping services of the plurality of services on at least one host device of the plurality of host devices based upon, at least in part, the correlation of resource consumption for the grouped services.

5. The method of claim 4 wherein the correlation of resource consumption for the plurality of services is based upon, at least in part, historical resource consumption data for the plurality of services.

6. The method of claim 1 wherein the host instance count is determined based upon, at least in part, a usage threshold of at least one host device of the plurality of host devices.

7. The method of claim 1 further comprising migrating at least one service of the plurality of services from a first host device of the plurality of host devices to a second host device of the plurality of host devices.

8. A computer program product residing on a non-transitory computer readable storage medium having a plurality of instructions stored thereon which, when executed by one or more processors, causes the one or more processors to perform operations comprising:

determining a service instance count for each of a plurality of services to be executed on a plurality of host devices, wherein the service instance count defines a number of copies of code of a service for each respective service of the plurality of services to be executed on the plurality of host devices;

determining a similarity between the plurality of services;

determining a host instance count for the plurality of host devices based upon, at least in part, the similarity between the plurality of services; and

allocating each service instance to a respective host device for execution based upon, at least in part, the similarity between the plurality of services, the service instance count, and the host instance count, wherein service instances of the plurality of services that have less of a similarity to other service instances of the plurality of services are allocated to the respective host device for execution.

9. The computer program product of claim 8 wherein the service instance count is determined based upon, at least in part, a resource capacity model and usage data.

10. The computer program product of claim 8 wherein the similarity between the plurality of services is based upon, at least in part, a correlation of resource consumption for the plurality of services.

11. The computer program product of claim 10 wherein allocating each service instance includes grouping services of the plurality of services on at least one host device of the plurality of host devices based upon, at least in part, the correlation of resource consumption for the grouped services.

12. The computer program product of claim 11 wherein the correlation of resource consumption for the plurality of services is based upon, at least in part, historical resource consumption data for the plurality of services.

13. The computer program product of claim 8 wherein the host instance count is determined based upon, at least in part, a usage threshold of at least one host device of the plurality of host devices.

14. The computer program product of claim 8 wherein the operations further comprise migrating at least one service of the plurality of services from a first host device of the plurality of host devices to a second host device of the plurality of host devices.

15. A computing system comprising:

a memory; and

at least one processor in communication with the memory, the at least one processor configured to:

determine, by a computing device, a service instance count for each of a plurality of services to be executed on a plurality of host devices, wherein the service instance count defines a number of copies of code of a service for each respective service of the plurality of services to be executed on the plurality of host devices;

determine a similarity between the plurality of services;

determine a host instance count for the plurality of host devices based upon, at least in part, the similarity between the plurality of services; and

allocate each service instance to a respective host device for execution based upon, at least in part, the similarity between the plurality of services, the service instance count, and the host instance count, wherein service instances of the plurality of services that have less of a similarity to other service instances of the plurality of services are allocated to the respective host device for execution.

16. The computing system of claim 15 wherein the service instance count is determined based upon, at least in part, a resource capacity model and usage data.

17. The computing system of claim 15 wherein the similarity between the plurality of services is based upon, at least in part, a correlation of resource consumption for the plurality of services.

18. The computing system of claim 17 wherein allocating each service instance includes grouping services of the plurality of services on at least one host device of the plurality of host devices based upon, at least in part, the correlation of resource consumption for the grouped services, and wherein the correlation of resource consumption for the plurality of services is based upon, at least in part, historical resource consumption data for the plurality of services.

19. The computing system of claim 15 wherein the host instance count is determined based upon, at least in part, a usage threshold of at least one host device of the plurality of host devices.

20. The computing system of claim 15 wherein the processor is further configured to migrate at least one service of the plurality of services from a first host device of the plurality of host devices to a second host device of the plurality of host devices.

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 Jan 27, 2020
From: CHEN, YONGYU; LIANG, RUIQI; BAO, LIANG; XU, LEI
To: CITRIX SYSTEMS, INC.
Reel/Frame 051629/0892 →
Continuity (2)
Continuation PCTCN2019125818 · Dec 17, 2019
Related Publication 20210182117A1 · Jun 17, 2021
Cited By (1)
US 12,705,158