Domanda

Ci troviamo di fronte con il seguente problema che coinvolge mantenendo il seguente in sincronia:

  • 1 server centralizzato (IIS / MSSQL 2005)
  • Molti clienti desktop WPF distribuiti da ClickOnce
  • Molti clienti mobili - (Windows CE)

alt text http://img502.imageshack.us/img502/8246/deployment .png

Con questi vincoli spinosi:

  • tutte le relazioni di sincronizzazione sono bidirezionali
  • i nodi del desktop e mobili richiedono modalità non in linea
  • i nodi mobili non può sincronizzare con il server centrale, ma sono per la sincronizzazione con i nodi del desktop tramite USB. I nodi del desktop agiscono come server per i client mobili, non il server centrale. Aggiornamenti dai nodi mobili devono poi propagarsi al server centrale in virtù della sincronizzazione con il desktop, e quindi la sincronizzazione che desktop con il server centrale. uff .

Nasty.

Per sincronizzare il desktop e server di sappiamo di poter usare Merge Replication - il server essere un fornitore, il desktop come un abbonato, tutto bene. Ma per quanto riguarda la sincronizzazione dei nodi mobili e desktop? Apparentemente il desktop non può essere un editore senza SQL Server + ISS, giusto? Siamo in grado di distribuire solo MSSQL CE al desktop.

Anche se questo fosse il caso, potrebbe essere un nodo sia abbonato e l'editore? Ho il sospetto che questa disposizione non è supportata dall'architettura Merge Replication -. Apparentemente hub and spoke è l'unico modello supportato

Stiamo cercando di stabilire se siamo in grado di eliminare RDA o replica di tipo merge come una possibile soluzione -. Se è così ci sarà probabilmente perseguire l'Sync Framework MS

Forse ci sono altre tecnologie che potremmo prendere in considerazione?

Grazie a tutti,

Ashley

AGGIORNAMENTO: Abbiamo appena iniziato ad avere un gioco con MS Sync Framework e rocce

È stato utile?

Soluzione

Per ragioni non direttamente correlate alla tua domanda specifica, credo che si può andare avanti ed eliminare RDA / Merge Replication come una possibile soluzione. Microsoft non pubblicizzare questo (per ovvie ragioni), ma replica di tipo merge non è affidabile al 100% in condizioni in cui la connessione di rete può essere lasciato cadere nel bel mezzo del processo di replica (il che accade abbastanza di frequente con i clienti Windows Mobile).

Il risultato di questo problema è che le modifiche apportate ai database dei clienti sono a volte non pienamente propagate al database master, ma si ottiene alcuna indicazione rilevabile che questo è successo. Come potete immaginare, questa è una brutta cosa, soprattutto se hai venduto il tuo cliente su questa soluzione basata sul presupposto che RDA funziona come pubblicizzato. L'unica soluzione a breve termine che abbiamo trovato a questo problema è stato quello di implementare un goffo doppio processo di ridondanza per confermare che ogni record aggiunto o modificato sul client ha fatto al server senza errori. La soluzione a lungo termine era quella di utilizzare mai più RDA di nulla.

Questo problema potrebbe essere stato risolto nelle versioni recenti di RDA (il nostro problema si è verificato con la versione più recente 2 anni fa), ma io non so (una volta morso due volte timido).

Aggiornamento: a proposito, ho avuto molte persone con cui ho parlato su questo (tra cui tecnici di supporto Microsoft) negano che questo potrebbe essere vero, ma è molto facile verificare: aggiungere un po 'di dati sulla client, quindi avviare la replica, quindi tirare il cavo USB dal dispositivo (supponendo che il client è Windows mobile connette tramite ActiveSync), mentre nel mezzo di questo.

Se mi sembra un po 'irritato, è in parte perché questo era quello che la tecnologia MS è stato finalmente costretto a dire (citazione reale):. "Beh, basta tenere la replica - i dati si fonderanno alla fine"

Altri suggerimenti

Controlla la Collaboration Scenari ( peer to peer) in Microsoft Framework 2.0. I fornitori inclusi ci permettono due database SQL Server Compact per essere sincronizzati direttamente. Essi sono anche in grado di sincronizzare direttamente con altri fornitori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top