Why Product Activation for Java Software is Becoming Widespread
Join the DZone community and get the full member experience.
Join For FreeProduct 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.
Comments