By staff

Increase License Server Capacity with Disconnected Use

Cloud Computing Highlights the Need for Increased Server Capacity

Last time, we talked about how an increasing number of software vendors are hosting license servers crowdin the Cloud for their end customers and how client-side caching decreases the load on the license server.  Another requirement for license servers in the Cloud is the ability to serve more clients than a traditional on-premises license server.

To address this challenge RLM supports “disconnected use.”  While a normal RLM client application requires a socket to remain open to the license server for the lifetime of the license checkout, with “disconnected use” the socket is closed after the initial checkout, and only re-opened when the application performs a heartbeat to the license server.

Since RLM v10.0, “disconnected use” allows software vendors to initialize RLM in a way that sets communications with the license server to a “disconnected” mode.  Our internal testing indicates that a license server can support roughly 10 times the number clients using disconnected operation, as compared to the usual connected operation.  The limit with disconnected operation is generally reached when the server can no longer process heartbeats from all the clients in a timely manner.

For a more detailed technical description of this feature, including some performance guidelines, please refer to the RLM Reference Manual section entitled “Disconnected Operation.”

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website

Client-Side Caching Improves Licensing Performance

Cloud Computing Highlights the Need for Client-Side Caching

An increasing number of software vendors are hosting license servers in the Cloud for their end customers. The longer physical distance between client and the license server introduces more network latency.  License checkout times may be slower over these longer distances compared with those over a local area network. Applications with short duty-cycles or massively parallel applications that require frequent checkouts over a short period of time are affected the most. To address this challenge RLM supports “license caching” on the client.

Since v10.1, RLM lets software vendors create licenses that specify a “cache time” in seconds so that when licenses are checked out, RLM will create a cached license on the local client machine.  If the same user on this host subsequently checks out the license before the cache time expires, then the local cached license is used, avoiding a connection to the license server.

To use caching, the license must specify the keyword “client_cache=N” where N is duration of the cache period in seconds. Any license with a client_cache specification is treated by the license server identically to a license with a min_checkout specification.

For a more detailed technical description of this feature, please refer to the RLM Reference Manual section entitled “Client-Side License Caching.”

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website

Token-Based Licenses, part 2

Advanced Use of Token-Based LicensesToken-Based License

Last time, we discussed how to license all your products as a function of a single base license, by using a Token-Based License.  Today, we will talk about the other 2 uses of token-based licenses:

  • create product bundles or packages (much like Package licenses), or
  • let a user consume a more-expensive alternative license when a more-common product is unavailable

If you want to create a product bundle called “office”, and that the components of this bundle are “write”, “calc”, and “present”, you would proceed as follows:   your 3 products would each check out the appropriate license (write for write, calc for calc, and present for present). To create the product bundle, you would create 3 token definitions for the 3 individual components:

LICENSE SOFTWARE_CO write 1.0 PERMANENT TOKEN SIG=XXXX  TOKEN=”<office 1.0 1>”

LICENSE SOFTWARE_CO calc 1.0 PERMANENT TOKEN SIG=XXXX  TOKEN=”<office 1.0 1>”

LICENSE SOFTWARE_CO present 1.0 PERMANENT TOKEN SIG=XXXX  TOKEN=”<office 1.0 1>”

These token definitions define how the products are packaged together, and don’t vary from customer to customer. Now, when your customer buys the office product, you issue them an office license, like this:

LICENSE SOFTWARE_CO office 1.0 PERMANENT 6 SIG=XXXX share=uh

This license allows 6 copies of the office package to float on your customer’s network.   If the same user uses both write and calc, they still only consume a single license due to the share=uh specification in the office license.

As we said before, the best part is that you don’t have to do anything special to start using Token-Based Licenses. You implement the RLM API as you would for any supported license model. No need to create a second version of your product to support Token-Based Licenses – it’s built in.  In each product, check out a license that is specific to that product, for example, “write”.

For another example, let’s say that you sell both write and writerPro licenses, where the writerPro license includes all the functionality of write, plus more.   If your customer has both write and writerPro licenses, they may run into the situation where they are using all their write licenses, and the next user wants to use write, but no licenses are available and yet there are unused writerPro licenses.

If you define a token-based license for write that uses the writerPro license, then your customer can use the more-expensive writerPro license to run write.  That license would look like this:

LICENSE SOFTWARE_CO write 1.0 PERMANENT TOKEN SIG=XXXX  TOKEN=”<writerPro 1.0 1>”

Of course, they would need to have both write and writerPro licenses available for this token definition to do any good since the TOKEN license itself doesn’t authorize any license usage, it is simply a mapping from one checkout request to another.  And in this case, they would want the licenses to be in this order:

  • write license
  • write token definition
  • writerPro license

This order ensures that requests for write first use the write licenses, then if none are available, they would use writerPro licenses.

 

 

 

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website

Token-Based Licenses

Using Token-Based Licenses to Increase Licensing FlexibilityToken-Based Licenses

Once you have mastered the basic license models that all license managers provide, it might be time to take a look at some of the more advanced models.  Token-Based Licenses provide advanced license options that aren’t available any other way.

In prior lives, we invented “Package” licenses, but these turned out to have many problems, most of which are solved by Token-Based Licenses.  In addition, Token-Based Licenses enable functionality well beyond the old Package license.   In particular, a Token-Based License allows you to:

  • create product bundles or packages (much like Package licenses), or
  • define all your product licenses as multiples of a single base license, or
  • let a user consume a more-expensive alternative license when a more-common product is unavailable

Today, we’ll discuss the idea of licensing all your products as a function of a single base license.

If you define a single base license then use multiples of that base license to enable all your products, this gives your customer the ability to mix and match different products from your catalog up to the total limit of the number of base licenses purchased.  This has the additional advantage of allowing your customer to use new products before they have gone through the purchasing cycle for them – the ultimate “try before you buy” experience, since they are using actual purchased licenses to evaluate your new products, and can do so without even contacting a salesperson.

The best part is that you don’t have to do anything special to start using Token-Based Licenses.  You implement the RLM API as you would for any supported license model.  If this is already done, great!  No need to create a second version of your product just to support Token-Based Licenses – it’s built in.  In each product, check out a license that is specific to that product, let’s call it “write” for example.

Next, when you create licenses for your customers, you would create some number of the base licenses.  We will call them “base” for this example.

Finally,  you create a token license that relates a “write” request to “base” licenses.  Typically, this mapping would be generic (ie, the same for all your customers), although you can make the definition customer-specific as well.

You may decide that a v1.0 request for “write” requires 3 v1.0 “base” licenses.  If this is the case, you would use a license line like the following to define the token mapping:

LICENSE SOFTWARE_CO write 1.0 PERMANENT TOKEN SIG=XXXX  TOKEN=”<base 1.0 3>”

This license tells RLM that when a v1.0 “write” license is requested, it should instead check out 3 licenses of the “base” v1.0 license.

Be sure to also include in the customer’s license file the appropriate number of “base” licenses.  For example, if your customer wants to be able to run 2 copies of “write” at the same time:

LICENSE SOFTWARE_CO base 1.0 PERMANENT 6 SIG=XXXX

In the above example, the customer will consume three “base” licenses for each instance of “write” that they run, up to a concurrent limit of 6 “base” licenses, or two concurrent instances of “write”. Additional products can be defined in terms of “base” licenses as well.

Next time, we will talk about other ways to use Token-Based Licenses.

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website

The Floating License

The Floating License – The most common license model

Last time we discussed the nodelocked and nodelocked counted licenses, which are license grants that allows your software to be used on a particular computer, and on that computer only.  A far more common license is the floating license.  The floating license is what mfloating licenseade license managers famous, and it is supported by all major license managers. A floating license allows a specified number of independent instances of your application to run anywhere on your customer’s network so long as that number does not exceed the predefined limit specified in the license.

The floating license was originally made popular when we developed FLEXlm at GLOBEtrotter Software; in particular, Sun Microsystems’ use of floating licenses for their compilers made most software developers aware of the power of this license model. 

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 floating licenses are more appropriate for others.  A mixture of floating and nodelocked licenses can help maximize revenues depending on your customer’s situation.

If your application is meant to be used collaboratively, you might want to use floating licenses.  If you support both nodelocked and floating licenses, then you can usually charge a price premium for the floating license because its usage terms are less restrictive.  Price premiums can range from as little as few tens of percent to a factor of three or more, depending on the usage profile of the software and how it is shared. In general, it’s best to offer multiple license types because it helps you to expand your account penetration by reaching more users.

To implement floating licenses in RLM, specify a license server with the SERVER line, and set the count field of the license to a positive integer.  The license itself has no associated hostid, meaning that it will run anywhere. The license server (specified by the SERVER and ISV lines) keeps track of the number of instances in use.  A floating license always requires a license server, so it is the next step up in complexity from nodelocked licenses.   Neither RLM-Embedded nor RLM-EZ support floating licenses.

Next time:  token-based licenses.

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website

Licensing Solution – Build or Buy?

Should you Build or Buy a Licensing Solution?

Independent software vendors face the question of whether to build or buy a licensing solution.  Build or Buy a Licensing Solution

At first, you may need only a simple licensing model.  You’ll say, “Hey, we’re a software company.  We’re smart. We know what we need, and my guys can whip this thing up over the weekend.”  OK, if you limit the scope of the development project to only the functionality that you know you need initially, then you could build a passable licensing solution. But that approach ignores future needs. Ultimately, “build or buy” is more a business question than a technical one. Do you want to set out on a course to build and maintain in-house solution as your customers and markets change?

Future-proof your licensing

To paraphrase a popular bumper-sticker – “Change Happens.”  A home-brew license manager must be designed to account for change – not just changes in operating systems and development environments, but also changes in end user preferences for licensing models and deployment platforms. For instance, did you envision the proliferation of tablets ten years ago? Did you predict the increasing use of software in-the-cloud? How about license subscriptions?

Breadth Matters

Widely used software license managers, like RLM, are designed to address a wide set of platforms, languages, vendor licensing policies and end user deployment preferences. The added breadth of a commercial license manager helps you to respond quickly to competitive pricing threats and to address sales opportunities that require “funky” licensing terms – without waiting for your development team to enhance your home-grown software licensing solution to accommodate the necessary changes.

Crowd-testing

When you design your own license manager, your customers are the sole “guinea pigs.”  They are the only ones who can help you find bugs and improve performance of your licensing software.  By using a third party license manager, you benefit from a huge user community banging away on the licensing software, ensuring maximum reliability across a more varied set of usage conditions.

Who’ll draw the short straw?

If you decide to build your own software license manager, who on your team will write it?  We often see software engineers eagerly take on the challenging task only to discover that it’s not as easy as it looks. Even more common is the dilemma of the “pigeon-holed” engineer who, after completing v1 of the licensing software, desperately wants to move on to a more interesting project.  But instead he is stuck maintaining the licensing system he wrote because he is the only one on staff who knows how it works.  Argh!  I wonder how long he’ll stay at his company?  Who wants to inherit his code knowing that newly introduced changes could cause unintended consequences that could be disastrous to your reputation?

Licensing Experts are truly Rare Birds

The Reprise License Manager (RLM) was designed by experts who have been in the trenches for over two decades. They know what works and what doesn’t forBuildor Buy a licensing solution ISVs and their customers. They are passionate about this technology niche, and take pride in solving difficult licensing challenges with relative ease. If you “buy” rather than “build,” these guys become your in-house licensing experts… who won’t leave you high and dry.

Buzzword Alert!

Core Competencies – Time-to-Market – Opportunity Costs. These well-worn phrases remind us that we should stay focused on what we do well. Your development effort should be directed toward making your innovative products more robust and competitive. Developing your own license manager distracts from that focus – it will slow your progress and will result in longer release cycles causing you to potentially miss some important sales opportunities. When you choose a 3rd party license manager, the time you save could be used to widen your competitive lead and to integrate licensing more tightly into your CRM or Order Management system.

Street Knowledge

You want to support not only standard licensing models, but you also want to leverage your customers’ knowledge of licensed software to minimize their learning curve with yours. End customers are willing to tolerate a few different license managers, but not dozens.  If your license manager is significantly different from others, your prospective customers may reject your solution.

Conclusion

Stay nimble. Stay focused. Choose a software licensing solution provider who knows what works well, and will remain your long term trusted partner.  Don’t be lured by the hope of saving money by writing your own. Today, 3rd party software license managers are affordable for companies of all sizes. In the long run, a third-party solution is the best business choice.

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website

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.

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website

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.

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website

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.

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website

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.

Help for RLM license administration

- view the RLM License Administration Manual here
- Visit our license administration help page here

Written by Reprise Software - Visit Website