We have proprietary software that expires periodically. Most of our customers get software renewals once per year, but there are some that receive shorter renewals. Currently when it is time to renew the "key" we distribute it via email or ftp to each customer (~100k file, in self-extracting ZIP, with instructions for placement on their server; all users must be logged out of our software to overwrite file).
We have considered a couple different ways to automate the renewal process. I am trying to find the BEST way. Our software may be installed on a Windows server, on the user's local drive (less common; if there is only user in the office) or on a Terminal Server (in a few cases). We determine the location of the software from the INI file on the user's workstation.
I'm looking for an ideal solution to this, that will work for ALL environments. Should users log on to our web server and have it somehow check to see if it needs a renewal, and then install the correct one? If so, how would that work? Or is there a program that should be installed on a user's workstation (similar to Windows Update) that should log on to an FTP at regularly scheduled intervals, to check for updates?
I need whatever solution we have to fully work in all situations, including T.S., and properly update / replace the renewal file.