Licensing vs. Activation
When software companies investigate licensing solutions, they sometimes get confused by terms such as “licensing” and “activation.”
To be clear, “licensing” and “activation” have very specific meanings, although they are sometime used interchangeably. The two concepts are very different. Let’s define “licensing” first.
Licensing = Authorization
Licensing is the process of checking whether a software application or feature has a valid license available to it at runtime. Licenses are usually stored on disk as text files (with a .lic extension) with an encoded digital signature to prevent tampering with the parameters that describe the licensees rights. A single license file may contain multiple features and product licenses.
A license consists of at least the following parameters:
- Product or feature name
- Version number, the maximum version this license can support
- Date for expiring licenses, could be permanent
- License count (“uncounted” for single-seat licenses)
- Machine ID or “host ID” to which the license is “locked”
- Encoded digital signature (sig) to prevent tampering with the license
A Sample License:
LICENSE demo sample 5.7 permanent uncounted HOSTID=00a0d150a3b7 sig=”license signature goes here”
Enterprise-class license managers, such as RLM, allow the software vendor to define other license attributes that further define the conditions that must be met at runtime for a successful license authentication or checkout. Some of these other attributes include:
- time zone ranges
- license sharing parameters
- platform restrictions (eg. Windows only)
- start dates
- soft limit counts
- named user license type
This license can be local (read directly from the user’s file system) or it can be “served” by a license server installed on a server machine or virtual machine in the cloud. It is important to note that license servers are only required when you deploy concurrent or floating licenses – also known as counted licenses.
Software developers interact only with the licensing API. It is the library of licensing routines that is called from within an application to:
- initiate a license activation session (see below),
- check-out/check-in application or feature licenses, and
- query license attributes, if necessary
Every time a licensed application runs, a license “check-out” call is made to determine whether this application is authorized to run – in other words, “is it licensed?” The application developer decides how to handle cases where no licenses are available at runtime.
When a license is not found, the application may try to “activate” itself by trying to obtain a license from an activation server, such as Reprise’s Activation Pro, as described below.
A Sample Activation key: 6556-5465-8997-0379
“License Activation” is the process of successfully obtaining and installing a valid license file for a licensed application. A simple approach might be the following:
- End user installs the licensed application (from media or via an Internet download)
- End user runs the licensed application for the first time, no valid license is found (not yet activated)
- The licensed application pops up an “activation dialog box” to prompt the user to enter the “activation key” which was sent to him as a result of the ordering process
- The licensed application connects to a pre-determined activation server URL using an API call (via standard http)
- The activation key plus host id of the user’s machine are transmitted to the activation server. (Note that this step is done by the activation routine in the software, not by the user)
- The activation server validates the activation key, generates the corresponding license, then records the transaction in its database.
- The newly minted license file is then transmitted to the licensed application where it is written into a folder on the user’s disk
- License check-out operations will now succeed. The application is now both “activated” and “licensed”
Activation is typically done only once – when the application is first installed, but a “phone home” call to the activation server may be made periodically to check whether a user’s activation key is still valid. This technique comes in handy for decommissioned machines, or for lapsed subscriptions. See more here.