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.
In scenari offline e di collaborazione, è possibile utilizzare Sync Framework in architetture a 2 e n livelli. In entrambe le architetture, l'attività viene eseguita durante una sessione di sincronizzazione: un agente di orchestrazione della sincronizzazione comunica con due provider di sincronizzazione per recuperare e applicare le modifiche a ciascun database. I provider utilizzano un adattatore di sincronizzazione per ogni tabella con i comandi SQL specifici necessari per quella tabella. Alcuni provider espongono gli adattatori per consentire la personalizzazione di questi comandi. Altri provider generano automaticamente gli adattatori per ridurre la complessità associata alla sincronizzazione di un particolare archivio.
Di seguito viene illustrata un'architettura a due livelli: tutti i componenti per una sessione di sincronizzazione si trovano nel computer locale ed è disponibile una connessione diretta dal computer locale al database nel computer remoto. Durante una sessione di sincronizzazione, la sincronizzazione viene avviata dal computer locale. Se si desidera avviare la sincronizzazione da più computer, ogni computer deve contenere tutti i componenti illustrati di seguito. Questi componenti vengono descritti in modo più dettagliato dopo le illustrazioni.
.gif)
Di seguito viene illustrata un'architettura a n livelli: sono necessari componenti aggiuntivi, inclusi i componenti nel computer remoto e la connessione al database remoto viene ora gestita da un proxy nel computer locale e da un servizio nel computer remoto. Sia il proxy sia il servizio devono essere implementati dallo sviluppatore dell'applicazione. Vengono forniti degli esempi per ridurre la complessità associata a questa attività. Come per l'architettura a due livelli, se si desidera avviare la sincronizzazione da più computer, ogni computer deve contenere tutti i componenti.
.gif)
Database
I database possono essere di qualsiasi edizione di SQL Server 2005 SP2 o versioni successive, tra cui SQL Server Compact 3.5 SP1 3.5 SP1 o versioni successive (a 32 bit e a 64 bit) o altri database per cui è disponibile un provider ADO.NET. Sync Framework configura automaticamente il rilevamento delle modifiche e l'archiviazione dei metadati per i database SQL Server e SQL Server Compact. Per ulteriori informazioni, vedere Procedura: configurare ed eseguire la sincronizzazione in scenari di collaborazione (SQL Server). Per i database non SQL Server, è necessario eseguire il provisioning del database. Per ulteriori informazioni, vedere Procedura: eseguire il provisioning di un database server per la sincronizzazione in scenari di collaborazione (non SQL Server).
SyncOrchestrator
L'agente di orchestrazione della sincronizzazione gestisce la sincronizzazione nei modi seguenti:
Determina l'ordine e la direzione in cui devono essere applicate le modifiche, in base alla relativa proprietà Direction.
Chiama il provider di sincronizzazione remoto per recuperare e applicare le modifiche nel database remoto.
Chiama il provider di sincronizzazione locale per recuperare e applicare le modifiche nel database locale.
L'agente di orchestrazione della sincronizzazione gestisce inoltre le informazioni a livello di sessione per la sessione di sincronizzazione e fornisce messaggi di operazione riuscita, errori e statistiche all'applicazione che avvia la sincronizzazione. Per ulteriori informazioni, vedere SyncOrchestrator.
SyncProvider (SqlSyncProvider, SqlCeSyncProvider e DbSyncProvider)
Un provider di sincronizzazione comunica con ogni database e protegge l'agente di orchestrazione della sincronizzazione dall'implementazione specifica del database. Per i database SQL Server Compact, utilizzare SqlCeSyncProvider e per le altre edizioni di SQL Server, utilizzare SqlSyncProvider. Per gli altri database, utilizzare DbSyncProvider. Tutti e tre i provider ereditano da RelationalSyncProvider. Di seguito sono elencate le principali attività eseguite dal provider di sincronizzazione:
Recupera le modifiche che si sono verificate nel database a partire dall'ultima sessione di sincronizzazione.
Applica le modifiche incrementali al database.
Rileva le modifiche in conflitto.
Nota
Se si sincronizzano due database SQL Server Compact tramite due istanze di SqlCeSyncProvider, è necessario utilizzare un'architettura a n livelli. Le architetture a due livelli non sono supportate per questo scenario.
SyncAdapter (DbSyncAdapter e SqlCeSyncAdapter)
Modellato in base all'adattatore dati in ADO.NET, l'adattatore di sincronizzazione viene definito per ogni tabella sincronizzata. L'adattatore di sincronizzazione fornisce al provider di sincronizzazione i comandi SQL specifici necessari per interagire con il database.
Per gli adattatori di sincronizzazione utilizzati da SqlSyncProvider e SqlCeSyncProvider, Sync Framework, genera comandi automaticamente (SqlCeSyncAdapter è privato per ridurre la complessità di sincronizzazione di questo archivio). Per DbSyncAdapter, si crea l'adattatore e si specificano i comandi, ad esempio InsertCommand, che applica gli inserimenti da un altro server o database client al database server. Dato che gli adattatori di sincronizzazione utilizzano l'oggetto ADO.NET DbCommand, è possibile utilizzare qualsiasi struttura di comando supportata da ADO.NET, tra cui SQL inline, stored procedure, viste di una singola tabella, funzioni e così via. I comandi richiedono un solo risultato che definisce la struttura e i dati da trasferire e applicare. Per ulteriori informazioni, vedere DbSyncAdapter. Per ulteriori informazioni sui comandi, vedere "Adattatore di sincronizzazione" in Procedura: configurare ed eseguire la sincronizzazione in scenari di collaborazione (non SQL Server).
Classi aggiuntive nell'API
Nelle illustrazioni di questo argomento vengono mostrate le classi principali contenute nell'API. Tuttavia, molte di esse non vengono mostrate. Per ottenere informazioni su tutte le classi disponibili, vedere Microsoft.Synchronization, Microsoft.Synchronization.Data, Microsoft.Synchronization.Data.SqlServer e Microsoft.Synchronization.Data.SqlServerCe. Nelle sezioni seguenti vengono introdotte altre importanti classi di cui è necessario acquisire familiarità.
DbSyncScope
Un ambito di sincronizzazione è un raggruppamento logico di oggetti che devono essere sincronizzati come unità. Nel caso di una sincronizzazione di database, un ambito è in genere un set di tabelle. Le tabelle possono essere filtrate e incluse in uno o più ambiti. Per ulteriori informazioni, vedere "Definire gli ambiti da sincronizzare" in Procedura: eseguire il provisioning di un database server per la sincronizzazione in scenari di collaborazione (non SQL Server)..
Oggetti di provisioning del database
Per i database SQL Server e SQL Server Compact, Sync Framework fornisce un set di classi utilizzate per descrivere gli ambiti e le tabelle incluse in ciascun ambito. Dopo la descrizione delle tabelle e degli ambiti, vengono utilizzati gli oggetti Sync Framework per applicare script di provisioning a ogni nodo. Gli script creano un'infrastruttura di rilevamento e applicazione delle modifiche costituita da tabelle di metadati, trigger e stored procedure. Nella tabella seguente sono elencate le classi utilizzate per configurare database e provider. Per ulteriori informazioni, vedere Procedura: configurare ed eseguire la sincronizzazione in scenari di collaborazione (SQL Server).
| SQL Server | SQL Server Compact | Descrizione |
|---|---|---|
DbSyncScopeDescription |
Rappresenta un ambito di sincronizzazione, ovvero un raggruppamento logico di tabelle (facoltativamente filtrato) sincronizzate come un'unità. |
|
Rappresenta il provisioning di un database SQL Server o SQL Server Compact per un ambito specifico rappresentato da un oggetto DbSyncScopeDescription. |
||
Rappresenta informazioni di configurazione utilizzate da SqlSyncProvider o SqlCeSyncProvider per un ambito specifico. |
||
DbSyncTableDescription |
Rappresenta lo schema di una tabella inclusa in un ambito di sincronizzazione. |
|
DbSyncColumnDescription |
Rappresenta lo schema di una colonna che fa parte di una tabella inclusa in un ambito di sincronizzazione. |
|
Rappresenta informazioni su ambiti e tabelle per un database SQL Server o SQL Server Compact coinvolto in una sincronizzazione. |
||
SqlSyncTableProvisioning |
Rappresenta il provisioning di un database SQL Server o SQL Server Compact rappresentato da un oggetto DbSyncTableDescription. |
|
SqlSyncProviderAdapterConfiguration |
Rappresenta le informazioni di configurazione dell'adattatore di sincronizzazione per una tabella in un database SQL Server o SQL Server Compact. |
SyncOperationStatistics
Le statistiche della sessione rappresentano un set di statistiche fornite dall'agente di orchestrazione della sincronizzazione per ogni sessione di sincronizzazione. Le statistiche includono informazioni sugli orari di sincronizzazione, sul numero di modifiche elaborate e su qualsiasi eccezione o conflitto che si è verificato. Per ulteriori informazioni, vedere SyncOperationStatistics.
DbSyncSession
L'oggetto DbSyncSession fornisce l'accesso alle variabili della sessione di sincronizzazione. Le variabili di sessione sono variabili destinate agli sviluppatori per essere utilizzate come parametri per i comandi di selezione, inserimento, aggiornamento ed eliminazione eseguiti nei server che utilizzano DbSyncProvider e DbSyncAdapter. Per ulteriori informazioni, vedere Procedura: utilizzare variabili di sessione per la sincronizzazione in scenari di collaborazione.
DLL di Sync Framework
Le classi per la sincronizzazione di database Sync Framework sono contenute nelle DLL seguenti:
Microsoft.Synchronization.dll che include SyncOrchestrator.
Microsoft.Synchronization.SqlServer.dll che include SqlSyncProvider.
Microsoft.Synchronization.SqlServerCe.dll che include SqlCeSyncProvider.
Microsoft.Synchronization.Data.dll che include RelationalSyncProvider, DbSyncProvider e DbSyncAdapter.
Le DLL dipendono da System.dll e System.Data.dll di .NET Framework 2.0 o versioni successive.
Vedere anche
Concetti
Scenari di collaborazione
Procedura: configurare ed eseguire la sincronizzazione in scenari di collaborazione (SQL Server)
Sincronizzazione di altri database compatibili ADO.NET