Ciao a tutti, sto pianificando un progetto che prevede la gestione di più database distribuiti e mi sto ponendo il problema di come sincronizzare nella maniera più efficiente i dati.

Il progetto sarà sviluppato con tecnologia .NET e il dbms di riferimento è SQL SERVER.

Lo scenario è questo:

Ci sarà una base dati locale in cui l'azienda caricherà una serie di anagrafiche; alcune di queste anagrafiche (non tutte) dovranno essere sincronizzate con una base dati che risiede sul web. Analogamente, la base dati web potrà caricare dei dati che dovranno essere accessibili alla base dati locale.

In sostanza ci sono delle tabelle che risultano "condivise", ma non si tratta di una vera e propria replica, in quanto in alcuni casi le informazioni da trasferire devono essere filtrate secondo alcuni criteri.

La mia domanda è: come gestisco questa cosa? quale è il metodo più efficiente?

Ho fatto dei test sfruttando i Linked Servers e la cosa bene o male funziona ma non mi sembra la soluzione più affidabile. Mi stavo chiedendo se esistono dei meccanismi di sincronizzazioni adatti alle mie esigenze e se non sarebbe più conveniente sfruttare dei web services.

La mia preoccupazione principale è di riuscire a gestire anche lo scenario in cui la connessione verso il database web sia offline; magari prevedendo dei meccanismi di sincronizzazione che si attivino appena il database torna online.

Avete qualche idea o suggerimento su come possa affrontare la cosa?