Flexible licensing architecture
First Claim
1. A method of operating a computing device configured to run a particular software product, the software product including a set of features, the method comprising:
- upon a boot of the computing device, performing an analysis of a system configuration of the computing device, the analysis producing values of a set of system configuration parameters;
storing the values of the set of system configuration parameters in a system configuration database;
upon receiving a command to run the particular software product, extracting the values of the system configuration parameters from the system configuration database; and
for each feature of the set of features, performing an activation decision operation on that feature based on values of the system configuration parameters, the activation decision operation resulting in one of a decision to activate that feature and not activating that feature;
wherein;
the software product supports a storage system, a system configuration parameter of the software product being a platform for the storage system, the platform indicating whether the storage system offers block-level services or a combination of block-level and file-level services for making storage visible over a network; and
performing the activation decision operation on that feature based on values of the system configuration parameters includes basing the activation decision on the platform of the storage system.
9 Assignments
0 Petitions
Accused Products
Abstract
An improved technique involves analyzing a system configuration upon a system boot and sending the configuration to a system configuration database that provides configuration details for enabling features of a software package. Such configuration details take the form of configuration parameters having values that may include, for example, an amount of RAM installed in the system, or the operating system used. The configuration database stores values of these parameters in a persistent store and makes these values available to the system when a software package is launched. At this point, the system accesses the database and obtains the values of the configuration parameters. The system uses these values to determine whether to activate particular features of the software package.
-
Citations
21 Claims
-
1. A method of operating a computing device configured to run a particular software product, the software product including a set of features, the method comprising:
-
upon a boot of the computing device, performing an analysis of a system configuration of the computing device, the analysis producing values of a set of system configuration parameters; storing the values of the set of system configuration parameters in a system configuration database; upon receiving a command to run the particular software product, extracting the values of the system configuration parameters from the system configuration database; and for each feature of the set of features, performing an activation decision operation on that feature based on values of the system configuration parameters, the activation decision operation resulting in one of a decision to activate that feature and not activating that feature; wherein; the software product supports a storage system, a system configuration parameter of the software product being a platform for the storage system, the platform indicating whether the storage system offers block-level services or a combination of block-level and file-level services for making storage visible over a network; and performing the activation decision operation on that feature based on values of the system configuration parameters includes basing the activation decision on the platform of the storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 19, 20, 21)
wherein the method further comprises; for each feature of the set of features, performing the activation decision operation on that feature based on a state of the corresponding license of that feature, that feature being able to provide its distinct function when its corresponding license is activated, that feature not being able to provide its distinct function when its corresponding license is not activated.
-
-
3. A method as in claim 2,
wherein each feature of the set of features further includes i) a state having a value equal to one of turned off, not licensed, and turned on and ii) a feature flag exposing the state, the feature flag of that feature having a binary value corresponding to an off value or an on value, the off value to which the value a feature flag of a feature corresponds indicating that the feature is not activated, the on value to which the value a feature flag of a feature corresponds indicating that the feature is activated; wherein performing the activation decision operation further includes; computing the binary value of the feature flag for a feature of the set of features based on the at least one value of the system configuration parameters and the state of the corresponding license of that feature.
-
4. A method as in claim 3,
wherein at least one feature of the set of features is dependent on another feature of the set of features; wherein computing the binary value of the feature flag includes; when the feature flag of the other feature has its binary value corresponding to the off value, setting the binary value of feature flag of the at least one feature to the value corresponding to the off value.
-
5. A method as in claim 1,
wherein the system configuration database includes a persistent store configured to store values of system configuration parameters through a boot of the computing device; wherein storing the at least one value of the set of system configuration parameters in the system configuration database includes; writing the at least one value of the set of system configuration parameters into the persistent store.
-
6. A method as in claim 5,
wherein performing the analysis of the system configuration of the computing device includes: -
assessing an amount of RAM available to the computing device; wherein storing the at least one value of the set of system configuration parameters in the system configuration database includes; verifying whether the assessed amount of RAM available to the computing device matches a value of the amount of RAM available to the computing device written to the persistent store, and when the assessed amount of RAM available to the computing device is different from the value of the amount of RAM available to the computing device written to the persistent store, writing the assessed amount of RAM available to the computing device to the persistent store.
-
-
7. A method as in claim 6,
wherein the computing device includes a memory configuration module configured to allocate memory for the software product; wherein extracting the at least one value of the system configuration parameters from the system configuration database includes; reading the system configuration database; and allocating memory for the software product based on the at least one value of the system configuration parameters and the assessed amount of RAM.
-
8. A method as in claim 7,
wherein the computing device further includes a data services module configured to supply software drivers to the computing device based on the at least one value of the system configuration parameters; wherein extracting the at least one value of the system configuration parameters from the system configuration database includes; reading the system configuration database; and supplying software drivers for the software product based on the at least one value of the system configuration parameters.
-
9. A method as in claim 1,
wherein the system configuration database includes a configuration file that stores the system configuration parameters as keys; - and
wherein storing the at least one value of the set of system configuration parameters in the system configuration database includes; writing the at least one value of the set of system configuration parameters in the configuration file along with a corresponding key.
- and
-
19. A method as in claim 1, wherein the computing device includes a storage processor of a data storage system;
-
wherein the set of system configuration parameters includes parameters describing the storage processor; wherein performing the analysis of the system configuration of the computing device includes producing values of the parameters describing the storage processor.
-
-
20. A method as in claim 19, wherein extracting the values of the system configuration parameters from the system configuration database includes automatically providing, by the storage processor, the values of the parameters describing the storage processor.
-
21. A method as in claim 20, wherein automatically providing, by the storage processor, the values of the parameters describing the storage processor includes not providing manual input.
-
10. A computing device configured to run a particular software product, the software product including a set of features, each of the set of features having a corresponding license, the computing device comprising:
-
memory; and a controller including controlling circuitry, the controlling circuitry being constructed and arranged to; upon a boot operation of the computing device, perform an analysis of a system configuration of the computing device, the analysis producing values of a set of system configuration parameters; store the values of the set of system configuration parameters in a system configuration database; upon receiving a command to run the particular software product, extract the values of the system configuration parameters from the system configuration database; and for each feature of the set of features, performing an activation decision operation on that feature based on values of the system configuration parameters, the activation decision operation resulting in one of a decision to activate that feature and not activating that feature; wherein; the software product supports a storage system, a system configuration parameter of the software product being a platform for the storage system, the platform indicating whether the storage system offers block-level services or a combination of block-level and file-level services for making storage visible over a network; and performing the activation decision operation on that feature based on values of the system configuration parameters includes basing the activation decision on the platform of the storage system. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer program product having a non-transitory, computer-readable storage medium which stores instructions that, when executed by a computing device configured to run a particular software product, the software product including a set of features, cause the computing device to:
-
upon a boot of the computing device, perform an analysis of a system configuration of the computing device, the analysis producing at least one value of a set of system configuration parameters; store the at least one value of the set of system configuration parameters in a system configuration database; upon receiving a command to run the particular software product, extract the at least one value of the system configuration parameters from the system configuration database; and for each feature of the set of features, perform an activation decision operation on that feature based on values of the system configuration parameters, the activation decision operation resulting in one of a decision to activate that feature and not activating that feature; wherein; the software product supports a storage system, a system configuration parameter of the software product being a platform for the storage system, the platform indicating whether the storage system offers block-level services or a combination of block-level and file-level services for making storage visible over a network; and performing the activation decision operation on that feature based on values of the system configuration parameters includes basing the activation decision on the platform of the storage system.
-
Specification