I have a WinForms application that I've written, using Visual Studio
2008 and SQL Server 2005. Currently, there is only one database that
resides on a single server. All users of the application point to this
one database. Well, this works just great when all users have local
network connections to the server. However, when we tested this
application in the field, where a group of users had to connect to the
server through a VPN tunnel through satellite, or with air cards in
their laptops, they found that the response of the application was way
too slow due to poor connectivity. NOTE: This application is used for
response to hurricanes...thus, no guarantee of good connections.
So, the client has asked me if I can split up things so that the
"remote users" can just run the application pointing to a server that
would be local to them. Well, the only way that I can think of to do
this is to have the two different servers running, in the two
different locations, and create code to periodically synchronize the
data between the servers. One of the things that makes this
particularly ugly is that it is possible that users in the remote
location could make certain changes to certain records, and users in
the other location could make other changes to the same
records...then, the problem of "marrying" these changes together
presents itself. In other words, someone would have to merge all
changes together into the one record.
So, I guess what I'm asking for here is some pointers about how to do
something like this. I'd also appreciate any advice on things that I
need to watch out for, etc. Of course, if I'm missing some easier,
obvious solution, please do tell.
|