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.

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.

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.

User Benefits

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

ISV Benefits

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.

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 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.

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.

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.

RLMgen program

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.

RLMsign Utility

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.

Summary: The RLM settings files provides a convenient method of upgrading license servers in the field. The settings file consists of the ISV-specific information in the RLM license server making it easier to upgrade your customers. Read on about the example use cases and benefits of using RLM ISV settings files.

The Basics

The server side of RLM consists of two programs: the rlm server and the ISV server. The rlm server (rlm[.exe]) is generic – in other words, it contains no executable code that is ISV-specific. The ISV server, on the other hand is specific to an ISV, as it encapsulates at a minimum, the ISV’s name and its public encryption key. The ISV server’s file name is <ISVname>[.exe].

Settings Files Introduced

Starting with RLM version 6.0, an alternative to the traditional packaging of the ISV server as an executable file became available. This alternative is the settings file, a small data file (several hundred bytes) containing the ISV’s unique server settings. The platform-independent settings file is built automatically during the RLM build process and is encrypted and authenticated. When a settings file is present at server startup instead of an executable ISV server, the generic rlm server spawns a copy of itself. The spawned copy reads the settings file and takes on the “personality” of the ISV server – it becomes a 100% functional equivalent of the old-style executable ISV-specific ISV server, but with one caveat. If you use ISV-defined hostids, then the actual ISV server binary program must be used – not the settings file.

The Benefits of Settings Files

As we mentioned above, the settings file externalizes the unique elements of the ISV server executable, making the ISV server completely generic. Consequently, these generic programs are always available on all supported RLM development platforms. When a server upgrade is necessary, the ISV can more quickly deploy the generic server than ISV-supplied programs because they don’t have to go through the ISV’s usual development/QA/release cycle. A couple of additional benefits accrue:

Because the settings file is platform-independent, the ISV can support server platforms that they do not have in-house. The ISV still needs to purchase a license for RLM on non-inhouse platforms, but they do not need to actually have those development platforms. This allows ISVs to support server platforms that are requested by their end users without having to actually build RLM on these platforms.

Because by default the ISV’s settings file works with any RLM version after v6, the process of upgrading RLM versions on the server side in the field becomes almost trivial. End users simply download and install the latest generic rlm server version.

Usage Example

As an example of easy server upgrades, consider an end-user site running a v7 rlm server and settings file for ISV “abc”. They run into a bug (P188), which is a case-sensitivity problem with RLM_PROJECT. This bug is fixed in RLM v8.0. Since the fix is implemented entirely on the server side and the server side executable is entirely generic due to use of a settings file, the end user can get the fix simply by downloading and installing rlm[.exe] from www.reprisesoftware.com. There is no need for the end user to wait for the ISV to adopt RLM v8 – the fix is accessible to the end user the same day as v8 is released.

Several customers have recently asked us if any software vendors who use RLM for licensing have extended Salesforce.com to handle licensing information. The answer is yes. One of our customers who uses both RLM and other older licensing technologies has written an integrated web service and activation API that ties into Salesforce.com.

This RLM ISV has extended Salesforce and created a new License object (or table) which is associated with a Salesforce Account. When they make a license sale they create a new License record in Salesforce and populate it with parameters pertaining to the product license (node locked / floating, count, licensed modules, expiry etc). When this information is saved an “activation code” is generated and saved along with the rest of the licensing options. The activation code is something unique that can identify this record in Salesforce.

Their support desk sends the activation code to the end customer and he/she downloads and installs the application program. This activation code can then be entered into the application which connects to the ISV’s own internet license activation service. The information submitted includes the activation code along with hardware information, or HostID. The license service is responsible for connecting to Salesforce and generating the RLM license. For transactional purposes they also store this generated license in Salesforce. The license is returned to the application and saved locally on their machine.

Using ‘Vendor Defined’ Optional Keywords

Since license policy in RLM is defined largely by license keys, a single binary version of your RLM-based application can support many different license policies. Once RLM is implemented, you can address ever-changing business rules by simply varying the type of license keys that you issue. RLM can support a wide range of licensing options and policies, many of which have been covered in previous articles on this blog under the “technology” heading.

This article briefly discusses a few optional license fields. The following license keywords can be classified as ‘vendor defined’ options as they are not used by RLM to determine policy, but can be accessed by your application to further restrict usage rights or present information to the end-user, such as in a start-up splash screen. These optional fields are factored into the license’s digital signature, so they are not editable by your customers. The fields are described below:

Options= if your product has many separately-purchasable sub-features,

you can list the ones which are licensed in this string. Some examples of how this might used include: limit the number of database records that can be created or accessed, or the number of accounts that can be open, or the number of ports that can be accessed, etc.? This information can be entered into the ‘options = options_list‘ field and it must be parsed by your application.

Contract= can be used to hold the customer’s purchase information or software agreement number. This can be displayed to the end-user to validate a support contract, etc.

Issuer= could be used to identify the organization that issued the license, such as a third party distributor, or reseller, etc.

Customer= used to identify the name of licensed customer and can be displayed by your application. Displaying this information in an “about box” or splash-screen can be an added deterent to unauthorized use. It is unlikely that Mega South-East Airlines would want to use a license that was issued to Main St. Bank.

Type= used to identify the type of license and is a string containing one or more of the values:

“beta”

“demo”

“eval”

For example, type=”beta eval” or type=”eval”. The contents of the license type field are then used by your application to put your software into the appropriate mode of limited operation or usability.

The biggest industry players are driving the cloud movement. Platform vendors such as Amazon.com, Google, IBM, Microsoft, and Salesforce.com are leveraging their enormous investments in computing hardware and advanced virtualization software to build on-demand computing infrastructures. Corporate users, tired of paying to maintain in-house iron, are increasingly looking to reduce costs with cloud computing, while at the same time simplifying procurement, decreasing acquisition time, and adding unprecedented throughput potential.

Users can obtain “hardware on the fly” to run any operating system on arbitrarily large servers – “in the cloud.” These virtual systems may persist indefinitely or disappear when no longer needed. The software on them may be used for only a short burst of time – just enough to get the job done – measured in days or even hours. Likewise, paying for “cloud-time” is easy, often paying with nothing more than a credit card.

The most common problems facing ISVs who use a software license manager to license their applications in the cloud are the following:
– license keys locked to hostids may become invalid between instances,
– license servers used to enforce concurrent or floating licenses are too complex for cloud customers to manage,
– license models that rely on usage records are too hard to retrieve.

The critical technology change in RLM v9 to accommodate cloud-based software deployment is in the ability for software vendors to easily create and manage license server farms. The idea is that ISVs create these farms on their own servers, and run multiple instances of their ISV server within the farm to serve licenses to all customers who are using cloud-based products.

What problems does this solve?

By being able to run multiple license servers on the same computer, an ISV can eliminate the problems mentioned above. Specifically, licenses deployed in the cloud point back to the appropriate license server in the farm, so no local (cloud) hostids need to be checked and the user no longer needs to set up a local license server. Also, since applications deployed in the cloud must contact one of the license servers in the farm, ISVs can easily gather license usage information used to produce periodic post-use invoices for their cloud-based users.

What’s best is that you don’t have to create a separate “cloud-enabled” version of your application. Your off-the-shelf version will work just fine because this solution is a part of RLM’s the new v9 license server, and is governed by the license keys that you give your customers.

Of course, the value of this new functionality is not limited solely to users in the cloud. ISVs who want to simplify the deployment of their floating licenses for their traditional customers can set up license server farms for them as well.

Archives

Subscribe

About Reprise

Reprise Software is a premium provider of license management software with an extensive and growing set of customers in more than 20 countries. Our flagship product, RLM, protects the revenue streams of hundreds of ISVs and yields the maximum use of licensed software for thousands of end users. We continually enhance RLM along our fundamental principles of flexibility, simplicity, power and value. www.reprisesoftware.com