The SoftwareKey System has been serving the needs of software authors and publishers worldwide since the dawning of the 1990s. You can imagine that after working with nearly 7,000 customers, we would have encountered nearly every possible scheme for licensing software. Just when we, too, think we have seen it all – customers and prospects alike come to us with new and interesting ideas for licensing models. And, as is typical behavior of the SoftwareKey Team, we are always ready to rise to the challenge!
This blog post is not intended to serve as a compendium of either Protection PLUS features or SOLO Server features. Rather, the aim today is to discuss – from a high-level perspective – the capabilities of selected software licensing models.
We are keenly aware of The Paradox of Choice, a compelling yet seemingly counter-intuitive argument that the fewer choices we have, the better off we are. That being said, we promise that this blog post is only meant to stimulate your creative juices when you find yourself immersed in laying out the blueprint for the application software licensing techniques most relevant to the intended use of your software product.
A recent brainstorming session in the SoftwareKey offices attended by the members of our architecture team yielded the following lineup of contemporary licensing models to serve as a stimulant for consideration and discussion by software authors who may be just starting to scratch the surface of software licensing methodology:
How about placing a “Try Now!” button before the “Buy Now!” button?
One of the first questions you should ask yourself is: Do I want to create an evaluation/trial version of my software? This provides your prospects with the opportunity to “test drive” the features of your software before committing to a purchase.
If your team has created a truly exceptional software product that fully satisfies the needs of your prospective customers, a trial version of the software will serve as a critical stepping stone to closing the sale. Here are a few assorted questions to ask yourself regarding software evaluations:
- Should I establish the evaluation period to be limited to a predetermined number of days, or to a fixed number of launches or executions of the application?
- Should I allow my prospects to extend the evaluation period if they require more time to assess my software application?
- Should the evaluation period automatically commence upon first execution, or should I require my prospects to activate the trial version of the application?
- Should I permit the evaluation version of my software product to run within the confines of a virtual machine? (Doing so opens the door to your prospective customers potentially acquiring an unauthorized extension of the trial evaluation period, particularly if activation is not required.)
- Should the evaluation version grant unlimited access to all features of my software product for the duration of the trial period, or should I restrict access only to a subset of those features?
As a side note, we believe that It is always a good idea to collect some basic contact information about the prospect (e.g., name, phone number, e-mail address, etc.) before allowing them to download and install the trial version of your software. Having this data provides you with the opportunity to follow-up with them personally and solicit feedback as to what they like (or maybe don’t like) about your software.
Perpetual (Non-Expiring) Licensing vs. Subscription Licensing
Although limiting software execution to a prescribed period of time has been one of the hallmark features of Protection PLUS since its inception, historically we have observed most software authors electing to implement perpetual licensing (i.e., once the software is purchased, the customer is the recipient of a perpetual, non-expiring license for the life of the product). Recently, however, we have witnessed tremendous growth in the sale and distribution of subscription based licenses. If fact, even software behemoths such as Microsoft are now offering subscription based licenses for key products, such as Office 365.
Controlling use of the software license
It is typically desired to control the usage and access to a given software license, for example, limiting how many times an end-user can install a given software license. Here are but a few of the innumerable ways for you to govern access to your software:
- Node-locked (by computer) licenses, in which the license is directly bound to the hardware of the computer and therefore requires the license to be activated only once per device, upon first use. All subsequent users who log into the activated device will be able to access the licensed software.
- User-based or named-user licenses, where every unique logged-in user requires their own individual activation. It should be noted, however, that if named-user licenses are stored in a central location, it is possible to permit the named user direct access the to the software from multiple computers on the corporate network.
- Named computer – A less restrictive way to license software is to lock the license to the name of the computer. With this purely being a software setting, it allows the customer to make as many changes as they require to their hardware and, as long as the computer name remains unchanged, the license will continue to validate. Admittedly, however, we do not typically see this particular category of licensing used by our customers.
- Website DNS name – With today’s explosive growth of web-based applications, and with each web application requiring a unique Domain Name Service (DNS) name, you may want to license your web application for a specific DNS name. For example, our support portal uses a licensing system that is locked to the URL support.softwarekey.com. We cannot use the support portal on another domain name without first contacting the support portal provider.
Network Floating Licensing
Even though the practice of controlling the number of concurrent (or, simultaneous) users would normally fall under the previous section, the numerous considerations associated with the concepts of network floating licensing warrant the creation of its own section and even its own blog post! Under the auspices of network floating licensing, the software can be installed on all computers throughout the company and yet only a maximum number of end-users (as determined by the software author) can run the software at the same time. When the ceiling is reached, a new user will need to wait for a previously authorized user to complete use of the software and terminate his or her session. Refer to Controlling Concurrent User Access with Network Floating Licensing for more information on Network Floating Licensing.
Custom License Parameters
In addition to controlling use of the software application, it is very common to license the software by one or more additional parameters, used at the discretion of the software developer. This can include any parameterized data that you want the customer’s licensed software to access during run-time. Some examples include:
- Modular application licenses, also known as feature-based licenses – This type of licensing allows you to actuate one or more modules, menus, or features within a suite of applications. This concept can also be used to have variations of a single application available in tiered versions. For example, Software Product XYZ can be marketed and sold in Platinum, Gold, and Silver Editions, with each edition, or version, providing the end-user with a different set of features and functions. As the customer’s needs change, the license can be updated on the central licensing server and immediately refreshed by the client to enable the new functionality.
- Limiting the number of records in a database – Let us presume that you want to license your client/sever or web-based application according to the number of active users. You can configure the number of named users in the license, which is sent down in the license file during activation. When the administrator goes to the user-management feature of the software, it can block them from adding users when the maximum has been reached or only allow them to add more named users when other named users are either deleted or deactivated.
- Registered-user information – Say you want to license your software to a particular law firm and you want to deter members of the law firm from sharing their license with colleagues in a neighboring law firm in the same office building. You could enforce such a restriction, for example, by displaying some sort of watermark on generated reports and/or documents.
- Custom strings of data – As an extension of the previous point, one of our customers licenses their software to doctors’ offices for purposes of medical billing. They use a hashed value of a medical provider’s unique Tax ID Number (or TIN, as issued by the U.S. Internal Revenue Service) as a fingerprint algorithm. By locking the license to the provider’s TIN (which is needed for submitting claims to insurance carriers), this is a very simple yet highly effective way to discourage the sharing of the license among multiple doctors’ practices. Furthermore, keeping the data in a hashed format will protect the privacy of the provider.
- SQL connection string – If you have a client/server or web-based application that connects to a central SQL database and you want to lock the clients to a specific database server, the SQL connection string can be used as a license parameter. Note, however, that in the event the IT staff is required to relocate the SQL database to another server, the license parameter (i.e., the SQL connection string) will need to be updated at migration time.
As you can deduce from the preceding bullet points, you are only limited by the boundaries of your imagination as to how you can license your software to your customers with additional license parameters. Not only does SOLO Server have user-defined fields as a standard feature, but our professional service team can also customize a separate license parameters screen with customer-specific business logic for managing the license parameters. We call this a custom Edit License Parameters page.
Before making a final decision on your choice of an implementation strategy for license enforcement, though, we urge you to remember one of the paramount tenets of successful software development: Consider the privacy and security requirements of your target customers before – and not after – plowing full-steam-ahead into the construction phase of your project. Defining and integrating these requirements during the planning stages instead will enable you to avoid major disruptions (e.g., the dreaded need to go back to the proverbial drawing board) when you least expect – or want – them to occur.
Combine any or all of the above
You are, of course, at liberty to consider any or all of the above methods for administering access to your software and specifying applicable license parameters. For example, you can:
- Control how many computers can be activated and specify the software subscription expiration date.
- Limit the number of named users and list the allowed features.
- Specify how many concurrent users are allowed and can be connected to a machine with a specific server name.
- Restrict the number of records in a database and indicate which level of software is enabled (e.g., Silver, Gold, or Platinum Editions).
The Protection PLUS 5 API combined with SOLO Server gives you and your development team a set of indispensable tools which allow you to be very creative with software licensing implementations. We hope that instead of giving you Choice Overload, this blog post inspires your imagination to new heights when it comes to devising licensing algorithms to be used in your software.
One of the benefits of working with the SoftwareKey team is the over 20 years of software licensing experience. Our staff will be happy to discuss with you any or all of the above software licensing methods and how they can be best leveraged by your company.
Say What? There’s More?
If this blog post didn’t give you enough to consider, we should let you know that we have started to see the introduction of a whole new paradigm of software licensing models in the already-crowded marketplace. You can learn all about the latest trends by reading the second installment of this series where we discuss Software Licensing Usage Consumption Models.