License Server Heartbeat Identifier Generation for Cloned VMs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software license management systems struggle to accurately count unique installations of a software product, particularly when virtual machines are cloned, as they often share the same IP and MAC addresses, leading to indistinguishable installation instances.

Innovation Solution

A method and system that utilize consecutive heartbeat messages to generate unique identifiers for each installation instance, linking them in a historical list, and transmitting these identifiers for use in subsequent messages, allowing the system to differentiate between instances and detect potential software license violations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If virtual machines are cloned to improve productivity or adaptability, then the number of installation instances increases, but the ability to distinguish between unique installations deteriorates because cloned VMs share the same IP and MAC addresses

Engineering Contradiction:
Improvevirtual machine cloning capabilityVSAvoidinstallation instance identification accuracy
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The patent segments the identification process into multiple components: first using traditional identifiers (IP address, MAC address), then introducing unique instance identifiers generated by the license server. When cloning is detected, each cloned instance receives a unique identifier that segments them into distinguishable units for licensing purposes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary unique identifier mechanism between the cloned virtual machines and the license server. This intermediary identifier system allows the license server to distinguish between cloned instances even though the VMs share underlying hardware identifiers, effectively mediating the identification problem.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If traditional licensing methods using IP and MAC addresses are used, then the system complexity remains low, but the reliability of installation counting deteriorates when virtual machine cloning occurs

Engineering Contradiction:
Improvelicensing system complexityVSAvoidinstallation count accuracy
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent implements preliminary action by having the license server proactively generate and assign unique identifiers to installation instances before licensing issues arise. When a heartbeat message is received, the server checks for uniqueness and pre-assigns identifiers, preventing the reliability problem before it occurs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the identification parameters from static hardware-based identifiers (IP address, MAC address) to dynamic software-generated unique identifiers. This parameter change allows the system to maintain low complexity while achieving high reliability in installation counting.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3805960B1Methods and systems for identifying software product installation instances
Publication Date: 2023.04.12 BLACKBERRY LTD
  • EP3805960B1 patent drawingFigure 1
  • EP3805960B1 patent drawingFigure 2
  • EP3805960B1 patent drawingFigure 3

AI summary

Methods and systems for identifying individual installation instances of a software product. A plurality of consecutive heartbeat messages is received from an installation instance. Each heartbeat message includes a respective identifier that was transmitted to the installation instance in response to a previous heartbeat message. In response to each heartbeat message, a unique identifier is generated. The unique identifier is linked, in a historical list of identifiers, to the respective identifier. The unique identifier is also transmitted to the installation instance to be used as the next identifier in the plurality of heartbeat messages.