Understanding Licensing

The primary goal of adding licensing logic to your software is to ensure that anyone using your application has access to what he or she is entitled to, for as long as he or she is entitled to it - nothing more, and nothing less. This topic summarizes some of the many different ways of managing access to your application.

Common Restrictions

You can chose to implement a variety of restrictions to limit the use of your application. The most common restrictions available with Instant Protection PLUS 3 are described below:

Time

The most ubiquitous restriction is limited time. This is where licensing restricts the amount of time the application may be used before a purchase is required. This includes the "Start my application as a trial option" and also the periodic/time-limited activations. With time-limited licenses, your application can be set to use the Download Until date in the license file to enforce the expiration date.

Features

Limitations on application features can also be implemented in a variety of ways.

First, applications that contain features which should be evaluated may want to make sure the feature is only used a reasonable number of times without allowing indefinite use.For these scenarios, the license file must have write access, as it allows your application to use any of the numeric, user-defined properties to keep track of uses/counters. An example of this scenario could include an application that transfers videos to a portable device, where the application might only permit the user to transfer a handful of such files during evaluation (so users feel comfortable it works as expected before purchasing). After the user purchases and activates the application, he or she can then be allowed to transfer any number of videos.

In other cases, applications might have features that could alter output in a way that would require purchase for practical use. For example, if the application produces some kind of document output (such as a PDF document), it could overlay a word or phrase (like "DRAFT COPY" or "EVALUATION VERSION") on the document to prevent practical use of the application's output until a license has been purchased and activated.

Other applications may simply have features completely disabled during the trial evaluation. An example could include image manipulation software which shows a limited preview of its output, but does not allow the manipulation/transformation to be applied to the photo and saved during the evaluation.

Furthermore, it is sometimes best to license additional features as if they are each their own application. One example of where this may be appropriate is an application which is licensed itself, but also supports dynamically loading additional plug-ins at runtime. The additional plug-ins which add additional features and functionality to the application could then be evaluated, purchased, and activated independently from the application's license.

Uses

Another common restriction is the amount of times the application may be used or run. This is where the application may only be run or used for a given number of times, before requiring purchase for further use. For these scenarios, the license file must have write access, as it allows your application to use any of the numeric, user-defined properties to keep track of uses/counters.

Common License Models

A license model simply describes any type of license you may wish to support in your application, which typically also provides an abbreviated way to describe the type of restrictions enforced.

Trial/Evaluation

Evaluation (also commonly referred to as trial, demo, or shareware) licenses are licenses issued to prospective customers. Evaluations provide an opportunity to set a good impression with your prospects, which often compels them to make a purchase to continue using your application. Additionally, an evaluation by a prospect could be a collaborative effort, so this can also afford your prospects the freedom to share the software amongst colleagues freely. This enables you to increase exposure of your application, which can lead to an increase in sales. There are two primary means of allowing prospects to evaluate your software.

Instant Protection PLUS 3: Start my application as a trial

Although it is possible to implement evaluations of your application that require the customer to activate before it starts, this is not a requirement of Instant Protection PLUS 3. This approach installs a license file on the user's machine and does not connect to SOLO Server to run the trial. Using aliases makes it difficult for users tamper with the license file or back-date their computer to gain additional time. Activating with Trigger Code 20 or 21 can extend the use of the trial. The aliases also remain on the computer when your application is uninstalled so that re-installing your application does not afford the user a new trial period. Relying on aliases in your application can be preferential for many reasons, including:

Keep in mind that the above reasons might make it look appealing to implement the recommended evaluation functionality, it is only reasonable to also mention potential drawback:

Requiring the user to activate a license to use the trial

There are some cases where it may not be acceptable for just anyone to install the application and automatically receive an evaluation. This could, for example, include cases where purchase and/or activation is required to evaluate the application. Requiring activation can give you more control over who is using your trial, but will require you to give them a license to activate online or take the time to activate them manually.

Our recommendation is to configure your product option in SOLO Server:

Periodic/Time-limited

Periodic licenses are time-limited licenses (similar to evaluations) which always require an activation to be used. This type of license model is suitable for scenarios where users are required to periodically pay to renew license to use the application. Use Trigger Codes 10 or 11.

See the Periodic Expiration step of the Instant Protection PLUS 3 wizard or view the tutorial on Periodic Activations for more information.

Non-expiring

Non-expiring licenses (also known as perpetual licenses) are licenses which, once activated, never expire. While this means that the license to use the software never expires, it is also common to use non-expiring licenses in software while using SOLO Server to maintain a subscription that affords your customers technical support and version updates. Use Trigger Code 1 for just a non-expiring license. You can also use Trigger Codes 2-6, which will set a non-expiring license and also pass down a data value.

Feature/Modular Application

A Modular Application is one that contains several components that can be independently licensed. An example of this is an accounting package. The general ledger, payroll, accounts payable, and accounts receivable modules may be shipped to the end user, but only the modules purchased will be active upon execution. Later, a Trigger Code can be given to the user to change the licensing information after payment arrangements have been made. A single License File can be used for all applications. Bit Fields can be set up to store the state of the various modules.

You may use two methods for modular licensing.

The first method is when each module is a separate application. In the Instant Protection PLUS 3 wizard on the Activation Options page is an option "This is a modular application". Checking this and selecting a bit in the drop-down allows the protected application to verify a bit field in the license file in order to run. If you have a suite of products you can have them all share the same license file, and each individual product corresponds to a bit in the license file. When activating you would use Trigger Code 3 or Trigger Code 4 to activate the application. The data code sent with the Trigger Code contains the bits to set in the license file. The bit field is limited to 14 bits.

The second method is used for enabling/disabling modules in a single application. Activating with Trigger Codes 3 or 4 will store the extra data in the license (in numeric field 22). You may then use the Instant Protection PLUS 3 API to read the field from the license file and check which bits are set. With this method you may have one product that could have features disabled such as menu items. If a certain bit is set in the license file you can have the menu become enabled.

See the tutorial on Modular Applications for more information on the second method.

Network Floating License

Important

Network Floating Licensing is no longer supported. If network licensing is required, the Protection PLUS 5 SDK supports network licensing capabilities.

Network Floating Licensing is where an application may be restricted to running on a specific network, and restricted to a certain number of concurrent seats (where a seat may be a user or running instance of your application). Network floating licensing is not supported in Instant Protection PLUS 3. See this blog post for more details about network floating licensing.