The obligatory question , what if I change my hardware.
A change in hardware could easily be a new computer. How is the software
suposed to know? The key is for the licensing to offer a little
flexibility in how many times or how often a given CD key can be used to
install the software.
In this model a web connection handles all the details. All the user has
to do is run a quick wizard once per install (or per major hardware
change). If they don't have the web then they can call in for a code.
As far as the implementation it's all about web services. Just create a
web service that takes a machine config, and returns a code. As far as
what to use for "machine config" I'm not entirely sure. Others seem to
have given good answers for that.
Windows XP licensing seems to work well. It is tied to the hardware. It
let's you change your hardware a little before you need to reactivate. In
either case, you can change the hardware all you want and still not have to
pay for it again. I 'think' the break point is that you can only reinstall
to a new set of hardware once every 6 months before a red flag is raised.
However it still installs and activates.
Michael Lang, MCSD