Why Product Activation for Java Software is Becoming Widespread
Join the DZone community and get the full member experience.Join For Free
Product activation is widely used by software vendors to protect their
applications and enforce license agreements. While some users object to
any form of license management, modern product activation systems are
superior to other techniques from both the vendor's and the end-user's
perspectives (see a modern product activation system).
Software vendors use license management for a variety of reasons. They are often concerned about protection from piracy, and protection against users exceeding their agreed license terms (such as the number of installations that run in a customer company). License management also allows the software vendor to develop, distribute, and support one version of their application, but offer different license terms at different prices to different markets. For example, the vendor can use the licensing mechanism to provide trial licenses, perpetual licenses, subscription licenses, set limits on the product features or modules enabled, set usage limits, combinations of all of the above, and offer straightforward upgrades in capabilities, all with just one executable (some license management systems even allow the vendor to also offer floating licensing either over the end-customer's network or the Internet based on this same executable). Finally, license management can enable the vendor to automate fulfillment, management and reporting, so reducing operations costs and offering immediate delivery worldwide 24x7 to their customers.
A key concern for software vendors is ensuring users don't just give the software to unlicensed friends and colleagues, or even post it on the web for anyone to download. The standard solution is called node-locking, where each user's installation is locked to one or more parameters of their system, such as the MAC address. Each time the application runs, it reads, say, the MAC address of the computer where it is running, and will proceed only if the address it reads matches the one recorded for that license.
Older approaches for license enforcement include dongle-based licensing and key-file-based licensing. A dongle is a hardware device that plugs into the user's computer; when the application runs it checks for the presence of the dongle and will run only if it finds it. Dongles do therefore allow the user to move their license around, but only by physically relocating the dongle. With key-file-based licensing, the license limits and node-locking parameters are encrypted in a file, which is sent to the user and read by the application each time it runs.
These approaches have a number of disadvantages. Dongles require the distribution of the hardware, with all that entails in material cost, shipping cost, delivery times and management by the vendor. They are widely disliked by end-users, who don't want to wait for them to arrive, keep track of them, have them stick out of their computer and so on.
Key-based licensing improves on dongles as the encrypted key files can be delivered immediately by email, and impose no hardware burden. However, they do require the user to provide the names of the locking parameters (or run a utility to read them), and do not allow users to readily move their license from machine to machine, as such a move would require a new key file. An upgrade to a user's license, such as extending a subscription, also requires the generation and delivery of a new key file.
Product activation improves on these older approaches. Fulfillment is immediate as with key-file-based licensing, but the node-locking is accomplished automatically at activation time, so the user is not required to supply any information, and indeed is unaware of the specific parameters to which the license is locked. Modern activation systems also support the relocation of a license by the user, who can activate their license on one system, then perhaps months later deactivate their license on that first system and activate it on a second system. The activation system ensures only one copy of a given license is active at any one time, thus addressing the vendor's concerns, but the user can move their license from, say, their office machine to their laptop, then to their home machine, as they wish. The activation system can also automatically transfer user settings, so the newly-activated installation comes up exactly as the user had configured the old one.
If the user upgrades their license, perhaps by converting a trial license to a production license, extending a subscription, or purchasing additional features or modules, the vendor simply updates the record for that user in the hosted activation system, and the user clicks a menu command to update their license, causing the new limits to immediately take effect.
Product activation systems therefore meet the software vendors' need to protect against piracy, offer a range of license models, and automate operations, but remove many of the inconveniences and costs of older license management systems. Early product activation systems that didn't support such capabilities as activation on disconnected systems or license relocation did give the approach a bad name, but modern product activation systems have this flexibility so are gaining acceptance with vendors and users .
This case study shows how one vendor uses product activation to protect their business applications, and this case study describes how FICO is using product activation to offer usage-based licensing.
Opinions expressed by DZone contributors are their own.