Flexible Licensing Architecture for Node-Locked Software
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional licensing architectures for software packages require different software images for various deployments and hardware configurations, leading to inefficiencies and increased development costs, as well as insecure licensing that allows unauthorized use across multiple machines and unnecessary resource consumption.
Innovation Solution
A system that analyzes configuration parameters upon boot and stores them in a database to determine feature activation, enabling a single software image to adapt to different configurations and providing secure, node-locked licensing by using a system configuration database to manage feature activation based on system and licensing details.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If different software images are created for different deployments and hardware configurations, then the software can be properly licensed and configured for each specific platform, but the device complexity and development costs increase significantly
Solution Approach 1:
The patent implements a universal licensing architecture where a single software image can operate across multiple hardware platforms and deployment configurations. The licensing system dynamically adapts to different environments (block storage, file storage, unified storage, various RAM configurations) without requiring separate software images, thereby reducing complexity while maintaining platform-specific licensing security
Solution Approach 2:
The system uses configuration parameters to identify and adapt to different hardware platforms and licensing scenarios. By detecting system parameters (such as hardware configuration, deployment type) and dynamically adjusting feature activation based on these parameters, the system maintains reliability across platforms without requiring multiple pre-built software images
2Ease of manufacture
If feature enablers are used for licensing, then the licensing implementation is simple, but the software cannot be node-locked and may be used on multiple machines against the distributor's wishes
Solution Approach 1:
The patent introduces a license manager as an intermediary component that sits between the feature enablers and the system registry. This license manager verifies licensing conditions, enforces node-locking policies, and controls feature activation based on validated licenses. It maintains the simplicity of feature enabler implementation while adding the security layer needed to prevent unauthorized multi-machine usage
3Reliability
If electronic licenses with encrypted codes are used, then node-locked licensing is achieved, but unlicensed processes can still consume system resources
Solution Approach 1:
The system performs preliminary licensing verification during the boot process and before feature activation. The license manager checks licenses and configures system resources accordingly before unlicensed processes can consume significant system resources. This preliminary action ensures that only licensed features can access system resources, preventing resource waste while maintaining security
4Ease of manufacture
If a single software image is used for all platforms, then development costs are reduced, but the system must support all configurations which increases initial complexity
Solution Approach 1:
The patent implements dynamic configuration support within a single software image. The system dynamically detects the hardware platform, deployment type, and licensing status at runtime, then activates only the appropriate features and configurations. This dynamic approach allows a single static software image to effectively support multiple configurations without requiring manual setup or complex preconfiguration
Data Source
AI summary
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.


