I’m making a windows forms application which I want to install on a few computers that are all connected together on a network. Each of these computers have access to a number of servers on which various tasks are carried out etc.
I want each instance of the application in use to be able to store and retrieve data regarding the separate remote servers (this data can be edited by everyone using the application on their computer). The application needs to be able to retrieve data from the servers when the user clicks an update button. The user can then edit and update that data if necessary.
I think the main options for storing the data are as follows:
- Store data all in one place in a database
- Have a folder on each of the servers and save XML files to it with the data
Which would be the best approach in this scenario and why? Are there any better alternatives?
Note: I would usually opt for the database approach but I want to store data in an alternative way because using a database would require selecting one of the servers to host the database, which doesn’t make sense as to which one would have that stored on it and not the other servers, albeit only one database would be needed by the application.
I would go for the database. Quick, easy and known.
As per your issues, I do not know why you mix application servers with database server. After all, you can have your database server in a machine with no application server at all. Having a “conceptually” separate database server allows your fellow SysAdmin to optimize that server for databases engines. Not to mention licencing issues if you plan to use Oracle or similar.
The “mixed data” has the side effect that when one of your server fails/has downtime, you do not know which of your other servers may fail. Ugly, ugly. If you need it for some reason (the only reason I can think of is spreading lots of files through your desktop almost unused HD), probably there is a service app for that in the internet (which should cover replication and encriptation).
3