Having in mind that Viinex is often deployed in virtualized environments, and in order to preserve for our customers the possibility of migration of a virtual machine or a container across physical servers, we implemented support for so called Floating Network Licenses.
The idea behind this is to still have a hardware-bound instance of Viinex, -- it could be either bound to a server's HWID, or to a USB dongle, -- but to have this instance where it would be the least inconvenient for the customer, on the LAN or it could even be in the VPN or even on Internet, -- and this instance of Viinex does not have to do anything related to the primary Viinex functionality, -- it only needs to serve as a floating network license server. All the licenses available to that instance of Viinex can thus be made available to other instances of Viinex running on remote hosts.
The latter, e.g. the instances of Viinex running on a remote hosts or containers, may choose not to use their own license keys, but rather make RPC calls to the floating network license server. These calls are ensuring there's sufficient licenses to run the functionality which this remote Viinex instance is about to run. Once this functionality gets running, -- the required licenses "float" from the license server to the destination host or a container where the new Viinex instance is started. Upon shutdown of this instance, the licenses are returned to the license server, and can be reused by other Viinex instances.
There is no persistent state with regard to this "flow" of licenses, and the implementation of both Viinex floating network license server and client are tolerant to the loss of network connectivity and to the failure of another party. That means that licenses do not "leak" from license server when client Viinex instance does not return them gracefully (for instance if a VM where it ran was killed). Likewise, the floating manager license client can survive the lack of connectivity to the license server for up to 8 hours, and it even can start without such connectivity, -- Viinex license manager client assumes that if there is no connection to license server, -- it's going to be able to get the licenses later, and permits the instance to run with all required functionality.
The floating network license client and server implementation is available in Viinex 3.0 build 445 and later. Read more about Viinex's licensing model.