Condividi tramite


Concetti relativi alla programmazione della replica

Prima di sviluppare un'applicazione che usa le funzionalità di replica, è necessario seguire la procedura di pianificazione generale seguente:

  1. Definire la topologia di replica.

  2. Definire la funzionalità dell'applicazione.

  3. Pianificare la sicurezza.

  4. Scegliere un ambiente di sviluppo.

  5. Scegliere l'interfaccia di programmazione della replica appropriata.

Nella parte restante di questo argomento vengono descritti in modo più dettagliato questi passaggi. Per illustrare il processo di pianificazione, è stato incluso un esempio.

Definizione della topologia di replica

Il primo passaggio della programmazione della replica consiste nel definire la topologia di replica per l'applicazione. Se si scrive un'applicazione che userà una topologia di replica esistente, ad esempio un'applicazione client che accede ai dati in un sottoscrittore esistente, è necessario passare al passaggio successivo.

Annotazioni

In alcuni casi, la distribuzione della topologia di replica sarà l'unico scopo dell'applicazione.

La topologia di replica definita dipende da molti fattori, tra cui i seguenti:

  • Indica se i dati replicati devono essere aggiornati e da chi.

  • Le esigenze di distribuzione dei dati riguardano coerenza, autonomia e latenza.

  • Ambiente di replica, inclusi gli utenti aziendali, l'infrastruttura tecnica, la rete e la sicurezza e le caratteristiche dei dati.

  • Tipi di opzioni di replica e replica.

  • Le topologie di replica e il modo in cui sono allineate ai tipi di replica.

Se non si ha ancora una volta la replica di Microsoft SQL Server, vedere Tipi di replica.

Definizione della funzionalità dell'applicazione

Dopo aver definito la topologia di replica, è necessario decidere le funzionalità offerte dall'applicazione. Queste funzionalità possono variare da uno script che sincronizza una sottoscrizione a un'applicazione con un'interfaccia utente per configurare la replica. La replica supporta le attività di programmazione generali seguenti:

  • Configurazione della replica.

  • Sincronizzazione dei Sottoscrittori.

  • Gestione di una topologia di replica.

  • Monitoraggio di una topologia di replica.

  • Risoluzione dei problemi di replica.

È anche comune estendere l'applicazione combinando le funzionalità di replica con altre funzionalità fornite da SQL Server. Nella tabella seguente sono evidenziate alcune funzionalità estese che è possibile fornire nell'applicazione di replica.

Funzionalità Esempio
Amministrazione del server tramite SQL Server Management Objects (SMO) Applicazione che consente a un amministratore di collegare e configurare un database come server di pubblicazione in una topologia di replica.
Accesso ai dati tramite ADO.NET Applicazione che consente agli utenti di accedere e modificare a livello di codice i dati di vendita replicati in un database sottoscrittore locale mentre è offline e quindi connettersi e sincronizzare la sottoscrizione pull facendo clic su un pulsante.

Pianificazione della sicurezza

La sicurezza è importante in qualsiasi applicazione e la pianificazione della sicurezza deve essere completata prima di scrivere codice. La sicurezza delle applicazioni può essere suddivisa in tre parti principali: protezione del database, protezione della replica e scrittura di codice sicuro.

Negli argomenti seguenti vengono fornite informazioni sulla sicurezza:

Scelta di un ambiente di sviluppo

Quando si sviluppa un'applicazione di replica, è necessario considerare tre ambienti di sviluppo di base. Ogni ambiente di sviluppo ha accesso alle stesse funzionalità di replica con alcune eccezioni. Le applicazioni di replica possono essere sviluppate in ognuno degli ambienti seguenti.

  • Codice gestito

    Ambiente di sviluppo orientato agli oggetti che sfrutta i vantaggi della programmazione .NET Framework e di .NET Common Language Runtime (CLR). Il codice gestito è l'ambiente di programmazione consigliato sia per lo sviluppo .NET che per le applicazioni SQL Server. Le interfacce di replica gestite consentono la programmazione dell'amministrazione della replica in modo orientato agli oggetti senza dover conoscere Transact-SQL e fornisce anche alcune funzionalità di callback durante l'esecuzione di agenti di replica non disponibili dagli script. Il codice gestito è l'ambiente migliore per lo sviluppo di componenti riutilizzabili e applicazioni dell'interfaccia utente.

  • scrittura di script

    Applicazioni semplici che eseguono una serie di comandi come stored procedure di sistema di replica in Transact-SQL script o comandi in file batch. Sebbene sia possibile eseguire script in un ambiente gestito usando il provider gestito in-process di SQL Server, è possibile ottenere le stesse funzionalità usando interfacce di replica gestite, che forniscono anche funzionalità di callback. Lo scripting è l'ambiente migliore per l'esecuzione di attività che verranno eseguite solo poche volte e in cui le funzionalità di callback non sono necessarie, ad esempio l'installazione di un server di replica.

  • codice nativo

    Ambiente di sviluppo orientato agli oggetti che utilizza l'accesso diretto al sistema o agli oggetti COM in modo che il codice non sia gestito da CLR. Le interfacce di replica del codice nativo sono deprecate o sospese. Per altre informazioni, vedere Funzionalità deprecate nella replica di SQL Server o nellacompatibilità con le versioni precedenti della replica.

Scegliere l'interfaccia di programmazione della replica appropriata

Il passaggio di pianificazione finale consiste nella scelta dell'interfaccia di programmazione di replica appropriata che implementa la funzionalità di replica desiderata per l'ambiente di sviluppo scelto. La tabella seguente illustra le interfacce di programmazione della replica disponibili.

Interfaccia Ambiente Usi
Concetti sugli Oggetti di Gestione della Replica Codice gestito Amministrazione, monitoraggio e sincronizzazione.
Microsoft.SqlServer.Replication Codice gestito Sincronizzazione.
Microsoft.SqlServer.Replication.BusinessLogicSupport Codice gestito Creazione di gestori della logica di business per integrare la logica personalizzata con il processo di sincronizzazione di tipo merge.
Stored procedure di replica (Transact-SQL) Scrittura di script Amministrazione e monitoraggio.
Concetti relativi agli eseguibili dell'agente di replica Scrittura di script Sincronizzazione.

Esempio

In Adventure Works, i dati devono essere pubblicati per 200 rappresentanti di vendita in tutto il mondo. I rappresentanti delle vendite viaggiano spesso e dovranno usare computer portatili o assistenti digitali personali (PDA) per modificare i dati dei clienti e aggiungere nuovi ordini. Le modifiche dovranno quindi essere sincronizzate con il server di pubblicazione quando il rappresentante vendite connette il portatile alla rete.

Per questa applicazione, i passaggi di pianificazione potrebbero essere simili ai seguenti:

  1. La topologia di replica per questa applicazione esiste già. Tuttavia, è necessario creare una nuova sottoscrizione pull nel client. La pubblicazione deve utilizzare filtri con parametri per replicare un set univoco di dati in ogni rappresentante di vendita.

  2. Oltre all'accesso ai dati tipico necessario per un'applicazione di vendita, questa applicazione deve consentire a un venditore di sincronizzare la sottoscrizione pull su richiesta facendo clic su un pulsante. Poiché un rappresentante vendite installerà ed eseguirà l'applicazione, deve anche essere in grado di configurare una sottoscrizione e applicare lo snapshot iniziale nel client. Facoltativamente, l'applicazione userà l'infrastruttura fornita da Windows per rilevare la connettività wireless per sincronizzare automaticamente la sottoscrizione quando viene rilevata una connessione.

  3. Seguire tutte le linee guida di sicurezza per la replica, tra cui l'uso dell'autenticazione di Windows e una rete privata virtuale (VPN) durante la connessione al server di pubblicazione. Se si implementa la sincronizzazione Web, usare una connessione SSL (Secure Sockets Layer). Per altre informazioni, vedere Configurare la sincronizzazione Web.

  4. Per sfruttare le funzionalità di .NET Framework, l'applicazione viene sviluppata usando un linguaggio di codice gestito.

  5. In base a questi requisiti, l'interfaccia gestita RMO (Replication Management Objects) può fornire tutte le funzionalità di replica necessarie per questa applicazione.

Questo scenario di esempio è stato implementato in un'applicazione di esempio fornita con SQL Server.