Multi-tenant License Enforcement via Persistent Queue and Stateless Enforcers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In a cloud computing environment, ensuring that job requests from multiple tenants are scheduled in compliance with software license agreements is challenging due to instability in computing resources and components, which can lead to breaches and financial losses.

Innovation Solution

A system that includes a persistent queue for job requests, a job state tracking component that persists job states, and multiple instances of software license agreement enforcers and resource managers, allowing for resilient operation even if individual components fail, along with a subscriber/publisher pool for decoupled communication between components.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If compute resources are physically located in a controlled area to ensure proper maintenance and functionality, then system reliability is improved, but adaptability to cloud computing environments deteriorates

Engineering Contradiction:
Improvesystem reliabilityVSAvoidadaptability to cloud computing
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system is divided into independent, stateless components (queue component, job state tracking component, license agreement enforcer, resource manager) that can be distributed across cloud infrastructure. Each component operates independently and can be replicated, allowing the system to adapt to cloud environments while maintaining reliability through component redundancy and failover capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A persistent queue component serves as an intermediary that decouples job submission from job execution. The queue persistently stores job requests and maintains system state externally, allowing stateless enforcers and resource managers to process jobs without requiring stable local storage or state maintenance, thus enabling cloud deployment while preserving reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple instances of software license agreement enforcers and resource managers are deployed to ensure resilience against component failure, then system reliability is improved, but device complexity increases

Engineering Contradiction:
Improvesystem resilienceVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Multiple identical instances of the license agreement enforcer and resource manager are deployed, each capable of independently processing job requests. The persistent queue and job state tracking components serve as shared state management systems that all instances access. This copying approach provides fault tolerance and load distribution without requiring complex inter-instance communication or coordination logic within each component.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

Each instance of the license agreement enforcer and resource manager is designed to be universal and stateless, capable of handling any job request from the queue without requiring instance-specific state. This universality allows any instance to take over another's workload seamlessly, providing resilience while keeping individual component logic simple and uniform.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If a persistent queue and job state tracking system are implemented to maintain state information across component failures, then system reliability is improved, but device complexity increases

Engineering Contradiction:
Improvestate persistenceVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

System state (job requests and job state information) is extracted from the processing components and stored externally in a persistent queue component and job state tracking component. This separation allows the enforcers and resource managers to remain stateless and simple, while reliability is achieved through the persistent external storage that survives component failures and enables state recovery.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11016808B2Multi-tenant license enforcement across job requests
Publication Date: 2021.05.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11016808B2 patent drawing
  • US11016808B2 patent drawing
  • US11016808B2 patent drawing

AI summary

Scheduling job request submitted by multiple tenants in a manner that honors multiple software license agreements for the multiple tenants. A queue persistently stores job requests that await scheduling. A job state tracking component persistently tracks a state of the job requests, and perhaps provides job requests into the queue. A software license agreement enforcer reviews the job requests in the queue, selects one or more job requests should be scheduled next based on the license agreements, and provide the selected job requests to a resource manager. A subscriber/publisher pool may be used to the various components to communicate. This decouples the communication from being a simple one-to-one correspondence, but instead allows communication from a component of one type to a component of the other type, whichever instance of those components happens to be operating.