We are faced with the following problem that involves keeping the following in sync:
- 1 Centralised Server (IIS / MSSQL 2005)
- Many Desktop WPF clients distributed by ClickOnce
- Many Mobile clients - (Windows CE)
alt text http://img502.imageshack.us/img502/8246/deployment.png
With these thorny constraints:
- all sync relationships are bi-directional
- the desktop & mobile nodes require offline mode
- the mobile nodes cannot sync with the central server but are to sync with the desktop nodes over USB. The desktop nodes act as a server for the mobile clients, not the central server. Updates from the mobile nodes then need to propagate to central server by virtue of syncing with the desktop, and then syncing that desktop with the central server. phew.
Nasty.
To sync the desktop and server we know we can use Merge Replication - the server being a provider, the desktop as a subscriber, all good. BUT what about syncing the mobile and desktop nodes? Seemingly the Desktop cannot be a publisher without SQL server + ISS, right? We can only deploy MSSQL CE to the desktop.
Even if this was the case, could a node be both subscriber and publisher? I suspect that this arrangement isn't supported by the Merge Replication architecture - seemingly hub and spoke is the only supported model.
We are trying to determine if we can eliminate RDA or Merge Replication as a possible solution - if so we will probably pursue the MS Sync Framework.
Perhaps there are other technologies that we could consider?
Thanks all,
Ashley
UPDATE: we've just started having a play with MS Sync Framework and it rocks!