There are two types of timeout events in RLM: connection timeouts, and idle timeouts. Let’s dig into each of them a little bit deeper.

Connection Timeouts

Connection timeouts occur when a client application takes too long to connect to one or more RLM license servers. Users can change the default connection timeout value from 10 seconds to as low as 5 seconds by setting an environment variable. If set to a negative value, the connect timeout will be its absolute value, and if any particular server connection times out, no further attempts will be made to that server. If set to a positive value, a connection will be attempted to the server even if it timed out on the last attempt. The latter example is the default behavior in RLM.

Skipping over License Servers

RLM also keeps track of which license servers in its license path list have an ISV’s server running on them. If either there is no ISV line for that ISV in a local license file, or an attempt is made to check out a license from a server and the RLM server returns a status indicating that this ISV is not present, then the server is flagged as not having that ISV server.

In a multi-server environment, it doesn’t make sense for an application to repeatedly attempt checkouts from servers that are known not to be serving its licenses. So, application developers may choose to “skip” these license servers. Note that by default, RLM will attempt all operations on all servers.

Idle Timeouts and Heartbeats

Most users want the license server to reclaim licenses from applications that become idle for too long. This ensures maximum utilization of floating (shared) license pools.

The RLM license server expects to hear from client applications periodically as a way for applications to tell the server that they are still active. Normally, this is done by sending “heartbeats” from clients to the server either automatically or under the direct control of the application itself.

Some software vendors may decide to inform the server that an interactive application is idle while waiting for user input. This allows the application’s license to be reclaimed by the server when the application waits too long for user input. When the user eventually “wakes up” the formerly idle application, it will attempt to reclaim any lost licenses from the server.

When licenses are timed out by the server, they are essentially checked back into the pool for use by others. This event can be recorded in a server report log, if desired.

User Control of Idle Timeouts

An end-user can specify a TIMEOUT value for any idle license. If the license remains idle for this amount of time, the license server performs an automatic check-in of the license and informs the application (if it is still running).

Software vendors can set a MIN_TIMEOUT keyword in a license that specifies the lowest value that an end-user can set for the timeout value of a license. If not specified in the license, the RLM default minimum of 3600 seconds (1 hour) is used.

Consider your options
The usual licensing strategy for server software is to lock it to a physical host. This provides some degree of protection from installing and running on multiple hosts, but it does not necessarily represent the optimal approach in terms of maximizing your revenue or customer satisfaction.

What’s missing?
First, there’s the notion of scaling. Do you really want to charge the same price for every site? You need some way to charge more when your software is used more. Perhaps you can sell multiple node locked servers to larger sites, or even charge relative to the number of cores on the machines, the rationale being that there is the potential to get more use from machines with more horsepower.
Float your server licenses
If you want your customers to have the flexibility of installing and using your server on many machines without having to license them separately, perhaps you should use a floating license manager that ensures that no more than a predetermined number of concurrent server copies can run at the same time. With floating licensing, you issue a license key with a count, and lock only the license server, not each user node.

Size matters
Another approach could be licensing by some other scaled metric: how many records can be maintained in the database, a count of named users, etc. Each of these metrics can be encoded into a license key, allowing the server software to know when it starts what level of service to enforce based on the license key scaling parameters. A single version of your software could then enforce the appropriate size limits on a site by site basis.

Using a license manager, such as RLM, could also give you even more control of how your software behaves within a virtual machine. You could even license by platform or by the site’s timezone.

In any case, using a license manager gives you the freedom to change with your license policies.

There are a few basic guidelines that should be followed when integrating licensing into you software application. Adherence to these guidelines, while not strictly mandatory, will be greatly appreciated by your end-users who will see more consistent implementations from ISV to ISV.

In an attempt to clear up some confusion and provide a little education on the not-quite-fascinating subject of license servers, we'll go over various licensing scenarios and what is involved, server-wise.

Many benefits can accrue to those independent software vendors (ISVs) that incorporate a license manager into the products they sell.

One of those benefits is the ability to give users a license that will allow them to remain in compliance with the terms of their software license after they've disconnected their laptop from the corporate intranet.

Traditional software licensing models are being challenged by new hardware and software deployment options. Gone are the days when users had to own their hardware infrastructure. Gone are the days of getting approval for the purchase of big ticket items like servers, and desktops, configuring them, and maintaining them to run their perpetually-licensed software in-house.

We've been lucky enough to be around software licensing for 20 years; combined, we have over 70 years of software licensing experience under our roof. It's safe to say that in that time we've seen it all, and then some. Whether it's enterprise end users wanting the best tools to maximize the usage of their valuable software assets, or software vendors wanting that next creative approach to licensing and selling their software, we've been there and done that.

Some pundits have said recently that the global economy is coming out of the recession. True or not, overall business activity is still comparatively slow. We think that a sluggish, yet growing economy presents an opportunity to exploit changes in how you license your software.

Of course many software vendors’ revenues were barely affected by the slump – good for them. But not all vendors are as fortunate. Every software vendor eventually experiences a slowdown at some point. When overall capital expenditures are declining it’s almost inevitable that software vendors will feel the effects too. In addition to redoubling your efforts to improve your core products, the key to successfully riding out a recession is to support an adaptable and creative set of software licensing programs.

Regular readers of this newsletter will already know that the best way to stay flexible is to integrate a license manager within your software. Here are some ideas for your marketing/sales teams to create new programs to help you weather the storm.

Streamline your Licensing Operations
Perpare yourself for growth by setting up a more automated licensing system can help you save money on labor costs, while improving customer satisfaction and increasing sales. When a prospective customer requests an evaluation of your product, you can send out an “evaluation key” that can be redeemed for a temporary license over the Internet that will be valid during the evaluation period. The best part of this tactic is that you know exactly when that license will expire, and perhaps when to contact the user to see if your product fits his needs. You then can either extend the evaluation by issuing a new “evaluation key” or convert the trial into a sale. For paying customers, you can allow them to self-serve their license keys using the same activation infrastructure.

New Pricing/Payment Models
Slow sales mean that it’s time to get creative with licensing. If you are now selling only permanent licenses, consider going to time-limited licenses, both to add recurring revenue and to avoid “giving away” value. Try selling annual licenses to reduce the upfront cost of your licenses. Price the annual licenses at a level that will increase your revenue over time. Also consider a pay-per-use scheme for those customers who prefer it.

Modularize your High-Value Components
Some software vendors use an economic slowdown to decouple some of their high-worth software modules from their basic product so that overall prices can be reduced while still capturing higher revenue from those customers who require the more expensive options. The lower cost of the basic version can open up new accounts and increase your market share as well.

“Productize” what you used to give away for free
We’ve talked to a lot of companies recently that are not, strictly speaking, software companies at all. It turns out that many technology companies often “throw in” software as a kind of “enabler” or loss-leader, focusing instead on collecting revenue from hardware sales or consulting fees. Let me suggest that wherever there is perceived value in these software applications, there is also potentially untapped incremental revenue.

Increase your Maintenance Subscription Rate
License Managers are very useful tools to ensure that your customers use only the software versions for which they have paid support fees. Try using the version number field in your licenses to encode a support-expiration date in the form yyyy.mmdd (2009.0531). Let a license manager compare it to the “release date” of each version so that your customers must remain current with their maintenance payments in order to access new releases.

Expand your Sales into New Regions
Use a license manager to restrict licenses by time zone or region to penetrate new markets at a much lower cost. Sales gains can be realized by charging a premium for licenses that allow use across wider geographies. Encourage additional license purchases from organizations whose software usage spans geographies.

Deepen Penetration within your Existing Customers
Often the best source of new license revenue is found within your existing customers. Not all users within a customer are the same. So try creating product classes that are specific to each different user type. A license manager makes it easy to build one binary that takes on different functional behaviors (“lite”, “basic”, “advanced” etc.), each one determined by the specific license key you issue. You can later sell upgrades by supplying an additional license key to turn on greater functionality. The pricing of these various classes of licenses should match the value that different user types ascribe to your software. Examine software usage patterns to create a balanced set of licensing options that appeal to the widest audience within your best customers.

Find a lower-cost Licensing Vendor
While you are looking for new revenue sources, you might also consider making changes on the other side of the ledger. If you are tired of paying excessive fees for your third party license manager, maybe it’s time to consider a lower cost alternative. Reprise Software is in the sweet-spot in this regard – providing a world-class license management system at a much more affordable price.

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