Software licensing is one of those product categories that on the surface appears to be pretty simple and straightforward. For the most part, it is. But as the saying goes, the devil is in the details. While it may appear that you just need to create a library that will verify some data, there’s actually a lot more to it. You have to add calls to that library in your code, create a mechanism for encoding licensing data to be read by that library and some basic client-server communications for counting the usage at the end user’s site.read more
Introduction to Software Licensing
What is Software Licensing?
Software Licensing, as implemented by a Software License Manager, allows a software publisher to flexibly price and license their product(s) for delivery to their customers. License managers allow a publisher to deliver concurrent-use (floating) or node-locked licenses to their customers. Most license managers offer many other license types; these vary from one license manager to the next.
License managers control the allocation of licenses by allowing a product to check out and check in a named license. The license manager keeps track of which users and computers can use these licenses, and, if the license is a floating license, the license manager keeps track of how many copies of the license are in use.
How is this different from Copy Protection?
License managers differ from Copy Protection because license managers give advantages to the publisher's customers as well as protecting the publisher. License managers allow the end-user organization to know that they are using purchased software within the license limits set by the publisher. In addition, license managers collect usage information (at the customer's option) for reporting and analysis. If your license manager is open and transparent, this usage information is provided in a fully-documented report log format.
License Manager Overview
Most license managers provide APIs with calls to control many of the aspects of licensing behavior. In addition, license managers provide license administration options to control the behavior of the license servers. These options are specified in server option files or via command-line or web-based administration tools.
First-generation license managers (such as FLEXlm and NetLS) required software developers to use extremely complex APIs to control license policy within applications, with relatively less control contained in the licenses themselves. Changes to license policies required developers to modify the application source code and re-release the applications.
Unlike the first-generation license managers, the design philosophy of RLM preserves the simplicity of the system for both software publishers and license administrators by avoiding unnecessary options in the client library and the license servers and moving these options to the license file, where they are visible and understandable by everyone.
In general, even when API calls are available, it is good practice to keep license policy out of the application and the license server, and place it into the license itself (to the extent that the license manager allows this). This not only makes a more understandable licensing system, but it also results in more standard behavior of application licensing from one publisher to the next. The Reprise team learned this while supporting thousands of FLEXlm customers, and we applied these lessons to the design of RLM.
License Types and Attributes
Commercial license managers will allow a publisher to control the use of their licenses using various License Types. The most popular license types are:
- node-locked (runs on a specified node only)
- floating (available anywhere on a network, up to a concurrent usage limit)
- token or package-based
- metered (i.e. a limited number of executions or limited time of execution).
In addition, most licenses will contain various attributes which further restrict their use. Some common attributes are:
- expiration date
- highest available software version
- start date
- named-user (i.e., the license can only be used by a particular user)
- allowed platform for the application.
License Manager Components
Most commercial license managers consist of 3 components:
- A client library or wrapper
- A license server, and
- A license description repository (typically a license file)
Reprise License Manager - RLM
Software license management
The Reprise License Manager (RLM) is a flexible and easy-to-use license manager with the power to serve enterprise users. License on-premises or in the cloud and use numerous licensing models. We offer a pricing model that makes it affordable to publishers of all sizes.
Software activation over the Internet
Activation Pro gives you, the software publisher, the ability to deliver electronic licenses to your customers 24x7, without customer support involvement. You supply an activation key to your customer, and at a later point in time, your customer uses this activation key to retrieve a license specific to their computer or network.