IP Library › Granted Patent US 12,452,190
Granted Patent B2
US 12,452,190 · App. 18/538,657 · Granted Oct 21, 2025

Algorithm and differentiated weights for resource constrained processes

Inventors: Adam Thomas Bishop (Morrisville, NC); Vlade Lekic (Belgrade, RS); Yogesh Kumar (Sammamish, WA); Muthukumaran Arumugam (Kent, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L47/808H04L47/745H04L47/83
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 12,452,190
App. No.
18/538,657
Granted
Oct 21, 2025
Kind
B2
Abstract

The techniques disclosed herein enhance the functionality of network computing infrastructure in resource constrained processes. This is accomplished by assigning differentiated weights to instances of a software service based on the role of the instance. In the context of the present disclosure, a role is a defined set of functionalities within a software service. An individual weight quantitatively represents the computing resource demand imposed by the functionalities of the role. A software orchestration system subsequently places the instances of the software service within a computing environment (e.g., a node, a cluster) for execution. As such, the computing environment can include a resource constraint that represents the capacity of the constituent computing resources to execute the instances of the software service. Accordingly, the instances are placed such that the sum of the weights of the instances is less than or equal to the resource constraint.

Claims (73)

1. A method comprising:

receiving, by a software orchestration system, a primary instance of a software service and a secondary instance of the software service to be assigned to a computing environment to prepare the software service for use;

detecting a first role defining a functionality of the primary instance of the software service and a second role defining a functionality of the secondary instance of the software service;

receiving, by the software orchestration system from the software service, a first weight and a second weight respectively representing a computing resource demand of the first role and the second role, wherein the first weight and the second weight are defined by the software service;

detecting, by the software orchestration system, a resource constraint for the computing environment, the resource constraint representing a capacity of the computing environment to execute instances of the software service; and

assigning, by the software orchestration system, the primary instance of the software service and the secondary instance of the software service to the computing environment, wherein a sum of the first weight and the second weight is less than or equal to the resource constraint.

2. The method of claim 1 , further comprising:

receiving an auxiliary instance of the software service;

detecting a third role defining a functionality of the auxiliary role;

receiving, by the software orchestration system from the software service, a third weight representing a computing resource demand of the third role; and

assigning, by the software orchestration system, the auxiliary instance to the computing environment, wherein a sum of the first weight, the second weight, and the third weight is less than or equal to the resource constraint.

3. The method of claim 1 , wherein the first weight and the second weight are calculated based on a first stress test of the first role and a second stress test of the second role respectively.

4. The method of claim 1 , wherein the first weight and the second weight are calculated based on a theoretical resource demand of the first role and second role respectively.

5. The method of claim 1 , wherein the software service is a first software service, the method further comprising:

receiving, by the software orchestration system, a primary instance of a second software service and a secondary instance of the second software service;

detecting a third role defining a functionality of the primary instance of the second software service and a fourth role defining a functionality of the secondary instance of the second software service;

receiving, by the software orchestration system from the second software service, a third weight and a fourth weight respectively representing a computing resource demand of the third role and the fourth role, wherein the third weight and the fourth weight are defined by the second software service; and

assigning the primary instance of the second software service and the secondary instance of the second software service to the computing environment, wherein a sum of the first weight, the second weight, the third weight, and the fourth weight is less than or equal to the resource constraint.

6. The method of claim 1 , wherein:

the computing environment comprises a plurality of individual computers; and

each of the individual computers includes an individual resource constraint.

7. The method of claim 6 , wherein:

the primary instance of the software service is assigned to a first individual computer of the plurality of individual computers; and

the secondary instance of the software service is assigned to a second individual computer of the plurality of individual computers.

8. The method of claim 1 , further comprising:

detecting a decreased computing resource availability at the computing environment;

in response to detecting the decreased computing resource availability at the computing environment, increasing at least one of the first weight or the second weight defined by the software service to reduce a resource consumption of the software service.

9. A system comprising:

a processing system; and

a computer-readable medium having encoded thereon instructions that when executed by the processing system, cause the system to perform operations comprising:

receiving, by a software orchestration system, a primary instance of a software service and a secondary instance of the software service to be assigned to a computing environment to prepare the software service for use;

detecting a first role defining a functionality of the primary instance of the software service and a second role defining a functionality of the secondary instance of the software service;

receiving, by the software orchestration system from the software service, a first weight and a second weight respectively representing a computing resource demand of the first role and the second role, wherein the first weight and the second weight are defined by the software service;

detecting, by the software orchestration system, a resource constraint for the computing environment, the resource constraint representing a capacity of the computing environment to execute instances of the software service; and

assigning, by the software orchestration system, the primary instance of the software service and the secondary instance of the software service to the computing environment, wherein a sum of the first weight and the second weight is less than or equal to the resource constraint.

10. The system of claim 9 , wherein the first weight and the second weight are calculated based on a first stress test of the first role and a second stress test of the second role respectively.

11. The system of claim 9 , wherein the first weight and the second weight are calculated based on a theoretical resource demand of the first role and second role respectively.

12. The system of claim 9 , wherein:

the software service is a first software service; and

the operations further comprise:

receiving, by the software orchestration system, a primary instance of a second software service and a secondary instance of the second software service;

detecting a third role defining a functionality of the primary instance of the second software service and a fourth role defining a functionality of the secondary instance of the second software service;

receiving, by the software orchestration system from the second software service, a third weight and a fourth weight respectively representing a computing resource demand of the third role and the fourth role, wherein the third weight and the fourth weight are defined by the second software service; and

assigning the primary instance of the second software service and the secondary instance of the second software service to the computing environment wherein, a sum of the first weight, the second weight, the third weight, and the fourth weight is less than or equal to the resource constraint.

13. The system of claim 9 , wherein:

the computing environment comprises a plurality of individual computers; and

each of the individual computers includes an individual resource constraint.

14. The system of claim 13 , wherein:

the primary instance of the software service is assigned to a first individual computer of the plurality of individual computers; and

the secondary instance of the software service is assigned to a second individual computer of the plurality of individual computers.

15. The system of claim 9 , wherein the operations further comprise:

detecting a decreased computing resource availability at the computing environment;

in response to detecting the decreased computing resource availability at the computing environment, increasing at least one of the first weight or the second weight defined by the software service to reduce a resource consumption of the software service.

16. A computer-readable storage medium having encoded thereon computer-readable instructions that, when executed by a system, cause the system to perform operations comprising:

receiving, by a software orchestration system, a primary instance of a software service and a secondary instance of the software service to be assigned to a computing environment to prepare the software service for use;

detecting a first role defining a functionality of the primary instance of the software service and a second role defining a functionality of the secondary instance of the software service;

receiving, by the software orchestration system from the software service, a first weight and a second weight respectively representing a computing resource demand of the first role and the second role, wherein the first weight and the second weight are defined by the software service;

detecting, by the software orchestration system, a resource constraint for the computing environment, the resource constraint representing a capacity of the computing environment to execute instances of the software service; and

assigning, by the software orchestration system, the primary instance of the software service and the secondary instance of the software service to the computing environment, wherein a sum of the first weight and the second weight is less than or equal to the resource constraint.

17. The computer-readable storage medium of claim 16 , wherein the first weight and the second weight are calculated based on a theoretical resource demand of the first role and second role respectively.

18. The computer-readable storage medium of claim 16 , wherein:

the software service is a first software service; and

the operations further comprise:

receiving, by the software orchestration system, a primary instance of a second software service and a secondary instance of the second software service;

detecting a third role defining a functionality of the primary instance of the second software service and a fourth role defining a functionality of the secondary instance of the second software service;

receiving, by the software orchestration system from the second software service, a third weight and a fourth weight respectively representing a computing resource demand of the third role and the fourth role, wherein the third weight and the fourth weight are defined by the second software service; and

assigning the primary instance of the second software service and the secondary instance of the second software service to the computing environment, wherein a sum of the first weight, the second weight, the third weight, and the fourth weight is less than or equal to the resource constraint.

19. The computer-readable storage medium of claim 16 , wherein:

the computing environment comprises a plurality of individual computers; and

each of the individual computers includes an individual resource constraint.

20. The computer-readable storage medium of claim 19 , wherein:

the primary instance of the software service is assigned to a first individual computer of the plurality of individual computers; and

the secondary instance of the software service is assigned to a second individual computer of the plurality of individual computers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: BISHOP, ADAM THOMAS; LEKIC, VLADE; KUMAR, YOGESH; ARUMUGAM, MUTHUKUMARAN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 066546/0511 →
Continuity (1)
Related Publication 20250202836A1 · Jun 19, 2025
References Cited (13)
US 11044162B2 · Byers · 2021 [cited by examiner]
US 12056255B1 · Mystetskyi · 2024 [cited by examiner]
US 20090178142A1 · Lieblich · 2009 [cited by examiner]
US 20130275581A1 · Yu · 2013 [cited by examiner]
US 20140278738A1 · Feit · 2014 [cited by examiner]
US 20150188782A1 · Carlin · 2015 [cited by examiner]
US 20180191581A1 · Yu · 2018 [cited by examiner]
US 20200409691A1 · Mukhopadhyay · 2020 [cited by examiner]
US 20210075853A1 · Banerjee · 2021 [cited by examiner]
US 20210390029A1 · Zhao · 2021 [cited by examiner]
US 20240281280A1 · Bainbridge · 2024 [cited by examiner]
US 20240370310A1 · Knierim · 2024 [cited by examiner]
US 20240394379A1 · Gorelik · 2024 [cited by examiner]