Distributed license management
AssigneeFlexera Software LLC
InventorsVikram Venkata Koka, Sonny Doan Luu
Life of this patent
Estimating the term…
Abstract
Techniques for distributed license management are provided. Three or more services or servers cooperate and negotiate with one another to establish primary, secondary, and tertiary licensing services. Initially, the primary is designated as a master licensing service and manages a license for a plurality of users over a network. If the primary fails to respond within a configurable period of time to both the secondary and tertiary licensing services, then the secondary dynamically assumes a master licensing service role for purposes of managing the license.
Claims20
A system for distributed license management, the system comprising:
- a primary licensing server programmed to manage a license for a plurality of users over a network, wherein the primary licensing server is designated as a master licensing server for the license and communicates heartbeat signals at periodic intervals to one or more other participants in the network, wherein each heartbeat signal includes identities of the plurality of users that currently have valid access to the license;
- a tertiary licensing server programmed to independently verify that no heartbeat signals have been received from the primary licensing server within a predetermined period of time, wherein the tertiary licensing server does not assume the role of the master licensing server;
- and
- a secondary licensing server programmed to:
- request approval from the tertiary licensing server to assume the designation of the master licensing server when the secondary licensing server determines that no heartbeat signals have been received from the primary licensing server within the predetermined period of time,
- receive a response from the tertiary licensing server, the response based on the independent verification by the tertiary licensing server that no heartbeat signals have been received from the primary licensing server within the predetermined period of time,
- assume the designation of the master licensing server when the received response indicates approval of the request from the tertiary licensing server, wherein the secondary licensing server is not allowed to assume the designation of the master licensing server when the received response indicates denial of the request from the tertiary licensing server, and
- relinquish the master licensing server designation when the primary licensing server reestablishes communication with the secondary licensing server or the tertiary licensing server, wherein the primary licensing server immediately re-initiates and re-executes a license daemon and wherein the primary licensing server is redesignated as the master licensing server.
A method for distributed license management, the method comprising:
- managing a license for a plurality of users over a network, wherein the license is initially managed by a primary licensing server designated as the master licensing server;
- communicating heartbeat signals at periodic intervals from the primary licensing server to one or more other participants in the network, wherein each heartbeat signal includes identities of the plurality of users that currently have valid access to the license;
- detecting that no heartbeat signals have been received at a secondary licensing server from the primary licensing server within a predetermined period of time;
- requesting approval from a tertiary licensing server for the secondary licensing server to assume the designation of master licensing server;
- independently verifying at the tertiary licensing server that no heartbeat signals have been received from the primary licensing server within the predetermined period of time;
- responding to the request for the secondary licensing server, the response based on the independent verification by the tertiary licensing server;
- designating the secondary licensing server the master licensing server when the received response indicates approval of the request by the tertiary licensing server, wherein the secondary licensing server is not allowed to assume the designation of the master licensing server when the received response indicates denial of the request by the tertiary licensing server;
- and
- relinquishing the master licensing service designation by the secondary licensing server when the primary licensing server reestablishes connectivity with the secondary licensing server or tertiary licensing server, wherein the primary licensing server immediately reinitiates and re-executes a license daemon and wherein the primary licensing server is redesignated the master licensing server.
A non-transitory computer-readable storage medium having stored thereon a plurality of instructions, the plurality of instructions executable by a computer to perform a method for distributed license management, the method comprising:
- negotiating a quorum of three or more machines and assigning roles to each member of the quorum, wherein a first machine is designated a master licensing server and is responsible for managing a license over a network for clients, and wherein a second machine is designated a tertiary licensing server and does not assume the role of the master licensing server;
- periodically communicating heartbeat signals amongst the machines while the license is being managed by a current master licensing server, wherein each heartbeat signal includes identities of the plurality of users that currently have valid access to the license;
- detecting that no heartbeat signals have been received from the current master licensing server within a predetermined period of time;
- requesting approval from the designated tertiary licensing server for a third machine to assume the designation of master licensing server;
- independently verifying at the tertiary licensing server that no heartbeat signals have been received from the current master licensing server within the predetermined period of time;
- responding to the request for the third machine, the response based on the independent verification by the tertiary licensing server;
- designating the third machine the master licensing server when the received response indicates approval of the request by the tertiary licensing server, wherein the third machine is not allowed to assume the designation as the master licensing server when the received response indicates denial of the request by the tertiary licensing server;
- and
- relinquishing master licensing server designation by the third machine when the first machine reestablishes connectivity with the second or third machine, wherein the first machine reinitiates and re-executes a license daemon and wherein the first machine is redesignated the master licensing server.
Dependencies are inferred from the claim text.