As a software publisher, managing your product licenses is crucial to ensuring revenue and protecting your intellectual property. Commercial license managers, such as Reprise License Manager (RLM), provide you with the tools to control the use of your software licenses through various license types.
From node-locked and floating licenses to metered and token-based models, this comprehensive guide will explore the most popular commercial license types and how they can be leveraged to meet the unique needs of your business and customers. Read on to unlock the full potential of your software licensing strategy.
Popular Commercial License Types for Software Publishers
The most popular license types offered by commercial license managers include:
Node-locked Licenses
A node-locked license is a license grant which allows the software to be used on a particular computer, and on that computer only. Most typically, this license is uncounted, meaning that if the software is running on the specified computer, any number of instances are allowed to execute.
In The License File:
Set the count field of the license to “uncounted” or “0” and specify the hostid of the computer in the actual license. Typically, node-locked uncounted licenses do not require a license server, so they are very simple to deploy.
Example License:
LICENSE isvName productName versionNumber expiration count hostid=XXXXXXXX
Node-locked, Limited License
A variant of the node-locked uncounted license, it is sometimes desirable to allow only a limited number of instances of the software to run on a particular computer. This is a counted license which is also node-locked.
In The License File:
Set the count field of the license to a non-zero value (or “single”) and specify the hostid of the computer in the actual license. This license requires a license server (HOST and ISV lines), unless you use a “single” license.
Example License:
HOST localhost ANY 5053 ISV isvName LICENSE isvName productName versionNumber expiration count hostid=XXXXXXXX
Floating Licenses
Floating licenses, also known as concurrent-use licenses, allow your software to be accessed and used by multiple users or devices simultaneously, up to a predefined concurrent usage limit. This model provides flexibility for your customers while maintaining control over license usage.
Sometimes it is desirable to modify the behavior of a floating license so that all invocations of your product on a single computer use only one license. Or all invocations by the same user. Or all invocations from a particular process tree. In this case, license managers provide a method of sharing a particular license among multiple instances of the product.
This shared license approach ensures that your software can be used efficiently, without unnecessarily consuming multiple licenses on the same machine or by the same user. License managers like Reprise License Manager (RLM) offer configurable options to control this shared license behavior, allowing you to optimize the user experience while maintaining the integrity of your licensing model.
In The License File:
Set the count field to a non-zero value—this is the number of instances of your application that may be run concurrently. This license requires a license server (HOST and ISV lines).
Example License:
HOST localhost ANY 5053 ISV isvName LICENSE isvName productName versionNumber expiration count
Named-User License
A named-user license allows a limited number of users access to a floating license. This provides you with a more granular approach to managing your software licenses, enabling you to sell a number of instances to a specific subset of users at the customer site, without having to identify the users at the time you create the license.
In The License File:
- Use a floating license and specify the `named_user` or `named_user=n` attribute in the actual license.
- If you specify `named_user`, then your customer can assign as many users as there are licenses available.
- Specifying `named_user=n` will allow you to set a lower (or higher) limit for the number of users.
This license type requires a license server to manage the named-user assignments and enforce the license restrictions.
Example License:
HOST localhost ANY 5053 ISV isvName LICENSE isvName productName versionNumber expiration count=10 named_user=5 hostid=XXXXXX
In this example, the license allows for a maximum of 10 concurrent users, but restricts the number of named users to 5. This provides flexibility for your customers while maintaining control over the license usage.
Metered Licenses
Metered licenses provide a flexible way to allocate and consume software usage based on specific metrics within your application. This allows you to offer more granular pricing and usage models to your customers.
For example, you could meter the number of times your program is run (as opposed to the concurrent limit of execution in a floating license). Or you could count the number of pages printed in a word-processing application. Metering also allows you to create a license which will run for a predetermined amount of running time (program running time, as opposed to an expiration date – expiration dates are usually available for all license types).
In The License File:
- Set the `count` field of the license to `meter`, and specify the metering parameters in the actual license.
- The metering parameters control how usage is consumed when you call `rlm_checkout()` and subsequently as the application continues to run.
This license type requires a license server (HOST and ISV lines) to manage the metering and enforce the usage restrictions.
Example License:
HOST localhost ANY 5053 ISV isvName LICENSE isvName productName versionNumber expiration count=meter max_prints=1000 max_runtime=3600 hostid=XXXXXX
In this example, the license allows the software to be used for a maximum of 1,000 printed pages or 1 hour of runtime, whichever limit is reached first. The metering parameters are specified in the `max_prints` and `max_runtime` attributes of the license.
By leveraging metered licenses, you can offer your customers more flexible and tailored pricing models, while maintaining control over the usage of your software.
Token-Based Licenses
Token-based licenses provide a flexible way to define your software licenses in terms of other “primary” licenses that have been issued to your customers. This approach offers several key benefits:
Allows you to define several licenses in terms of a single, common primary license. Your customers can purchase many copies of the primary license, then they are allowed to run whatever products are defined to use that license. A big advantage is that as you release new products which use the same primary license, your customers can use these products immediately, creating more contention for the licenses, and additional sales for you.
Enables you to create product bundles or packages, where a single token-based license grants access to a collection of your software offerings.
Provides a mapping from a particular license request to one or several equivalent licenses. Typically, ISVs are happy to allow more expensive licenses to be used to satisfy the request of a lower-cost product. This allows your customers to keep working while increasing contention for the higher-priced licenses.
In The License File:
- Set the `count` field of the license to `token`, and specify the primary license(s) which are used to satisfy the request for the product.
- The token license is generally the same for all your customers, and you issue licenses of the primary license when they purchase your software.
This license type requires a license server to manage the token-based license assignments and enforce the usage restrictions.
Example License:
HOST localhost ANY 5053 ISV isvName LICENSE isvName productName versionNumber expiration count=token primary_license=isvName primaryProduct versionNumber
In this example, the token-based license for “productName” is defined in terms of the primary license for “primaryProduct”. Customers who have purchased the primary license can use the token-based license to access “productName” without the need for additional license purchases.
By leveraging token-based licenses, you can offer your customers more flexibility and choice, while streamlining your own license management and product bundling strategies.
Maintenance-Thru-Date Licenses
Many software publishers wish to issue a license to their customers that allows the customer to run (forever) any version of the software, which is released through a particular date, e.g., one year into the future. If the publisher releases a new version in 11 months, the customer can use this version as well, but no version which is released more than 12 months later. This is accomplished through a “date-based” version licensing approach.
In The License File:
- Set the `version` field of the license to a date, in the format `yyyy.mm`, and specify the version in your call to `rlm_checkout()` in the same release date format.
- When you issue licenses, issue them with a version number corresponding to the expiration of their support. So, for example, if you want to issue one-year supported licenses, in May of 2023, you would issue licenses of version `2024.05`. When you release your software in December of 2023, you would request version `2023.12`.
Warning: While it is possible to use other date formats, the format above is used by RLM Activation Pro.
Example License:
HOST localhost ANY 5053 ISV isvName LICENSE isvName productName 2024.05 expiration count=uncounted hostid=XXXXXX
In this example, the license allows the customer to use any version of the software released up to and including May 2024. This provides the customer with the flexibility to use the latest versions of the software, while giving the publisher control over the supported release timeline.
The “maintenance-thru-date” licensing approach is a powerful tool for software publishers to balance customer needs with their own product release and support strategies.
Reprise License Manager (RLM)
In addition to these core license types, commercial license managers like Reprise License Manager (RLM) often provide various license attributes that further restrict the use of your software. Some common attributes include expiration dates, hardware or IP address restrictions, and the ability to revoke or transfer licenses.
By leveraging the flexible licensing options offered by RLM, including a variety of commercial license types, you can tailor your software licensing to meet the unique needs of your business and customers. From node-locked and floating licenses to metered and token-based models, RLM provides the comprehensive tools you need to ensure compliance, maximize revenue, and protect your valuable intellectual property.
Take the first step towards smarter, more effective software licensing. Explore the capabilities of RLM and discover how it can transform your business with its advanced commercial license types.