From For Publishers

Various topics pertaining to the technology of license management, both internal to license managers and the use of license managers in software products.

Software Trials without the Internet

Creating Software Trials without the Internet

Most software vendors offer trial copies of their software to potential customers for short-term evaluations.  The trial may run in full or reduced-functionality mode, but only for a short time, 30 days or so.  Sometimes, they want to create software trials without the Internet being available.

Ideally, the evaluation/trial starts when the user is ready, not when he/she first requests the evaluation.  While it’s possible to use an on-line activation system to implement the “start when I’m ready” functionality, that of course requires an Internet connection.

Commonly, vendors use an Internet activation system such as Reprise’s Activation Pro to authorize trials. This works well when the customer has an Internet connection, but what do you do when there is no Internet connection? For instance, what happens if the user is flying at 35,000 feet, or simply has no Internet connection?

RLM offers a capability called “detached demo” to handle this case. Through RLM, your application creates a short-term license that authorizes your product to run for ‘n’ days… without an Internet connection. After the demo period ends, RLM ensures that the user can’t reinstall the demo on the same machine. It allows one demo period only.

The benefits to this approach are clear – when the user is ready to test your software, he gets access for the full n-day period, even when disconnected from the Internet. This experience creates higher customer satisfaction, reducing the common claim: (“I couldn’t find the time to test, can you please send me a new eval key?”) and should result in a increased sales.

Licensing vs. Activation

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

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.

Activation
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:

  1. End user installs the licensed application (from media or via an Internet download)
  2. End user runs the licensed application for the first time, no valid license is found (not yet activated)
  3. 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
  4. The licensed application connects to a pre-determined activation server URL using an API call (via standard http)
  5. 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)
  6. The activation server validates the activation key, generates the corresponding license, then records the transaction in its database.
  7. The newly minted license file is then transmitted to the licensed application where it is written into a folder on the user’s disk
  8. 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.

How many licenses can a license server serve?

So, How many licenses can a license server serve, you ask?

This question “how many licenses can a license server serve” has come up since the beginning of time (or at least since 1988). The answer is, of course, “it depends”.

What does it depend on? Well, for license managers like RLM or FLEXlm (FLEXnet publisher), which uHow many licenses can a license server servese TCP/IP connections for clients, it depends on the configuration of the license server’s OS. The typical answer is somewhere between 6,000 and 15,000.  That is the answer we have given since 1988, and it hasn’t changed much.  This rough sizing has worked well for the past 28 years, when license servers were deployed on-premesis and for larger customers, licenses were split between multiple server instances.  This architecture does not work well when an ISV wants to serve licenses for all their customers in a cloud-based license server.

To support cloud-based license servers, in RLM v9.0 (Dec, 2010) we introduced support for license server “farms”, to allow multiple copies of a license server to run on a single machine.  These license server farms allow the number of clients to scale with the number of license server processes. Also, in RLM v10.0 (Jan, 2013), we introduced support for “disconnected clients”.  While this still uses TCP/IP, the client does not keep the connection to the license server open for the life of the license.  Our tests show that a server can support an order of magnitude more disconnected clients than “traditional” clients.  So 100,000 disconnected clients per server is a good rule-of-thumb.

Of course,  there is also the question of the relationship between the number of licenses installed on the license server, and the number of simultaneous clients using those licenses.   There can be far more licenses installed on the server if the actual usage is a low percentage.

All of this came into focus for us recently during a support interaction with one of our customers.  This customer was hosting a license server for all of their customers; this license server has over 220,000 licenses in over 13,000 distinct “license pools” (representing somewere between 6,000 and 10,000 individual customers).  The point of telling you this is twofold:  first, we would never recommend configuring a single instance of a license server this way, and second, that it actually works, in production, to serve this many licenses for this many clients.

What would we recommend?  Since RLM supports “license server farms” to scale the number of clients, we would recommend putting no more than 1000-2000 distinct customers on an individual license server, and running multiple copies of the license server on the server machine.  So in this case, we would recommend 7-14 separate license servers, and adding more servers as the number of customers grows.  And we would also recommend using disconnected operation so that even if the number of concurrent clients approaches the license limit on the server the number of clients will not get too high.

But at the end of the day, even this heavily-loaded server continues to operate in production for our customer.

Supporting Resellers with Activation Pro

Supporting resellers with Activation Pro can be accomplished quite easily. Let me share with you how to set up Activation Pro so that you can sell directly to end users, while also supporting a reseller channel.

With RLM Activation Pro you create activation keysSupporting Resellers with Activation Pro for orders from your customers. When you create a key, you can assign that key to a contact at the customer.  Usually, the contact is your direct customer, but if you support resellers, you can set up each reseller as a “contact” within your Activation Pro site.

Activation Pro lets you generate keys in bulk. So when you set up a reseller, you will generate batches of activation keys that correspond to the product licenses that your resellers are allowed to sell, assigning those keys to the contacts at each reseller. As your resellers make sales, they will issue an activation key from the list that they received from you, until they exhaust their supply, and need more. To replenish their supply, you simply generate new batches of keys as before.

The activation keys can be in the standard form that Activation Pro supports (nnnn-nnnn-nnnn-nnnn ), or you can assign a prefix to each to indicate that the activation is a reseller key. The prefix could be generic, the same for all resellers, or it could be different for each reseller.  This would allow you to know at a glance which reseller was assigned which key.

With the Activation Pro administration interface, you will be able to see the detailed fulfillment data saved as a result of sales made by your resellers. If you want to retrieve the contact information of the ultimate end user customer, you can prompt the user for this information at activation time.  This data can be stored as “logged data” within each fulfillment record. This logged data can be retrieved and imported into CRM or business systems for use there.

Importantly, you can set up an activation web portal for your customers, including one for each of your resellers. This will give your resellers a way to check the status of their assigned activation keys and fulfillments online via the web.

NodeLocked Counted License

Another simple license model – the NodeLocked Counted License.

Last time we discussed the nodelocked license, which is a license grant that allows your software to be used on a particular computer, and on that computer only. The typical nodelocked license is uncounted, meaning that if the software is running on the specified computer, any number of concurrent copies of the software are allowed to run. There is a variation of the nodelocked license called a nodelocked counted license. This license allows the software to be run on a single computer only, but it limits the number of concurrent copies of the software that can be run on that computer.

The nodelocked counted license was originally made popular in the Electronic Design Automation software market.  However, a nodelocked counted license is suitable for situatnodelocked counted licenseions where your software usually runs on a server-class computer, since a nodelocked uncounted license on such a system can provide far more value than a typical nodelocked license locked to a workstation or PC.

RLM supports two flavors of nodelocked counted licenses: single and counted.    The single license is a special case of a node-locked counted license which does not require a license server, so it is as simple to administer as a nodelocked uncounted license.  The general case of a nodelocked counted license does require a license server.

As we discussed in our blog post describing the nodelocked license, having several license models in your price book allows you, as a publisher, to price differently depending on your customer’s situation, which allows you to capture the optimal amount of revenue for a particular customer.  Nodelocked uncounted licenses may be appropriate for some of your products, while nodelocked uncounted licenses are more appropriatre for others.  A mixture of floating and nodelocked licenses can help maximize revenues depending on your customer’s situation.

To implement nodelocked counted licenses in RLM, set the count field of the license to either “single” or a positive integer, and specify the hostid of the computer in the actual license. A nodelocked single license does not require a license server, so it is as simple as a nodelocked uncounted license to deploy. A nodelocked counted license with a count (even if the count is 1) does requrire a license server, so it is the next step up in complexity.   RLM-EZ does not support nodelocked counted licenses.  

Next time:  floating licenses.

Maintenance-Thru-Date Licenses

Creating Maintenance-Thru-Date Licenses

Many software publishers wish to issue a license to their customers which allows the customer to run (forever) any version of the software which is released before a particular date.  We call this a “maintenance-thru-date” license.  A typical example is that the customer is allowed to run any software released up to 12 months after their original purchase of the software.  If the publisher releases a new version in 11 months, the customer can use this version as well, but they cannot use any version which is released more than 12 months later.

A “maintenance-thru-date” license is implemted with a “date-based” version.  Briefly, you request a version of your software which encodes the release date, and you generate licenses with versions that specify the last release date which can be used.

To implement this in your product, do the following:

  • set the version field of the license to a date, in the format yyyy.mm,
  • specify the version in your call to rlm_checkout() in the same date format, with a date corresponding to the date of release.
  • When you issue licenses, issue them with a version number corresponding to the expiration of their support.

For example, if you want to issue a one-year supported license in May of 2016, you would issue a license of version 2017.05 to your customer. When you release your software in December of 2016, you would request version 2016.12 and the 2017.05 license would work for this version of your software.  When you release again in July of 2017 (with a requested version of 2017.07), your customer will not be able to run that release of your software.

It is certainly possible to use other date formats, however, the format above is used by RLM Activation Pro and it seems as good as any.

 

Intergraph SG&I Switches to RLM for Flexible License Management

INGR_Color_CMYK_Logo_480pxAfter years of license management issues with another technology provider, Intergraph Security Government & Infrastructure (SG&I) decided to evaluate a new solution that was easy to use, flexible enough to fit our evolving licensing models, and capable of supporting our clients’ diverse licensing needs. With these criteria in mind, Intergraph SG&I has made the switch to Reprise Software’s RLM.

In early 2014, Intergraph SG&I approached Reprise Software to evaluate RLM. During our evaluation period, we found RLM to be everything that we needed in an enterprise-class license management technology. With an elegant graphical user interface, RLM delivers an intuitive user experience for our team. RLM has the flexibility to fit our changing licensing models and business needs. Reprise also has a customer support team that is eager to meet our requirements, friendly to work with and experts on the technology’s capabilities. With RLM, we hope to achieve:

  • Better security for us and our clients
  • Easier license management across our portfolio of products
  • Easier license authentication process for our clients
  • Shorter custom development cycles
  • Lower licensing management and operation costs
  • Easier product and customer transitions

Over 2015, Intergraph SG&I will begin migrating its product portfolio and customers to RLM. Based on the success of its initial RLM implementation and migration, Intergraph SG&I plans to transition its entire product portfolio leveraging RLM over the next few years. The first products using RLM will be released in late 2015.

About Intergraph

Intergraph helps the world work smarter. The company’s software and solutions improve the lives of millions of people through better facilities, safer communities and more reliable operations.

Intergraph Process, Power & Marine (PP&M) is the world’s leading provider of enterprise engineering software enabling smarter design and operation of plants, ships and offshore facilities. Intergraph Security, Government & Infrastructure (SG&I) is the leader in smart solutions for emergency response, utilities, transportation and other global challenges. For more information, visit www.intergraph.com.

Intergraph is part of Hexagon (Nordic exchange: HEXA B; www.hexagon.com), a leading global provider of design, measurement, and visualization technologies that enable customers to design, measure and position objects, and process and present data.

© 2015 Intergraph Corporation. All rights reserved. Intergraph is part of Hexagon. Intergraph and the Intergraph logo, are registered trademarks of Intergraph Corporation or its subsidiaries in the United States and in other countries. Other brands and product names are trademarks of their respective owners.