IP Library Granted Patent US 12670237
Granted Patent B2
US 12670237 · App. 15/951,022 · Granted Jun 30, 2026

Dynamic reallocation of computing resources based on monitored usage activities of client systems

Inventors: Mark Paladino (San Jose, CA); Chris Hughes (San Jose, CA); Alex Chow (San Jose, CA); Alexandru Macovei (San Jose, CA); Elvira Kan (San Jose, CA)
Assignee: FLEXERA SOFTWARE LLC
G06F21/105G06F11/3051G06F11/3442
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 12670237
App. No.
15/951,022
Granted
Jun 30, 2026
Kind
B2
Abstract

The disclosed embodiments include a computer system that can monitor usage activity of software program(s) by client systems, and ascertain an existing ratio between a first group of resources of a first type and a second group of resources of a second type collectively allocated to the client systems. The first and second types define different amounts of functionality enabled by the software program. The system can be further caused to determine first and second recommended counts for the first and second groups of resources based on the monitored usage activity and an expected ratio, and cause adjustment of an allocation of resource(s) from the first and/or second groups of resources in accordance with the first and second recommended counts such that the adjusted allocation tracks the monitored usage activity while conforming to the expected ratio.

Claims (37)

1 . A computer system comprising a processor and a memory storing instructions that, when executed by the processor, cause the computer system to:

obtain, via an application manager included in the computer system, optimization rules customized for an entity, the optimization rules informing assignments of licenses to users based on usage activity associated with a software program,

wherein the application manager is configured to receive the usage activity from a central system included in the computer system, and wherein the application manager is configured to derive recommendations based on the optimization rules;

monitor usage activity, via the central system, of a software program being associated with processes/threads actively executing on a plurality of client systems associated with the entity which are connected to the network, wherein the central system is integrated with the network, wherein the central system runs monitoring programs configured to coordinate license assignments for the client systems across the network,

and wherein coordinating license assignments includes, at least, transitioning a user engaged in a session under a first license type to a second license type based on closure of instances of the software program by other users;

ascertain, via the application manager based on the monitored usage activity, an existing license ratio between a first group of licenses of the first license type and a second group of licenses of the second license type collectively allocated to the plurality of client systems, each of the first and second license types defining different amounts of functionality enabled by the software program, wherein the second license type has greater priority than the first license type in a hierarchy of license types, and wherein priorities indicated in the hierarchy of license types are customized by a licensor and required to be enforced,

wherein enforcing the adjusted allocation comprises building a first list of license types having spare licenses and a second list of license types that are in breach, ordering both lists according to the hierarchy of license types, identifying for a breached license type a spare license of a superior license type that is a parent of the breached license type in the hierarchy of license types, and reassigning a particular client system from the breached license type to the spare license;

determine a breach associated with use of the software program by a first client system assigned the first group of licenses, wherein the first license type is assigned as a breach license type, and wherein the breach indicates a number of the first group of licenses has been exceeded under an expected license ratio which is to be enforced, such that that there aren't enough of the first group of licenses to meet the expected license ratio;

determine, via the application manager in response to the detected breach, a particular recommendation reflecting a first recommended license count for the first group of licenses and a second recommended license count for the second group of licenses based on the monitored usage activity and the expected license ratio between the first and second license types; and

cause, via the central system based on the hierarchy of licenses and the particular recommendation from the application manager, adjustment of an allocation of one or more licenses from the second groups of licenses in accordance with the first and second recommended license counts such that the adjusted allocation is in accordance with the monitored usage activity while conforming to the expected license ratio,

wherein the adjusted allocation is enforced by the computer system, and

wherein to enforce the adjusted allocation for the first client system, the computer system is configured to:

reassign the first client system based on the adjusted allocation, wherein the computer system validates that an administrator has set an option to allow the computer system to automatically reassign client systems based on breaches,

wherein the first client system is assigned to the second group of licenses as adjusted in the adjusted allocation, and

wherein the first client system is configured to use the software program with an amount of functionality defined by the second license type.

2 . The computer system of claim 1 further caused to, prior to monitoring the usage activity:

cause the plurality of client systems to report the usage activity of the software program at the plurality of client systems at various points in time.

3 . The computer system of claim 1 further caused to, prior to monitoring the usage activity:

obtain the expected license ratio from a database.

4 . The computer system of claim 1 further caused to, when determining the first recommended license count:

determine that the existing license ratio associated with the first license type is greater than the existing license ratio associated with the second license type;

set the first recommended license count to a particular license count for the first license type if the particular license count for the first license type is greater than a particular license count of both the first and second license types times the existing license ratio associated with the first license type; and

set the first recommended license count to a sum of the particular license count of the first and second license types times the existing license ratio associated with the first license type if the particular license count of the first license type is less than the particular license count of both the first and second license types times the existing license ratio associated with the first license type.

5 . The computer system of claim 4 further caused to, when setting the first recommended license count comprises:

round up the first recommended license count to an integer value.

6 . The computer system of claim 1 further caused to, when determining the first recommended license count:

determine that the existing license ratio associated with the first license type is less than the existing license ratio associated with the second license type;

set the first recommended license count to a particular license count for the first license type if the particular license count of the first license type is less than a particular license count of both the first and second license types times the existing license ratio associated with the first license type;

set the first recommended license count to a sum of the particular license count of the first and second license types times the existing license ratio associated with the first license type if the particular license count of the first license type is greater than the particular license count of both the first and second license types times the existing license ratio associated with the first license type.

7 . The computer system of claim 6 further caused to, when setting the first recommended license count:

round down the first recommended license count to an integer value.

8 . The computer system of claim 1 further comprising:

a server computer of a deployment system, the deployment system including the plurality of client systems, and the server computer including:

a processor; and

a memory including instructions that, when executed by the processor of the server computer, causes the processor to:

reallocate the one or more licenses from the second groups of licenses in accordance with the first and second recommended license counts.

9 . The computer system of claim 8 , wherein the server computer includes the application manager system.