by TimStone » Mon Dec 14, 2009 2:03 am
I can now report how I handle this ... successfully !
On my "server" I have an application that runs in the background. It has timers, and it has several functions:
1) Check the main server, see if the customer is eligible for any updates, and if so, and they are available, download them. The updates are in a zip file, and it will extrract them and place them in the proper location on the customer's server. It will also log the version into a tracking file.
2) Perform backups "after hours" of all data files to a pre-determined location
3) Upload any accumulated data to FTP sites based on a pre-set schedule.
All of this activity is logged so it can be reviewed if there are any problems.
On the client workstation, I use a small "run" exe. First it checks the installed version of the program on that workstation, and it compares that to the update(d) version on the server. If it is newer, then it copies over the primary .exe file. If there is no difference, then it simply moves to the next step which is to WinExec( ) the primary program.
I prefer having a client installed on each workstation for many reasons including differing configurations.
In effect, this gives me fully automated updating. I have a central program that allows me to track the clients, their subscription status, etc., to post keyfiles to my central server, and to upload newer releases of my software. I can also shut off systems when people ask for credit and then don't pay. I can also make changes which are reflected on their computers within minutes.
It all works quite well.