Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Sync Framework consente la sincronizzazione tra database e fornisce un'API intuitiva e flessibile per la compilazione di applicazioni destinate a scenari offline e di collaborazione. Tramite l'API è possibile utilizzare tutti i componenti forniti o solo alcuni di essi, a seconda dell'architettura e dei requisiti di un'applicazione. Sync Framework supporta topologie client-server, client-to-client e miste. Nelle topologie client-server tutti i client vengono sincronizzati con un server centrale. Nelle topologie client-to-client ogni client può eseguire la sincronizzazione con un altro client senza che le modifiche debbano passare attraverso un server centrale. Le topologie miste sono costituite da una combinazione di topologie client-to-client e client-server.
Scenari di sincronizzazione
La possibilità di supportare utenti mobili e remoti sta diventando sempre più importante per le organizzazioni che hanno l'esigenza di garantire a tali utenti l'accesso alle stesse informazioni disponibili in sede. Nella maggior parte dei casi, questi utenti dispongono di un portatile, un computer desktop, uno smartphone o PDA. Da questi dispositivi gli utenti possono talvolta accedere ai dati utilizzando una connessione VPN o un altro metodo di connessione diretta alla rete aziendale. Per la maggior parte degli utenti remoti questa soluzione non è affatto soddisfacente principalmente a causa di alcuni svantaggi riscontrati nelle aree indicate di seguito.
Requisiti di rete
Per consentire agli utenti di accedere alle informazioni, il dispositivo remoto deve essere connesso alla rete aziendale in modo costante durante l'accesso ai dati. Per alcuni utenti, ad esempio per chi lavora dalla propria abitazione, questa condizione potrebbe non costituire un problema, mentre per altri, ad esempio i venditori che si spostano di frequente, potrebbe risultare più problematica. Se, ad esempio, un venditore in visita a un cliente non è in grado di accedere ai dati relativi alle scorte perché non è disponibile connettività di rete, non potrà svolgere il proprio lavoro in modo efficiente.
Velocità di accesso ai dati
In un tipico ambiente client-server aziendale gli utenti dispongono di reti ad alta velocità che consentono accesso rapido alle informazioni. Gli utenti remoti, tuttavia, sono spesso connessi tramite reti lente e inaffidabili. Con una soluzione tradizionale, i dati desiderati devono essere scaricati ogni volta che sono necessari, in quanto non è possibile mantenerli nel dispositivo in alcun modo. Se, ad esempio, un venditore deve scaricare l'elenco dei prodotti ogni volta che apre l'applicazione, il tempo necessario per popolare l'applicazione con le informazioni può essere spesso motivo di frustrazione.
Singolo punto di errore
Con questo tipo di soluzione, gli utenti utilizzano spesso un unico database server. Se il database non è disponibile a causa della pianificazione di un tempo di inattività del server o di errori del server, tutti gli utenti remoti verranno disconnessi dai dati.
Scalabilità del server
L'utilizzo di dati in remoto da parte di più utenti influisce sulle prestazioni dei server aziendali, con la conseguente necessità di aggiungere altri componenti hardware.
Applicazioni connesse in modo occasionale
Un'alternativa alla soluzione descritta nella sezione precedente consiste nell'implementare un'applicazione connessa in modo occasionale. Un'applicazione connessa in modo occasionale consente a un utente remoto di accedere ai dati, ma le informazioni desiderate vengono archiviate localmente. Per popolare un database locale, un'applicazione connessa in modo occasionale utilizza in genere la sincronizzazione dei dati.
La sincronizzazione dei dati consiste nella capacità di acquisire periodicamente le informazioni archiviate in un database, ad esempio un database client, e di sincronizzare le modifiche con un altro database, ad esempio un database server. Il vantaggio di una soluzione basata sulla sincronizzazione è rappresentato dal fatto che gli utenti non necessitano più di una connessione di rete costante per accedere alle informazioni. Poiché i dati vengono archiviati in locale, un utente ha accesso costante ai dati durante la ripartizione del carico di lavoro dell'elaborazione dal database centrale. Poiché la velocità della rete non costituisce più un fattore limitante, un utente può ora accedere ai dati alla velocità del computer locale.
La sincronizzazione client-to-client evita che si verifichi il singolo punto di errore consentendo una sincronizzazione che non si basa su tutte le modifiche che passano attraverso un server. La possibilità di effettuare il push di gran parte dell'elaborazione delle applicazioni in ogni client consente inoltre di risolvere il problema della scalabilità dei server.
Sync Framework utilizza i provider di sincronizzazione per comunicare con ogni database sincronizzato. I provider di database Sync Framework, analoghi ai provider di dati ADO.NET, proteggono gli altri componenti di Sync Framework dall'implementazione specifica di ciascun database. Sync Framework include cinque provider di database che supportano due tipi di scenario: gli scenari offline e gli scenari di collaborazione. Di seguito viene illustrato uno scenario offline: in una topologia client-server i client si connettono a un server centrale per sincronizzare i dati quando è disponibile una connessione.
.gif)
Un'estensione comune di questo tipo di applicazione connessa in modo occasionale è rappresentata dalla possibilità di supportare scenari di collaborazione, ovvero scenari in cui due database possono essere sincronizzati in modalità peer-to-peer senza dover passare attraverso un hub centrale. Di seguito viene illustrata una topologia mista in cui un server centrale viene sincronizzato con i client e i client possono essere sincronizzati tra loro. Una topologia come questa potrebbe supportare un'applicazione che consente agli utenti di condividere note relative a un progetto. I membri del team del progetto spesso necessitano di una copia locale dei dati su cui lavorare. Dopo aver apportato modifiche, possono eseguire la sincronizzazione con un server per caricare le modifiche o con un altro membro del team per scambiarsele.
.gif)
I cinque provider di sincronizzazione dei database inclusi in Sync Framework possono essere divisi in due categorie:
DbServerSyncProvider e SqlCeClientSyncProvider supportano gli scenari offline. Questi provider dispongono delle caratteristiche seguenti:
Adatti per le topologie client-server.
Sempre utilizzati in coppia. Ad esempio, non è possibile sincronizzare due database server tramite due istanze di ServerSyncProvider (utilizzare invece SqlSyncProvider o DbSyncProvider).
Possono essere meno complessi dei provider di collaborazione, ma non possono partecipare a topologie con altri provider Sync Framework.
Per ulteriori informazioni sulla sincronizzazione offline, vedere Scenari offline.
SqlSyncProvider, SqlCeSyncProvidere DbSyncProvider supportano gli scenari di collaborazione. SqlSyncProvider e SqlCeSyncProvider vengono utilizzati, rispettivamente, per sincronizzare i database SQL Server e SQL Server Compact. DbSyncProvider viene in genere utilizzato per sincronizzare i database non SQL Server. Questi provider dispongono delle caratteristiche seguenti:
Adatti per le topologie peer-to-peer e miste. Possono essere utilizzati nelle topologie client-server se sono richieste caratteristiche più avanzate, ad esempio l'invio in batch complesso.
Possono essere utilizzati in modalità più flessibili. Ad esempio, è possibile sincronizzare due istanze di DbSyncProvidero un'istanza di SqlSyncProvider e un'istanza di SqlCeSyncProvider e così via.
Utilizzano i metadati di Sync Framework e possono partecipare a topologie con altri provider Sync Framework.
Per ulteriori informazioni sulla collaborazione dei dati, vedere Scenari di collaborazione.