Support forum
Wyatt Says...
wyDay Home

Types of software licensing

There are many types of licensing, and with these different types of licensing comes different ways to sell your app. This article will cover all of the major types of licensing, give you different scenarios in which you might use them, and how to use them in LimeLM.

Also, you can include all of these licensing methods in your app and choose which one to use at runtime. This means there's no need to create separate versions of your app. This reduces your overall development costs.

Hardware-locked licensing (a.k.a. node-locked licensing)

Hardware-locked licensing "locks" your software to a particular computer. This means a customer that buys one license from you can only use your software on a single computer. If the customer tries to use your app and that product key on another computer, then they won't be able to activate your software.

TurboActivate's proprietary "hardware-fingerprint" technology can tell if the customer is trying to activate on other devices. It can accurately differentiate between having two completely separate computers versus having one computer that has just had minor hardware upgrades (and is really the same computer). And, it can do all of this without you having to mail your customers a separate "hardware-dongle", which reduces your costs dramatically.

How hardware-locked licensing works in LimeLM

The way to add hardware-locked licensing to your app is to include TurboActivate in your app. After adding TurboActivate in your app, the process of locking licenses to a specific number of computers looks like this:

  1. A customer goes to your purchase page (or however you want to sell customers your software).

  2. After the customer's order is verified, you generate a product key in LimeLM, specify the number of allowed activations, and then send this product key to the customer.

  3. They enter the product key in your app and press the "Activate" button.

  4. In the span of less than a second, TurboActivate locks that product key to that particular computer with the following steps:Fingerprint

    1. It generates a “hardware fingerprint” to uniquely and anonymously identify the customer's computer.

    2. This product key and the computer's unique “fingerprint” are sent to an activation server.

    3. If the server allows the activation, then the product key and fingerprint are cryptographically signed (so they cannot be modified) and sent back to the user.

    4. Based on this cryptographically signed block, your app or installer will know whether the user is allowed to use your application or not. And it can do this cryptographic-verification without needing to be connected to the internet.

A more detailed view of how LimeLM and TurboActivate locks your app to a particular computer is covered in the "What is hardware-locked licensing and why choose LimeLM?" article, specifically the section titled: "How hardware-locked licensing works".

Why choose TurboActivate over TurboFloat?

The main advantage TurboActivate (node-locked licensing) has over TurboFloat (floating licensing) is the simplicity of the TurboActivate interface and functionality. With TurboFloat, the customer needs to install a separate TurboFloat Server somewhere on their network, and then, inside your app, configure the TurboFloat library to connect to that TurboFloat Server.

With TurboActivate, the customer just enters a product key, presses an "Activate" button, and TurboActivate "magically" handles all of the details.

So, TurboActivate is the best choice when you want a simple method to make sure customers are running on the number of computers that you specify. With this feature, you will also be able to control whether or not your clients are able to move licenses between computers).

Floating licensing (a.k.a. concurrent licensing)

Floating licensing using TurboFloat, like hardware-locked licensing using TurboActivate, also uses our proprietary algorithm to determine "hardware-fingerprint" of the device to limit who can use your app. The difference between how floating licensing (TurboFloat) works and how hardware-locked licensing (TurboActivate) works is in how a customer uses your app:

Advantages of TurboFloat over typical floating licensing

TurboFloat goes above and beyond the run-of-the-mill licensing you can buy from other licensing companies. We care about the little details. A few of the details that set us apart from the competition:

  1. License lease per-user-session: Every user session on a machine (or virtual machine) requires a separate license lease from the TurboFloat Server. This allows you to increase your profits from customers running your app on Citrix / Terminal Services (TS) / Remote Desktop Services (RDS) type machines (where multiple users run apps from a centralized computer).

  2. "Zombie-lease" prevention: With licensing from other companies, a "zombie-lease" occurs if your app requests a license lease, and then your app crashes sometime before the lease expires. When this happens, the zombie-lease takes up one of the license leases from the pool even though no instance of your app is using it. However, with TurboFloat, when your user re-runs your application on that computer under that user-session, they'll be able to pick up where they left off with that license lease. This feature increases customer satisfaction, which ultimately saves you time and money in reduced need for customer support.

  3. Handle Virtual Machines (even if they're cloned): If you use TurboFloat in your app you'll be able to prevent users who clone Virtual Machines in order to steal "free" licenses from you. TurboFloat differs from typical floating licensing in that it is uniquely designed to handle virtual machines even in cases where the machines are cloned bit-for-bit, which protects your company against fraud.

Why choose TurboFloat over TurboActivate?

There are a handful of reasons why you might want to choose floating licensing (and using TurboFloat) over using the more traditional hardware-locked licensing (and using TurboActivate). Here are the biggest reasons:

  1. The most common case is when your customers need a "pool" of licenses to be used across many computers. For example: a large university that has hundreds of thousands of computers but only want 50 instances of your app to run at any one time.

  2. If your customers are running your app on Citrix / Terminal Services (TS) / Remote Desktop Services (RDS) type machines and you want them to buy more than just a single license.

  3. If the customer is in a completely locked-down network where no traffic is allowed inside or outside of the network, and anything generated on the computer is considered "confidential" or "classified". With this functionality, customers can protect their information by only having it communicate with the TurboFloat server instead of directly with the LimeLM activation servers.

  4. When the customer will be installing your software on virtual machines, and you want to prevent casual piracy by way of virtual machine cloning.

Named-user licensing (a.k.a. per-seat licensing)

Per-seat licensing is a variant of floating licensing. The only difference is that with typical TurboFloat Server licenses, any user in the company's network (or any user who has access to the TurboFloat Server) can request license leases from the TurboFloat Server. With per-seat licensing you specify exactly which usernames are allowed to request license leases from the TurboFloat Server:

Limiting users who can connect to the floating license server

Why choose named-user licensing over typical floating licensing?

You might choose to use named-user licensing if you want all the benefits of the floating licensing plus you want to further limit who runs your app to specific usernames inside a company. This gives you another way to control who uses your application (and a way to sell more licenses).