License Client Verification for Software Adaptability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for controlling software application execution on computer systems face complexity in implementing license verification, especially when transitioning between on-premise installations and distributed service models, requiring different license implementations and lacking flexibility in offering various license terms without modifying the software.

Innovation Solution

A method that abstracts license verification by using a license client to check for the presence of licenses based on a license map, allowing for different license terms and models without modifying the software, enabling scalable license management across distributed systems with local decision-making and adaptive validity periods.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If different license implementations are required for on-premise and distributed service models, then license verification can be adapted to different deployment scenarios, but the software application requires multiple versions or amendments to support different license types

Engineering Contradiction:
Improvelicense model adaptabilityVSAvoidsoftware implementation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

A license server is introduced as an intermediary component that centralizes license management. The license server receives execution requests, checks license validity against stored license data, and returns authorization decisions to the application. This mediator separates the complex license verification logic from the application itself, allowing a single application version to support multiple license models (on-premise and distributed services) without requiring multiple software versions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If license verification is implemented in the software application, then execution control can be enforced, but the software application must be amended for each new license type or business model

Engineering Contradiction:
Improveexecution control reliabilityVSAvoidlicense term flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The license verification functionality is extracted from the software application and relocated to a separate license server. The application only contains a simplified client that sends execution requests and receives authorization decisions. This extraction allows the application to remain unchanged while the license server adapts to different license types and business models by modifying only the license data storage and verification logic in the server.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If a distributed computer system is used for service provision, then scalability and remote access are enabled, but ensuring globally consistent license data becomes complex and difficult to manage

Engineering Contradiction:
Improvesystem scalabilityVSAvoidlicense data consistency complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

All license data and verification logic are merged into a single centralized license server that serves the entire distributed system. This consolidation eliminates the need for each distributed node to maintain and synchronize its own license data, thereby achieving scalability while avoiding the complexity of global data consistency. The license server acts as a single source of truth for all license decisions across the distributed environment.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP2388725B1A method for controlling the execution of an application on a computer system
Publication Date: 2017.01.11 SFNT GERMANY GMBH
  • EP2388725B1 patent drawing
  • EP2388725B1 patent drawing
  • EP2388725B1 patent drawing

AI summary

The invention relates to a method for controlling the execution of a software application on a computer system, said method comprising the following steps: generating a license map based on a given license for said application, said license map includes the information which user is allowed to execute said application, providing a license client on the computer system, providing a license server delivering said license map to the license client, wherein, when a user is requesting execution of said application, the license client decides whether the user is allowed to execute said application based on the present license map.