IP Library Granted Patent US 11,237,813
Granted Patent B1
US 11,237,813 · App. 17/163,135 · Granted Feb 1, 2022

Model driven state machine transitions to configure an installation of a software program

Inventors: Yanpei Chen (Sunnyvale, CA); Archana Ganapathi (Palo Alto, CA)
Assignee: Splunk Inc.
G06F8/63G06F8/65G06F9/44505G06K9/6256
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,237,813
App. No.
17/163,135
Granted
Feb 1, 2022
Kind
B1
Abstract

Disclosed are embodiments of a installed software program that receive a model from a product management system. The model is trained to select one of a plurality of predefined states based on operational parameter values of the installation of the software program. Each of the plurality of predefined states define configuration values of the installation of the software program. The defined configuration values indicate, in some embodiments, updates to operational parameter values of the installation of the software program.

Claims (56)

1. A method implemented using a computing device, comprising:

receiving, from a product management system a model trained to select one of a plurality of predefined states based on a state of an installation of a software program on a computing device, each of the predefined states associated with a configuration of the software program, each configuration associated with operational parameter values of the software program;

determining a state of the installation of the software program;

inputting the determined state into the model;

obtaining, from the model, and based on the determined state, a selection of one of the plurality of predefined states; and

adjusting a parameter of the software program according to the selected one predefined state.

2. The method of claim 1 , wherein each configuration is associated with operational parameters including a list of limits and capabilities of users of the installation, an amount of pre-processing of incoming data, a type of pre-processing of incoming data, a list of enabled application features, a list of disabled application features, a list of installed applications, a list of applications that are not installed, or a number of computing instances within the installation.

3. The method of claim 1 , wherein determining the state of the installation of the software program includes measuring one or more of a number of active users having each of a plurality of different capabilities, a number of accesses to each of a plurality of features within a predefined time period, a virtual compute utilization, a rate at which each of a plurality of log data categories is accessed, or a number of each of a plurality of different types of computations initiated by a user within a predefined time period.

4. The method of claim 1 , further comprising:

periodically obtaining, from the product management system, by the installation of the software program, an updated model; and

adjusting at least one of the parameters of the installation of the software program based on the updated model.

5. The method of claim 4 , further comprising transmitting, to the product management system, by the software program, usage information of the installation of the software program or operating parameter values defining an operating environment or configuration of the installation of the software product, wherein the updated model is generated by the product management system based on the usage information.

6. The method of claim 5 , further comprising transmitting, to the product management system, one or more of resource utilization information of the installation of the software program, or installed application information of the installation of the software program, wherein the updated model is generated by the product management system based on the resource utilization information or installed application information.

7. The method of claim 5 , wherein the updated model is generated by the product management system based on customer relationship management information from across a plurality of installations of the software program.

8. The method of claim 7 , wherein the customer relationship management information indicates one or more of recent purchases of a customer, previous purchases of the customer, a size of the customer, a number of employees of the customer, an indicator of an industry of the customer.

9. The method of claim 5 , further comprising:

updating a local model based on the usage information;

determining a second state of the installation of the software program;

inputting the second state to the local model;

obtaining, from the local model, and based on the determined second state, a selection of a second one of the plurality of predefined states; and

adjusting at least one of the parameters of the installation of the software program in accordance to the selected second one predefined state.

10. A computing device, comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to perform operations including:

receiving, from a product management system a model trained to select one of a plurality of predefined states based on a state of an installation of a software program on a computing device, each of the predefined states associated with a configuration of the software program, each configuration associated with operational parameter values of the software program;

determining a state of the installation of the software program,

inputting the determined state into the model;

obtaining, from the model, and based on the determined state, a selection of one of the plurality of predefined states; and

adjusting a parameter of the software program according to the selected one predefined state.

11. The computing device of claim 10 , wherein each configuration is associated with operational parameters including a list of limits and capabilities of users of the installation, an amount of pre-processing of incoming data, a type of pre-processing of incoming data, a list of enabled application features, a list of disabled application features, a list of installed applications, a list of applications that are not installed, or a number of computing instances within the installation.

12. The computing device of claim 10 , wherein determining the state of the installation of the software program includes measuring one or more of a number of active users having each of a plurality of different capabilities, a number of accesses to each of a plurality of features within a predefined time period, a virtual compute utilization, a rate at which each of a plurality of log data categories is accessed, or a number of each of a plurality of different types of computations initiated by a user within a predefined time period.

13. The computing device of claim 10 , the operations further comprising:

periodically obtaining, from the product management system, by the installation of the software program, an updated model, and

adjusting at least one of the parameters of the installation of the software program based on the updated model.

14. The computing device of claim 13 , the operations further comprising transmitting, to the product management system, by the software program, usage information of the installation of the software program or operating parameter values defining an operating environment or configuration of the installation of the software product, wherein the updated model is generated by the product management system based on the usage information.

15. The computing device of claim 14 , the operations further comprising transmitting, to the product management system, one or more of resource utilization information of the installation of the software program, or installed application information of the installation of the software program, wherein the updated model is generated by the product management system based on the resource utilization information or installed application information.

16. The computing device of claim 14 , wherein the updated model is generated by the product management system based on customer relationship management information from across a plurality of installations of the software program.

17. The computing device of claim 16 , wherein the customer relationship management information indicates one or more of recent purchases of a customer, previous purchases of the customer, a size of the customer, a number of employees of the customer, an indicator of an industry of the customer.

18. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processor to perform operations including:

receiving, from a product management system a model trained to select one of a plurality of predefined states based on a state of an installation of a software program on a computing device, each of the predefined states associated with a configuration of the software program, each configuration associated with operational parameter values of the software program;

determining a state of the installation of the software program;

inputting the determined state into the model;

obtaining, from the model, and based on the determined state, a selection of one of the plurality of predefined states; and

adjusting a parameter of the software program according to the selected one predefined state.

19. The non-transitory computer-readable medium of claim 18 , the operations further comprising:

periodically obtaining, from the product management system, by the installation of the software program, an updated model;

adjusting at least one of the parameters of the installation of the software program based on the updated model; and

transmitting, to the product management system, by the software program, usage information of the installation of the software program or operating parameter values defining an operating environment or configuration of the installation of the software product, wherein the updated model is generated by the product management system based on the usage information.

20. The non-transitory computer-readable medium of claim 19 , the operations further comprising transmitting, to the product management system, one or more of resource utilization information of the installation of the software program, or installed application information of the installation of the software program, wherein the updated model is generated by the product management system based on the resource utilization information or installed application information.

21. The non-transitory computer-readable medium of claim 19 , wherein the updated model is generated by the product management system based on customer relationship management information from across a plurality of installations of the software program.

22. The non-transitory computer-readable medium of claim 19 , the operations further comprising:

updating a local model based on the usage information;

determining a second state of the installation of the software program;

inputting the second state to the local model;

obtaining, from the local model, and based on the determined second state, a selection of a second one of the plurality of predefined states; and

adjusting at least one of the parameters of the installation of the software program in accordance to the selected second one predefined state.

Assignments (3)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2021
From: CHEN, YANPEI; GANAPATHI, ARCHANA
To: SPLUNK INC.
Reel/Frame 055085/0898 →
Cited By (4)
US 12,265,855 US 12,299,291 US 12,511,118 US 12,554,468