Using RLM refresh-type activation to support short-term renewable licenses
Consider these licensing system requirements:
- The system must be able to generate a time limited and trial licenses.
- The trial version will automatically become a “full version” when the customer purchases a license.
- Full licenses are also “time limited”, i.e. customers can purchase packages of 30, 60, or 90 days.
- Each time the application starts, it must validate that its license has not yet expired.
- The application must be able to operate “off line” for a specified period of time: if the license cannot be reactivated at the expiration of the allowed off-line period, then the license is suspended and the application cannot start.
- Upon first reconnection, if the user still has a valid license (has not been terminated), the license is reactivated, the off-line allowed time is restored and the application can be run again.
Supporting the Concepts
Using the optional RLM add-on product, RLM Activation Pro, a refreshable license is one that is intended to be reactivated frequently and receive a license with a new expiration date with each reactivation. Refreshable licenses are typically of short duration (days). The ISV is assured that the maximum period during which the end user can run the licensed application is the duration of the refreshable license, say 30 days.
For example, if the ISV specifies a 30-day refreshable license, then the license will be good for 30-days after each activation. If the refresh operation fails for any reason, such as the lack of Internet connectivity, then the license is still good until the end of the 30 day period – enough time to resolve any connectivity issues. This allows the customer to operate off-line until the license needs to be refreshed.
Refreshable licenses also give the ISV a way to revoke a license should that user fail to meet contractual obligations, for example. The ISV can simply disable the user’s license on the activation server, and refresh attempts of that license will fail from that point forward, or until it is re-enabled by the ISV.
The client side of refreshing can be automated, so it can be performed without an undue burden on the end-user. Reprise supplies a “Refresh API” for license refreshing, which the ISV can use from within the application itself, or within a separate standalone utility. Reprise supplies a generic refresh utility that can be supplied to the end-user by the ISV. The generic utility, “refresh_util”, is meant to be set up to run daily as a scheduled task.