Dynamic License Distribution in Distributed Computing Clusters
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed systems, the need for separate licenses for software products across multiple machines is costly and inefficient, as each machine requires the same licenses for distributed application execution, leading to wasteful license usage.
Innovation Solution
A method and system where a master device generates tasks with information on licensed software components, which are distributed to worker devices that dynamically provide licenses for execution, allowing efficient license management and usage across the distributed system.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate licenses are provided for each machine in the distributed system, then software execution is enabled across all machines, but licensing costs increase and resource usage becomes inefficient
Solution Approach 1:
The patent merges license management across distributed machines by establishing a centralized license authority that issues licenses to multiple machines simultaneously. Instead of managing separate licenses for each worker machine, the system combines license issuance into a single centralized process, reducing total license quantity while maintaining execution capability across all machines.
Solution Approach 2:
The license authority serves multiple functions: it authenticates the master machine, issues licenses to worker machines, and manages license validity across the distributed system. This universal license management approach eliminates the need for machine-specific license management, reducing overall license requirements while ensuring reliable software execution.
2Productivity
If licenses are provided for all possible software components on all machines, then distributed execution is enabled, but license costs become prohibitive
Solution Approach 1:
The patent segments software components into distinct licensed entities, where each component can be independently licensed and assigned to specific machines. This segmentation allows the system to provide licenses only for the specific components needed for distributed execution, rather than providing comprehensive licenses for all possible software components, thereby reducing license costs while maintaining productivity.
Solution Approach 2:
The license system dynamically adjusts license assignments based on actual execution needs. The centralized license authority can issue, revoke, or modify licenses in real-time depending on which software components are required for current distributed tasks, optimizing the balance between productivity and license cost without requiring static comprehensive licensing.
3Ease of operation
If each worker machine receives and manages its own licenses, then execution independence is achieved, but system complexity increases
Solution Approach 1:
The centralized license authority acts as an intermediary between the master machine and worker machines. It handles the complex license issuance and management tasks, while worker machines simply receive and execute tasks with pre-assigned licenses. This intermediary approach maintains execution independence at the worker level while centralizing the complex license management functionality.
Solution Approach 2:
Worker machines perform self-service by automatically receiving tasks with embedded license information from the master machine and executing them without manual license intervention. The system leverages the existing task distribution mechanism to also distribute license information, eliminating the need for separate complex license management operations at each worker machine.
Data Source
AI summary
A method and system is disclosed for dynamic licensing of software products in a distributed system. A job is generated by a master (or client) and the tasks in the job are distributed to a cluster of workers for the distributed execution of the job. The tasks are distributed with information on the software products for which the master is licensed. The workers receive the tasks with the information on the software products for which the master is licensed. The workers dynamically provide licenses for the software products which the master is licensed for. The workers execute the tasks using the dynamically provided licenses for the software products. The results from the execution of the tasks are returned to the client.


