License Management for Installed Software
License management of installed software can be tricky. No one likes it.
Software developer employees hate working on it because it’s not a feature that benefits the customer. Customers do not like the hassle of license file management.
Unfortunately, short of distributing installed software without protection, it’s a necessary evil. There are many different ways to lock installed software to unique personal identifiers or computer properties, including:
- Locking down to the MAC address. Each network interface on a computer has a MAC address, so a computer with wifi and ethernet would have at least 2 MAC addresses.
- Locking down to the hard drive ID.
- Locking down to the OS username.
- Locking down with a special activation code (PLP – personal license password).
In the high-performance computing space which deals with clusters of many computers, it is also common to count the number of nodes, or number of GPUs in our case, as a licensing delimiter. This is done because it is best to have the delimiter correlate to ability to pay (i.e. a 100 node GPU cluster costs more in both hardware and software than a 5 node GPU cluster).
Also, licenses can be administered in different ways:
- Designated computer – each license is only allowed to run on one computer at a time.
- Floating named user – each license can be run on any computer on a network, but only by the username to which it is assigned.
- Concurrent network users – a group of users and computers share a number of licenses. Any user and any computer on the network can run the license, but only a limited number of “concurrent” users can run the software at any given time.
When we first started shipping our software, we implemented our own PLP system of licensing. It was great and easy to use. But it was limited to designated computers, incapable of handling floating or concurrent licenses.
So we switched to using the FLEXnet licensing system to get those additional features. It’s always a pain to rely upon software that you don’t control, and FLEXnet is fairly bloated and painful to use. But IT departments have standardized on it, so we do what customers expect.
It’s important to get the licensing mechanisms right because it’s one of the first things customers touch as they activate a trial or install freshly purchased software. Choosing the right flavor of licensing should be done by canvasing a few key customers to understand how they typically prefer to manage commercial software.
What licensing mechanisms have you used to protect your installed software?