As our library of licensing tips blog posts has grown, we have noticed a recurring theme appearing in several of our most popular posts. Repeatedly, we recognize that there are no "absolutes" in software licensing. Instead, there are various advantages and disadvantages to each choice made in your approach to licensing business logic.
"One Size Fits All" Challenge
It can be seriously challenging to create a "one size fits all" approach to licensing your software. Some examples of this include:
- Allowing customers to transfer software licenses between disconnected computers is difficult because license validation is required to transfer licenses securely. Requiring customers to validate licenses on networks that are not connected can create an inconvenience.
- The raw power of Virtual Machine technology makes it easier than ever for customers to bend or cheat licensing rules, no matter what approach is taken.
- Licensing your software using an advanced implementation - like by concurrent user - can also be challenging, especially when running in disconnected and even untrusted environments.
Solution #1 - Separate Builds Per Customer Profile
Some customers will want to spend the least amount of money on your software. Since these customers may also be the ones who you trust the least, you may want to restrict these customers from using your software in any of the environments where they can more easily bend the license rules, such as running in a virtual machine environment.
Customers with larger businesses may be willing to offer you additional money in exchange for more control or autonomy, especially concerning the important software that runs their business.
Software publishers who deal with military / defense contractor / highly secure / disconnected environments (which by their nature are the hardest in which to maintain control), often say that they trust these customers the most.
Since it is relatively simple to create multiple builds of your software, your development team can customize the licensing business logic for each customer profile. Your sales team can customize the pricing so that the higher price points for the builds with relaxed license validation offset the risk of customers bending or cheating their software license.
Your sales team can customize the pricing so that the higher price points for the builds with relaxed license validation offset the risk of customers bending or cheating their software license.
Instead of distracting your development team in an attempt to satisfy all potential customer profiles, consider the 80 / 20 rule. Doing so will allow your team to create builds for only the customer profiles that will generate the most revenue for your company.
Solution #2 - Including Restrictions within the License
Instead of using separate custom licensing business logic within different builds, you can include the licensing business logic for all cases in a single build, and then determine which restrictions should apply based on the license that you have issued.
The license parameters/restrictions will designate whether this customer is allowed to run the software in a virtual environment, or when/if the licensed software needs to validate with the central license server. This approach also allows you to more easily make adjustments to certain license restrictions, as you can simply issue an updated license as opposed to updating source code and deploying a new build.
How Can the SoftwareKey System Help You?
The SoftwareKey System offers various standard features to control the environment on which the software is allowed to run and can dynamically change license validation algorithms on these environments.
With our most advanced licensing client, Protection PLUS 5 SDK, you have the most flexibility to include whatever custom license parameters/restrictions you want. Our License Validation Options in SOLO Server Automation make defining and updating validation settings quick and easy, and we support a variety of ways of defining custom license data.
Feel free to contact us if you have questions about dynamically-changing license parameters based upon detected environments.