Concetti di programmazione per replicazione

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Prima di sviluppare un'applicazione che utilizzi funzionalità di replica, segui questi passaggi generali di pianificazione:

  1. Definire la topologia di replica.

  2. Definire le funzionalità dell'applicazione.

  3. Pianificare la sicurezza

  4. Scegliere un ambiente di sviluppo.

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

Il resto di questo articolo descrive questi passaggi in modo più dettagliato. Per illustrare il processo di pianificazione, viene incluso un esempio.

Definizione della topologia di replicazione

Il primo passaggio nella programmazione della replica consiste nel definire la topologia di replica per l'applicazione. Se stai scrivendo un'applicazione che utilizza una topologia di replica esistente, come un'applicazione client che accede ai dati di un abbonato esistente, passa al passo successivo.

Nota

In alcuni casi, il deployment della topologia di replicazione è l'unico scopo dell'applicazione.

La scelta della topologia di replica da definire dipende dai molti fattori, inclusi i seguenti:

  • Se i dati replicati debbano essere aggiornati, e da chi.

  • Consistenza, autonomia e latenza sono aspetti da considerare nella distribuzione dei dati.

  • Ambiente di replica, inclusi utenti aziendali, infrastruttura tecnica, rete e sicurezza e caratteristiche dei dati.

  • Tipi di replica e opzioni di replica.

  • Topologie di replica e come queste si allineano con i tipi di replica.

Se sei nuovo alla replica di Microsoft SQL Server, consulta Tipi di Replica.

Definizione della funzionalità applicativa

Dopo aver definito la topologia di replicazione, decidi quali funzionalità offre la tua applicazione. Queste funzionalità possono variare da uno script che sincronizza una sottoscrizione a un'applicazione con un'interfaccia utente che consente di configurare la replica. La replica supporta le attività di programmazione generali seguenti:

  • Impostazione 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 la propria applicazione combinando le funzionalità di replica con altre funzionalità offerte 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 associare e configurare un database come server di pubblicazione in una topologia di replica.
Accesso ai dati mediante ADO.NET Un'applicazione che consente agli utenti di accedere e modificare in modo programmativo i dati di vendita replicati in un database locale degli Abbonati mentre sono offline, quindi di connettersi e sincronizzare l'abbonamento pull selezionando un pulsante.

Pianificazione della sicurezza

La sicurezza è importante in qualsiasi applicazione e dovresti pianificare la sicurezza prima di scrivere qualsiasi codice. La sicurezza dell'applicazione può essere suddivisa in tre parti principali, ovvero protezione del database, protezione della replica e scrittura di codice sicuro.

I seguenti articoli forniscono informazioni sulla sicurezza:

Scelta di un ambiente di sviluppo

Quando sviluppi un'applicazione di replica, considera questi tre ambienti di sviluppo di base. Ogni ambiente di sviluppo dispone dell'accesso alle stesse funzionalità di replica, ma con alcune eccezioni. Puoi sviluppare applicazioni di replica in ciascuno dei seguenti ambienti.

  • Codice gestito

    Ambiente di sviluppo orientato agli oggetti che sfrutta i vantaggi della programmazione .NET Framework e del runtime del common language .NET (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 permettono di programmare l'amministrazione della replica in modo orientato agli oggetti senza dover conoscere Transact-SQL. Fornisce anche alcune funzionalità di callback quando si esegue agenti di replica che non sono disponibili dagli script. Il codice gestito rappresenta l'ambiente ideale per lo sviluppo di componenti riutilizzabili e applicazioni dell'interfaccia utente.

  • Scripting

    Applicazioni semplici che eseguono una serie di comandi come stored procedure di sistema di replica in script o comandi Transact-SQL nei file batch. Sebbene si possano eseguire script in un ambiente gestito utilizzando il provider gestito in processo di SQL Server, si possono ottenere la stesse funzionalità utilizzando interfacce di replica gestite, che forniscono anche funzionalità di callback. Lo scripting è l'ambiente migliore per eseguire compiti che si eseguono solo poche volte e dove non sono necessarie funzionalità di callback, come 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 dal CLR. Le interfacce di replica del codice nativo sono deprecate o non più supportate. Per altre informazioni, vedere Funzionalità deprecate nella replica di SQL Server o Compatibilità con le versioni precedenti della replica.

Scegli l'interfaccia di programmazione di replicazione appropriata

L'ultimo passaggio della pianificazione consiste nello scegliere l'interfaccia di programmazione della replica appropriata che consenta di implementare le funzionalità di replica desiderate per l'ambiente di sviluppo scelto. La tabella seguente mostra le interfacce di programmazione di replica disponibili.

Interfaccia Ambiente Usi
Concetti sugli Oggetti di Gestione della Replica Codice gestito Amministrazione, monitoraggio e sincronizzazione.
Microsoft.SqlServer.Replication Codice gestito La 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 unione.
Stored procedure di replica (Transact-SQL) Esecuzione script Amministrazione e monitoraggio.
Concetti relativi agli eseguibili dell'agente di replica Esecuzione script La sincronizzazione.

Esempio

In Adventure Works, i dati devono essere pubblicati per 200 rappresentanti di vendita in tutto il mondo. I rappresentanti di vendita viaggiano spesso e devono utilizzare computer portatili o assistenti digitali personali (PDA) per modificare i dati dei clienti e aggiungere nuovi ordini. I rappresentanti di vendita devono sincronizzare le modifiche con l'Publisher quando collegano il laptop alla rete.

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

  1. La topologia di replica per questa applicazione esiste già. Tuttavia, devi creare un nuovo abbonamento pull al cliente. Utilizza filtri parametrizzati nella pubblicazione per replicare un insieme unico di dati a ogni rappresentante di vendita.

  2. Oltre all'accesso ai dati tipico richiesto 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 di vendita installa ed esegue l'applicazione, deve anche essere in grado di configurare un abbonamento e applicare lo snapshot iniziale al client. Opzionalmente, l'applicazione utilizza l'infrastruttura fornita da Windows per rilevare la connettività wireless e sincronizzare automaticamente l'abbonamento quando viene rilevata una connessione.

  3. Segui tutte le linee guida di sicurezza per la replica, inclusa l'autenticazione Windows e una rete privata virtuale (VPN) quando ti connetti allo Publisher. Se implementi la sincronizzazione Web, usa una connessione Transport Layer Security (TLS), precedentemente nota come Secure Sockets Layer (SSL). Per altre informazioni, vedere Configure Web Synchronization.

  4. Per sfruttare le funzionalità del framework .NET, sviluppa l'applicazione utilizzando un linguaggio di codice gestito.

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

Puoi scaricare l'applicazione di esempio di AdventureWorks che implementa questo scenario di esempio da SQL Server.