Electronic License Management (ELM)

Electronic License Management (ELM) is a core feature of SOLO Server, which allows you to maintain control of your software after it leaves your possession. It also allows you to automate the disbursement of software updates while optionally collecting usage information and verifying that a customer's license is still valid.

If you choose not to use SOLO Server, Protection PLUS 5 SDK includes License Manager. This allows you to activate your customers manually but doesn't provide the other ELM features in this topic.


The heart of the software licensing and copy protection is product activation. Every copy of your software must be activated when installed on a new computer. In addition, creating, maintaining, and distributing different builds of your application, where each build fulfills a unique set of licensing requirements, can result in a significant amount of unnecessary effort. Distributing separate builds of your application (each making different sets of features and modules available based on what license was purchased) is less than ideal, as it would be just as possible for anyone to arbitrarily distribute such packages. Instead, activation via Protection PLUS 5 SDK allows a single build of your application to change the state of the license for a computer, network, and/or tailored licensing requirements.

In addition to automating the activation process, SOLO Server also allows you to keep track of activations, allow reactivations on the same computer, etc. These features are not available with License Manager.

Background Checking & Refreshing

Imagine you are using SOLO Server's e-commerce features, you sell a license for your application, the customer activates it, and a few weeks later you find the license was purchased with a stolen or lost credit card. Or another scenario could be that a customer has called and activated your application, and is requesting a new activation claiming his or her original computer is broken and had to be replaced. Protection PLUS 5 SDK APIs allow you to automatically check with SOLO Server periodically to verify the status of the license. Should you encounter situations like the ones described here, you can disable an individual system previously activated or the entire license (and all systems activated with it), and rest easy that the system revoked will soon no longer be licensed and able to run.

Additionally, some applications may require time-limited licenses which are activated (known as periodic or lease licenses). SOLO Server's rich e-commerce features can help you automate accepting payments (even automatic, recurring payment) while making it possible for your software to automatically update its expiration date.  So for example, let's say your customers may only use the licensed application or service for 30 days before payment is necessary again. Once the next payment is processed after 30 days, your application can automatically refresh its license without requiring customers to go through the process of activating again, which will result in your application responding to the new expiration date automatically. This level of automation gives you and your users the simplest and most convenient experience possible.

Furthermore, any information in your application's license files can be edited through SOLO Server's web interface and pushed down to your customer's system(s) by simply refreshing the license. This includes customer data, product data, information about how to reach your company for technical support, customized license parameters, etc..

Deactivation & Transfer

There are three ways a license may be deactivated.  The first is where you, the author of the application, deactivates the license remotely through SOLO Server.  In this scenario, your application needs to rely on the background checking and refreshing features of Protection PLUS 5 SDK and SOLO Server to detect and respond to this event appropriately. The second is similar, but allows the customer to deactivate the license remotely though the customer license portal.

The third type of deactivation is one which is initiated by someone using your application. This is a very simple and convenient way for your customers to essentially migrate (or transfer) the license from one system to another. An example of when a customer would want to do this would be when he or she is upgrading from one computer to another. Allowing your customers to do this online in this manner is a convenience to them, and reduces your support overhead.


It is very important to rely on background checking and refreshing when allowing users to deactivate your application!  Automated background checking helps prevent users from restoring the entire system/computer from an image or snapshot taken before deactivation occurred.