Well, for cases like virtual machines (of all types), web hosting where the "host machine changes (like AWS), terminal services, and times when a company needs a "pool of licenses" to draw from, you'd use TurboFloat Library and the TurboFloat Server. So, that's the solution to those problems.
Regarding letting the user "remotely deactivate" themselves is a security risk. You don't want it because it means a customer could install your app on as many computers as they want. You could always implement it yourself using the web API, but I wouldn't recommend it.