Microsoft Sync Framework

MicrosoftSync Framework è una piattaforma di sincronizzazione completa che consente la collaborazione e l'accesso non in linea per applicazioni, servizi e dispositivi. Questa piattaforma include tecnologie e strumenti che consentono il roaming, la condivisione e l'attivazione della modalità non in linea per i dati. Utilizzando Sync Framework, gli sviluppatori possono compilare ecosistemi di sincronizzazione che integrano qualsiasi applicazione con qualsiasi tipo di dati da qualunque archivio con qualunque protocollo e in qualsiasi rete.

Sync Framework include le tecnologie seguenti, le prime tre delle quali possono essere installate con SQL Server 2008:

  • È possibile utilizzare Sync Services for ADO.NET per sincronizzare database per scenari non in linea e di collaborazione.

  • I componenti principali di Sync Framework possono essere utilizzati in Sync Services for ADO.NET per la sincronizzazione di database. È inoltre possibile utilizzare tali componenti per creare provider di sincronizzazione per altri tipi di archivi dati.

  • È possibile utilizzare Sync Services for FeedSync per sincronizzare feed RSS e Atom con i dati presenti in un archivio locale.

  • È possibile utilizzare Sync Services for File Systems per sincronizzare file e cartelle in un file system.

  • È possibile utilizzare il servizio di archiviazione dei metadati per archiviare i metadati per la sincronizzazione in SQL Server Compact 3.5.

Di seguito in questo argomento viene fornita una panoramica di Sync Services for ADO.NET, incluso un confronto con altre tecnologie Microsoft. Per la documentazione completa su Sync Services for ADO.NET e Sync Framework, visitare il sito Microsoft Sync Framework Developer Center (informazioni in lingua inglese).

Installazione di Microsoft Sync Framework e Sync Services for ADO.NET

Per installare Sync Framework, è possibile utilizzare l'installazione guidata di SQL Server 2008 o le opzioni di installazione della riga di comando. Per installare Sync Framework tramite l'installazione guidata, nella pagina Selezione funzionalità selezionare Microsoft Sync Framework. Per ulteriori informazioni su come installare SQL Server e i componenti correlati, vedere Panoramica dell'installazione di SQL Server.

Panoramica e scenari di sincronizzazione

La possibilità di supportare utenti mobili e remoti è 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, di un computer desktop, di uno smartphone o di un PDA. Da questi dispositivi gli utenti possono accedere direttamente 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 a causa di alcuni principali 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 in genere connessi tramite reti cablate o wireless 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, tutti gli utenti utilizzano un unico 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 continuare ad accedere ai dati, ma, a differenza dello scenario precedente in cui l'utente deve accedere direttamente al database aziendale per ottenere le informazioni desiderate, le informazioni vengono archiviate localmente in un dispositivo. 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 client, ad esempio SQL Server Compact 3.5, e di sincronizzare le modifiche con un database server, ad esempio SQL 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 dispone di 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ò inoltre accedere ai dati alla velocità del dispositivo.

Sync Services for ADO.NET

Sync Services for ADO.NET consente la sincronizzazione tra database e fornisce un'API intuitiva e flessibile per la compilazione di applicazioni destinate a scenari non in linea e di collaborazione. Sync Services for ADO.NET consente la sincronizzazione tra due peer, ad esempio tra database di SQL Server o tra un database client di SQL Server Compact 3.5 e qualsiasi database server per cui è disponibile un provider ADO.NET. L'API consente di utilizzare tutti i componenti disponibili o solo alcuni di essi, a seconda dell'architettura e dei requisiti di un'applicazione.

Nelle figure seguenti vengono illustrati due esempi di applicazioni connesse in modo occasionale in cui i dati, rappresentati da un database di colore verde, vengono mantenuti in locale nel dispositivo di un utente remoto. Nel primo esempio viene illustrato un sistema di database autonomo in cui le informazioni vengono archiviate direttamente nel dispositivo dell'utente. Nel secondo esempio viene illustrato un ufficio remoto in cui le informazioni vengono archiviate in un database del gruppo di lavoro all'interno dell'ufficio, affinché più utenti locali possano accedere ai dati.

Scenario non in linea di Synchronization Services

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 configurati in modalità peer-to-peer senza dover passare attraverso un hub centrale. Come illustrato nella figura seguente, un database remoto può scambiare informazioni liberamente con qualsiasi altro database. Questo tipo di soluzione è utile quando degli utenti, ad esempio i revisori dei conti, lavorano in gruppo da postazioni remote. Tali utenti devono spesso condividere le informazioni. Poiché non dispongono di connettività al database centrale, tuttavia, devono condividere informazioni tramite una rete peer-to-peer.

Scenario di collaborazione di Synchronization Services

Utilizzo di Sync Services for ADO.NET con SQL Server

Sync Services for ADO.NET supporta l'utilizzo di database nelle modalità seguenti:

  • Negli scenari non in linea il database client deve essere un database di SQL Server Compact 3.5 3.5 o versione successiva. Il server può essere qualsiasi database per cui è disponibile un provider ADO.NET.

  • Negli scenari di collaborazione ogni database peer deve essere un database di SQL Server 2000 Service Pack 4 o versione successiva.

SQL Server è un database di livello aziendale che offre solide basi per applicazioni che richiedono la sincronizzazione. SQL Server 2008 include la funzionalità di rilevamento delle modifiche, una delle più utili per gli sviluppatori di soluzioni di sincronizzazione. Benché in Sync Services for ADO.NET sia disponibile un'API per la sincronizzazione delle modifiche, questa non rileva effettivamente le modifiche nel database server o peer. (SQL Server Compact 3.5 esegue il rilevamento delle modifiche nel database client. Benché sia possibile creare un sistema di rilevamento delle modifiche personalizzato, questa operazione comporta in genere un overhead in termini di complessità e di prestazioni. È consigliabile utilizzare il rilevamento delle modifiche disponibile in SQL Server 2008, in quanto è semplice da configurare e garantisce prestazioni di rilevamento elevate. Per ulteriori informazioni, vedere Rilevamento delle modifiche ai dati.

Confronto tra Sync Services for ADO.NET e altre tecnologie

Microsoft offre diverse tecnologie progettate per applicazioni che eseguono la sincronizzazione. È pertanto utile confrontare Sync Services for ADO.NET con le altre tecnologie utilizzate negli scenari non in linea e di collaborazione.

Sincronizzazione non in linea

Le tecnologie Microsoft più significative per la sincronizzazione non in linea sono le seguenti:

  • RDA (Remote Data Access). Consente di sincronizzare un database di SQL Server Compact 3.5 con un database di un'altra edizione di SQL Server. Per ulteriori informazioni, vedere la documentazione in linea di SQL Server Compact 3.5.

  • Replica di tipo merge. Consente di sincronizzare edizioni diverse di SQL Server, incluso SQL Server Compact 3.5. Per ulteriori informazioni, vedere Panoramica della replica di tipo merge e Selezione del tipo di replica appropriato.

Utilizzare la tabella seguente per determinare la tecnologia appropriata per le applicazioni che si desidera compilare.

Funzionalità principale

RDA

Replica di tipo merge

Synchronization Services

Sincronizzazione tramite un'architettura a più livelli o orientata ai servizi

No

No

Supporto di database eterogenei

No

No

Rilevamento delle modifiche incrementali

No1

Rilevamento e risoluzione dei conflitti

No

Sì2

Creazione semplificata di viste dati nel client

No

No

Inizializzazione automatica di schema e dati

Supporto di set di dati di grandi dimensioni

Disponibilità di Query Processor a livello locale

Propagazione automatica delle modifiche allo schema

No

No

Ripartizione automatica dei dati

No

No

Utilizzo nei dispositivi

1 RDA supporta i caricamenti incrementali, ma i download sono rappresentati sempre da uno snapshot che aggiorna tutti i dati nel client.

2 La replica di tipo merge fornisce funzionalità di risoluzione dei conflitti predefinite, mentre Sync Services for ADO.NET include un framework per la creazione di uno schema per la risoluzione dei conflitti.

Sincronizzazione in scenari di collaborazione

La tecnologia più significativa da confrontare in termini di sincronizzazione in scenari di collaborazione è la replica transazionale peer-to-peer, utilizzata per sincronizzare due o più database di SQL Server Enterprise Edition. Sync Services for ADO.NET e la replica transazionale supportano entrambi la sincronizzazione peer-to-peer. La replica transazionale è più adatta per gestire la disponibilità elevata e distribuire attività di lettura tra più server, mentre Sync Services for ADO.NET è più adatto per applicazioni in cui gli utenti collaborano utilizzando gli stessi dati.

La tabella seguente consente di determinare la tecnologia più adatta per le applicazioni che si desidera compilare. Per ulteriori informazioni sulla replica transazionale peer-to-peer, vedere Replica transazionale peer-to-peer.

Funzionalità principale

Replica transazionale peer-to-peer

Synchronization Services

Sincronizzazione tramite un'architettura a più livelli o orientata ai servizi

No

Supporto di database eterogenei

No

Rilevamento delle modifiche incrementali1

Rilevamento e risoluzione dei conflitti2

Inizializzazione automatica di schema e dati

Supporto di set di dati di grandi dimensioni

Disponibilità di Query Processor a livello locale

Propagazione automatica delle modifiche allo schema

No

Utilizzo nei dispositivi

No

Non in questa versione

Utilizzo con SQL Server Compact 3.5

No

Non in questa versione

1Sync Services for ADO.NET utilizza il rilevamento delle modifiche delta, in base al quale viene sincronizzata l'ultima versione di una riga. Con la replica transazionale peer-to-peer tutte le modifiche a una riga vengono applicate nell'ordine in ogni peer.

2 La replica fornisce funzionalità di risoluzione dei conflitti predefinite, mentre Sync Services for ADO.NET include un framework per la compilazione di uno schema di risoluzione dei conflitti.

Scelta della tecnologia da utilizzare

Sync Services for ADO.NET offre la flessibilità di un modello di programmazione che include set di dati non in linea e un set di funzionalità di sincronizzazione più completo, come quello disponibile nella replica. Le funzionalità di Sync Services for ADO.NET sono superiori a quelle di RDA. La replica è destinata ad amministratori del database ed è progettata in primo luogo per la sincronizzazione di database di SQL Server. La replica offre funzionalità importanti con configurazione disponibile tramite procedure guidate, stored procedure e un'API dedicata. Sync Services for ADO.NET è destinato agli sviluppatori e supporta database eterogenei e sincronizzazione tramite servizi, ad esempio Windows Communication Foundation (WCF). Se un'applicazione richiede la sincronizzazione con database non di SQL Server o necessita di componenti distinti per consentire la sincronizzazione tramite trasporti o servizi diversi, utilizzare Sync Services for ADO.NET.

Per alcune applicazioni, decidere quale tecnologia utilizzare è piuttosto semplice. Se è necessario sincronizzare un'origine dati diversa da un database di SQL Server, Sync Services for ADO.NET rappresenta la soluzione migliore. Per gli amministratori del database che desiderano configurare la sincronizzazione tramite un numero ridotto di attività di programmazione, la replica può costituire la scelta migliore. È infine necessario valutare attentamente i requisiti dell'applicazione e determinare se l'API di Sync Services for ADO.NET sia la tecnologia più adatta da utilizzare. Per finalità più complesse rispetto alla replica di uno schema e dei relativi dati da un database a un altro, è consigliabile utilizzare Sync Services for ADO.NET.

Vedere anche

Concetti