IP Library › Granted Patent US 12,254,315
Granted Patent B2
US 12,254,315 · App. 18/204,248 · Granted Mar 18, 2025

Machine capability model for self-configurable applications

Inventors: Ramiro Gonzalez Monroy (Guadalajara, MX); Jose Mario Carranza Rojas (Santa Barbara, CR); Martin Ellis (Pittsburgh, PA); Jizhe Jin (Kirkland, WA); Satya Sasikanth Bendapudi (Kirkland, WA); Harpreet Kaur (Surrey, CA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/71G06F11/3414
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,254,315
App. No.
18/204,248
Granted
Mar 18, 2025
Kind
B2
Abstract

Disclosed in some examples are methods, systems, and machine-readable mediums which customizes application feature settings using ranked clusters from an unsupervised modelling algorithm that clusters similar computing platforms and feature settings templates that map these ranks to feature settings. In some examples, a model may is periodically built using a first set of computing platform properties observed from computing platforms that the application is executing on. These clusters are then ranked using a second set of computing platform properties observed from other computing platforms that the application is executing on and performance data that describes performance of the application on those platforms.

Claims (60)

1. A method for modifying features of an application instance based upon an computing platform of a computing device executing the application instance, the method comprising:

for a first application instance on a first computing device having a first computing platform:

identifying one or more properties of the first computing platform of the first computing device, the first computing platform including a plurality of hardware devices of the first computing device, the one or more properties not including performance metrics of the first application instance executing on the first computing device;

mapping the first computing device into a first class of a plurality of computing platform classes based upon the one or more properties of the first computing platform and a predefined clustering model;

identifying a first feature settings template corresponding to the first class based upon a mapping between the first class and the first feature settings template; and

modifying a feature of the first application instance based upon the first feature settings template, wherein modifying the feature of the first application instance comprises applying a first change to the feature;

for a second application instance on a second computing device having a second computing platform:

identifying second one or more properties of the second computing platform of the second computing device, the second computing platform including a plurality of hardware devices of the second computing device, the one or more properties not including performance metrics of the second application instance executing on the second computing device;

mapping the second computing device into a second class of the plurality of computing platform classes based upon the second one or more properties and the predefined clustering model, the second class comprising computing platforms that are judged less capable than computing platforms of the first class;

identifying a second feature settings template corresponding to the second class based upon a mapping between the second class and the second feature settings template; and

modifying the feature of the second application instance based upon the second feature settings template, wherein modifying the feature of the second application instance comprises applying a second change to the feature, wherein the second class of the plurality of computing platform classes is a lower class than the first class and wherein the second change modifies the feature to require less operating resources than the first change.

2. The method of claim 1 , wherein modifying the feature of the second application instance comprises disabling the feature.

3. The method of claim 1 , wherein modifying the feature of the second application instance comprises changing a quality level of the feature.

4. The method of claim 1 , further comprising:

identifying one or more properties of a plurality of computing platforms from a plurality of computing devices;

clustering the plurality of computing platforms to create the predefined clustering model; and

assigning ranks to each of the clusters based upon a plurality of performance metrics collected from previous application instance executions.

5. The method of claim 4 , further comprising determining a number of clusters using a silhouette score.

6. The method of claim 1 , further comprising:

observing performance metrics during execution of the second application instance on the second computing device;

determining that the performance metrics meet a prespecified threshold; and

responsive to determining that the performance metrics meet the prespecified threshold, modifying the feature of the second application instance by applying the first change to the feature.

7. The method of claim 6 , wherein applying the first change comprises enabling the feature.

8. The method of claim 1 , wherein a particular one of the plurality of hardware devices of the first computing device is not contained in the model, and wherein the method further comprises:

utilizing a similarity in a name of the particular one of the plurality of hardware devices and one or more performance characteristics of the particular one of the plurality of hardware devices to a second hardware device contained in the model and grouping the particular one of the plurality of hardware devices with the second hardware device based upon the similarity.

9. The method of claim 1 , further comprising:

modifying a second feature of the first application instance based upon the first feature settings template and modifying the second feature of the second application instance based upon the second feature settings template.

10. The method of claim 1 , wherein the computing platform further comprises an operating system version.

11. A system for modifying features of an application instance based upon an computing platform of a computing device executing the application instance, the system comprising:

a first computing device having a first computing platform executing a first application instance, comprising:

a first hardware processor;

a first memory device, storing instructions, which when executed by the first hardware processor, cause the first computing device to perform operations comprising:

identifying one or more properties of the first computing platform of the first computing device, the first computing platform including a plurality of hardware devices of the first computing device, the one or more properties not including performance metrics of the first application instance executing on the first computing device;

mapping the first computing device into a first class of a plurality of computing platform classes based upon the one or more properties of the first computing platform and a predefined clustering model;

identifying a first feature settings template corresponding to the first class based upon a mapping between the first class and the first feature settings template; and

modifying a feature of the first application instance based upon the first feature settings template, wherein modifying the feature of the first application instance comprises applying a first change to the feature;

a second computing device having a second computing platform executing a second application instance, comprising:

a second hardware processor;

a second memory device, storing instructions, which when executed by the second hardware processor, cause the second computing device to perform operations comprising:

identifying second one or more properties of the second computing platform of the second computing device, the second computing platform including a plurality of hardware devices of the second computing device, the one or more properties not including performance metrics of the second application instance executing on the second computing device;

mapping the second computing device into a second class of the plurality of computing platform classes based upon the second one or more properties and the predefined clustering model, the second class comprising computing platforms that are judged less capable than computing platforms of the first class;

identifying a second feature settings template corresponding to the second class based upon a mapping between the second class and the second feature settings template; and

modifying the feature of the second application instance based upon the second feature settings template, wherein modifying the feature of the second application instance comprises applying a second change to the feature, wherein the second class of the plurality of computing platform classes is a lower class than the first class and wherein the second change modifies the feature to require less operating resources than the first change.

12. The system of claim 11 , wherein the operations of modifying the feature of the second application instance comprises disabling the feature.

13. The system of claim 11 , wherein the operations of modifying the feature of the second application instance comprises changing a quality level of the feature.

14. The system of claim 11 , wherein the operations further comprise:

identifying one or more properties of a plurality of computing platforms from a plurality of computing devices;

clustering the plurality of computing platforms to create the predefined clustering model; and

assigning ranks to each of the clusters based upon a plurality of performance metrics collected from previous application instance executions.

15. The system of claim 14 , wherein the operations further comprise determining a number of clusters using a silhouette score.

16. The system of claim 11 , wherein the operations further comprise:

observing performance metrics during execution of the second application instance on the second computing device;

determining that the performance metrics meet a prespecified threshold; and

responsive to determining that the performance metrics meet the prespecified threshold, modifying the feature of the second application instance by applying the first change to the feature.

17. The system of claim 16 , wherein the operations of applying the first change comprises enabling the feature.

18. The system of claim 11 , wherein a particular one of the plurality of hardware devices of the first computing device is not contained in the model, and wherein the operations further comprise:

utilizing a similarity in a name of the particular one of the plurality of hardware devices and one or more performance characteristics of the particular one of the plurality of hardware devices to a second hardware device contained in the model and grouping the particular one of the plurality of hardware devices with the second hardware device based upon the similarity.

19. The system of claim 11 , wherein the operations further comprise:

modifying a second feature of the first application instance based upon the first feature settings template and modifying the second feature of the second application instance based upon the second feature settings template.

20. The method of claim 11 , wherein the computing platform further comprises an operating system version.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2023
From: GONZALEZ MONROY, RAMIRO; CARRANZA ROJAS, JOSE MARIO; ELLIS, MARTIN; JIN, JIZHE; BENDAPUDI, SATYA SASIKANTH; KAUR, HARPREET
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 065954/0770 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2023
From: GONZALEZ MONROY, RAMIRO; CARRANZA ROJAS, JOSE MARIO; ELLIS, MARTIN; JIN, JIZHE; BENDAPUDI, SATYA SASIKANTH; KAUR, HARPREET
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064684/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2023
From: GONZALEZ MONROY, RAMIRO; CARRANZA ROJAS, JOSE MARIO; ELLIS, MARTIN; JIN, JIZHE; BENDAPUDI, SATYA SASIKANTH; KAUR, HARPREET
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064582/0568 →
Continuity (2)
Provisional Application 63460803 · Apr 20, 2023
Related Publication 20240354101A1 · Oct 24, 2024
References Cited (18)
US 11163557B2 · Babol · 2021 [cited by examiner]
US 11606409B1 · Ergen · 2023 [cited by examiner]
US 11847496B2 · Sheoran · 2023 [cited by examiner]
US 11943275B2 · Sridhar · 2024 [cited by examiner]
US 12088823B2 · Gu · 2024 [cited by examiner]
US 20150301840A1 · Goetz · 2015 [cited by examiner]
US 20160259658A1 · Gocek · 2016 [cited by examiner]
US 20180131620A1 · Su · 2018 [cited by examiner]
US 20190034243A1 · Kramer · 2019 [cited by examiner]
US 20210141636A1 · Babol · 2021 [cited by examiner]
US 20220303352A1 · Herzog · 2022 [cited by examiner]
US 20220407906A1 · Sridhar · 2022 [cited by examiner]
US 20220413956A1 · Mathew · 2022 [cited by examiner]
US 20230305892A1 · Mathew · 2023 [cited by examiner]
US 20240103850A1 · Pierce · 2024 [cited by examiner]
US 20240152355A1 · Dupont · 2024 [cited by examiner]
Mao, et al., “Neural Adaptive Video Streaming with Pensieve”, In Proceedings of the Conference of the ACM Special Interest Group on Data Communication, Aug. 7, 2017, pp. 197-210. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/023498, Jul. 30, 2024, 11 pages. [cited by applicant]