Using dongles with RLM
The Reprise License Manager (RLM) comes with built-in USB dongle support, meaning that using dongles with RLM could not be easier. Dongles purchased from Reprise can be used as a standard “hostid” to which licenses can be locked. The principal advantage of using dongles is to provide a convenient way for your customers to transfer licenses when machines are replaced or upgraded. Software applications, with a valid license, can be used on any machine as long as the dongle specified in the license is attached.
ISVs who prefer to support their own dongles with RLM can do so by way of an ISV-defined host ID. ISVs can choose a simple, low-cost dongle because RLM needs only the dongle’s serial number at runtime. ISVs then write a routine to retrieve the dongle’s ID and include that routine within the RLM libraries so whenever a license is tied to the dongle, RLM knows how to call the ISV’s routine to obtain the dongle serial number. Example code is provided with the standard RLM SDK to show how ISV-defined hostids can be integrated into RLM.
Reprise Software has expanded its product line to address license usage reporting and pay-per-use needs of current RLM and FLEXlm/FLEXnet ISVs.
Reprise Software has recently become a global reseller of LicenseTracker’s LT-Analyzer license usage analysis tool enabling your customers to understand their license usage and for you to implement usage based pricing models.
This new product supports both RLM and FLEXlm/FLEXnet. RLM’s report log format is supported as is, and FLEXlm ISVs can take advantage of this new product simply by integrating a small piece of open source enhanced reporting code into their existing FLEXlm/FLEXnet vendor daemon.
By delivering reporting tools, ISVs can let their customers produce license usage reports to support current pricing models. Reports can be used as hard evidence to support fact-based software pricing negotiations, especially at the largest customers.
Usage based pricing can complement current license models. Time or some other metric that fits your licensing strategy can be measured to ensure that customers pay for what they use.
This tool also allows end customers to assign costs to licenses and to monitor usage versus a set budget, and to assign costs across departments or business units who share common pools of floating licenses.
For those ISVs planning to host license servers for “in-the-cloud” customers, LT-Analyzer can be used in-house to collect license data to produce billing reports based on actual cloud-based usage.
The LT-Analyzer product imports RLM report logs and/or enhanced debug log records produced by modified FLEXlm license servers. Useful reports are produced by aggregating logged usage data during the billing cycle.
Global licenses for LT-Analyzer are based on a scaled-revenue tiers, much like RLM and FLEXlm/FLEXnet.
Please contact Reprise Software for more information about functionality or pricing, or to arrange a demonstration.
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.
Defining new Hostids within RLM
RLM comes with a comprehensive set of integrated hostids, but there are times when ISVs need to lock their software licenses to something else. The three most common reasons for ISV-defined hostids are:
- Supporting non-Reprise dongles
- Tying licenses to peripheral hardware devices
- Combining various identifying elements of the computer.
RLM provides the ability to extend the native set of hostids by using your own routines to obtain host identification which is unique to you.
In order to do this, you use the rlm_add_isv_hostid() call in your application. If you want to support multiple instances of your hostid type on a single computer, you would use the rlm_add_isv_hostid_multiple() call.
For more information on ISV-defined hostids, please consult the latest RLM Reference Manual or contact Reprise Software.
RLM License Administration Bundle for License Administrators and End Users
The RLM License Administration Bundle is designed to give license administrators everything they need to maximize their use of RLM-licensed applications, the bundle contains the most-current RLM license server, and a tool, “rlmtests,” to help with license server and network capacity planning.
The RLM License Administration Bundle includes some testing tools that let License Administrators answer questions such as:
- How fast can my license server service license requests?
- How many licensed users can my server handle?
- What will my performance be if I double my current user population?
- When should I split my license inventory into multiple independent license servers?
‘rlmtests’ is totally self-contained, creating the required test licenses and then starting a license server before it runs the tests, finally reporting the results on the screen. The rlmtests utility performs two categories of tests: checkout performance tests and server capacity tests.
With this utility, license administrators and other end users can be proactive about their hardware requirements, matching available hardware to expected needs and developing a plan for hardware acquisition to match the growth in users of RLM-licensed software.
The RLM License Administration Bundle can be downloaded from the RLM License Admin support page: http://www.reprisesoftware.com/admin/software-licensing-downloads.php
SUMMARY: RLM license servers can produce detailed report logs of the license activity of your products. By default, these log files are turned off. This article will explain the potential uses of these report log files, what they are and how to tell your RLM license server to start producing them.
Users of products that use RLM license servers for floating or concurrent licenses use report logs for:
- Proof of internal license compliance
- Allocating costs across departments who share licenses.
- Asset and maintenance cost optimization and budget planning
- Entering into and monitor usage-based software licensing agreements
Software vendors benefit from report logs too. They can be used to:
- Reconcile over-usage
- Build post-use billing models
- Produce audit reports to support future product pricing negotiations
How to turn on RLM Report Logs
There is nothing that the ISV needs to do. The user creates an “options file” for each RLM ISV for which he wants to produce a log file, and adds this line to the file: REPORTLOG +file_path
Also, on the ISV line of the license file, the options file name must be specified.
Format (pre-RLM v9.0): ISV isvname isvname.exe isvname.opt
Format (RLM v9.0+): ISV isvname options=isvname.opt
Other RLM Report Log Features
- Plain-text format is fully documented
- Applications can ensure that report logs are capturing usage
- ROTATE [daily | weekly | monthly | #days ], automatic log file rotation
- Feature names mapped to “product names”
- Authentication to ensure report data integrity
- Anonymized – ensures user privacy
- ISVs can write their own report log records
- 3rd party RLM reporting tools are available from Reprise Software partners
For more information about RLM report log and its format specification, please review the RLM End User Manual.
Reprise Announces Software Activation – RLM Activation Pro
Reprise Software is pleased to announce a new product, RLM Activation Pro. The new product is ready for beta testing immediately on Linux, Mac OSX and Windows, and it is scheduled to be released during Q2 2011.
RLM Activation Pro offers better performance, scalability, access control, and back-office integration options.
RLM Activation Pro provides all the standard Software Activation features, including:
- secure license rehosting
- software activation database built on open source MySQL
- written in open source PHP scripting language
- supports pagination and sorting of displayed data
- secured multi-user access privileges (admin, edit, view) through usernames/passwords
- compatible with existing RLM client activation API call, rlm_activate()
- database conversion utility provided to upgrade from old RLM Internet Activation product
RLM Activation Pro is a separate product, not simply an upgrade to the older “RLM Internet Activation” product. However, RLM Internet Activation (older product) will continue to be supported and is available for sale to new and existing RLM licensees.
For more information, please see http://www.reprisesoftware.com/rlm/software-activation.php
Please contact Reprise Software to discuss new product details.
Recently we received a common question from one of our customers looking for some advice.
Q: My application is a suite of programs that can be licensed in various combinations. What’s the best way to design the licenses in this case?
The answer depends on whether the components are always released on separate schedules or as a group. If the former, then use a separate LICENSE line for each one. This allows them to have different attributes, such as version and expiration.
If the components are always released as a group, then they can be licensed with a single LICENSE, with the specific set of components authorized expressed in the “OPTIONS=” attribute of the license (example below).
If you choose the OPTIONS field route, then the value of the OPTIONS attribute can be retrieved using the RLM api call rlm_license_options(). This call returns the contents of the OPTIONS string so that your application can parse it to determine which features should be enabled.
Example: OPTIONS=”pie bar scatter max_points=1000″
With the release of RLM v9 in December 2010, there are now three basic ways to generate licenses for your customers. Let’s examine your options in order from the simplest to the most comprehensive.
RLM v9 introduces a new graphical, web-based program for generating RLM licenses called RLMgen. RLMgen simplifies license generation by allowing your staff to interactively define products in terms of the kinds of licenses you want to enable them. Separate definitions can be created for eval/trials, periodic pricing models, and permanent licenses. License parameters that are common to most licenses can be defined to apply to all license definitions. Once defined, licenses can be generated by entering the number of licenses, an expiration date, and the customer’s hostid.
RLMgen is especially useful for simple products were there is only one feature per product.
If your products consist of multiple features per license, or if you need to incorporate license generation into your existing automated processes, then using the standard license generation tool provided with RLM could be right for you. This utility program called RLMsign, parses stored license templates then inserts a digital signature into each license that it finds. The result is a license file that is ready to send to your customer.
Since RLMsign can handle arbitrarily complex licenses in each template, it is particularly well suited to support modular products that are sold in an array of different configurations.
API call rlm_sign_license()
RLM also offers a call in the standard RLM SDK called rlm_sign_license() that signs individual licenses in memory. This call is useful when you need to create a custom application that generates licenses, or to integrate license creation into your existing back office infrastructure, when access at the source code level is required.
Reprise Software is pleased to announce that RLM v9 was officially released on Thursday Dec. 16th, 2010.
RLM v9 contains several significant product improvements. Some highlights:
- includes an interactive, graphical license generator.
- allows you to set up an internal license server farm to deploy your applications in the cloud.
- has a license checkout debugging capability.
Of course, RLM v9 contains much more. Please contact Reprise Software for more details.