Data synchronization

1. Synchronize data between servers and client
2. When loss of internet, the client can still work based on the data required to run on the client.
3. When have the internet connection, data from workstations to be synchronized with the server.

To meet these objectives above how to do it with sql server? Or other data synchronization?

Are the clients just normal desktop users? If so you can put sql express on everyones system if your database is under 10 gigs and then have it send back the data to the parent database via SSIS or .Net.

SQL Express does allow users to use any sort of mirroring, or snapshot. It would most likely be heavy on bandwith and you would also run into the issue of users duplicating work so you would have to envoke a rule based system to see who wins.