Concetti di base relativi alla programmazione della replica
Si applica a: SQL Server Istanza gestita di SQL di Azure
Prima di sviluppare un'applicazione che utilizza funzionalità di replica, è necessario eseguire i passaggi generali per la pianificazione seguenti:
Definire la topologia di replica.
Definire le funzionalità dell'applicazione.
Pianificare la sicurezza
Scegliere un ambiente di sviluppo.
Scegliere l'interfaccia di programmazione della replica appropriata.
Questi passaggi vengono descritti in modo più dettagliato nella parte restante di questo argomento. È incluso un esempio che consente di illustrare il processo di pianificazione.
Definizione della topologia di replica
Il primo passaggio nella programmazione della replica consiste nel definire la topologia di replica per l'applicazione. Se si sta scrivendo un'applicazione che utilizzerà una topologia di replica esistente, ad esempio un'applicazione client che accede a dati in un sottoscrittore esistente, è necessario andare al passaggio successivo.
Nota
In alcuni casi, la distribuzione della topologia di replica rappresenterà l'unico scopo dell'applicazione.
La scelta della topologia di replica da definire dipende dai molti fattori, inclusi i seguenti:
Se i dati replicati devono essere o meno aggiornati ed eventualmente 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 non si ha ancora una volta la replica di Microsoft SQL Server, vedere Tipi di replica.
Definizione delle funzionalità dell'applicazione
Dopo aver definito la topologia di replica, è necessario decidere quali funzionalità verranno offerte dall'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 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 associare e configurare un database come server di pubblicazione in una topologia di replica. |
Accesso ai dati mediante ADO.NET | Applicazione che consente agli utenti di accedere e di modificare a livello di codice i dati di vendita replicati in un database del sottoscrittore locale in modalità offline, quindi di connettere e sincronizzare la sottoscrizione pull facendo clic su un pulsante. |
Pianificazione della sicurezza
Poiché la sicurezza è un aspetto importante per qualsiasi applicazione, è necessario completarne la pianificazione prima della scrittura del codice. La sicurezza dell'applicazione può essere suddivisa in tre parti principali, ovvero protezione del database, protezione della replica e scrittura di codice sicuro.
Negli argomenti seguenti vengono fornite informazioni sulla sicurezza:
Visualizzare e modificare le impostazioni di sicurezza della replica
Centro sicurezza per il motore di database di SQL Server e il Database SQL di Azure
Scelta di un ambiente di sviluppo
Nello sviluppo di un'applicazione di replica è necessario considerare tre ambienti di sviluppo di base. Ogni ambiente di sviluppo dispone dell'accesso alle stesse funzionalità di replica, ma 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 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 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. La generazione di script rappresenta l'ambiente ideale per l'esecuzione di attività che verranno eseguite raramente e nei casi in cui non sono richieste funzionalità di callback, 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 cui il codice non è gestito da 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.
Scegliere l'interfaccia di programmazione della replica 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. Nella tabella seguente vengono illustrate le interfacce di programmazione della replica disponibili.
Interfaccia | Ambiente | Usi |
---|---|---|
Replication Management Objects Concepts | 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. |
Replication Agent Executables Concepts | Esecuzione script | La sincronizzazione. |
Esempio
In Adventure Works, i dati devono essere pubblicati per 200 rappresentanti di vendita in tutto il mondo. I rappresentanti viaggiano spesso e avranno quindi l'esigenza di utilizzare computer portatili o PDA per modificare i dati relativi ai clienti e aggiungere nuovi ordini. Le modifiche dovranno quindi essere sincronizzate con il server di pubblicazione nel momento in cui il rappresentante connette il computer portatile alla rete.
Per questa applicazione, i passaggi di pianificazione potrebbero essere analoghi ai seguenti:
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 di dati univoco per ogni rappresentante.
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. Dopo aver installato ed eseguito l'applicazione, i rappresentanti dovranno inoltre essere in grado di configurare una sottoscrizione e applicare lo snapshot iniziale al client. L'applicazione utilizzerà eventualmente l'infrastruttura fornita da Windows per individuare la connettività wireless e per sincronizzare automaticamente la sottoscrizione nel momento in cui viene rilevata una connessione.
Seguire tutte le linee guida per la sicurezza della replica, incluso l'utilizzo dell'autenticazione di Windows e di una rete privata virtuale (VPN, Virtual Private Network) per la connessione al server di pubblicazione. Se si implementa la sincronizzazione Web, usare una connessione tramite protocollo TLS (Transport Layer Security), noto in precedenza come SSL (Secure Sockets Layer). Per altre informazioni, vedere Configure Web Synchronization.
Per sfruttare le funzionalità di .NET Framework, l'applicazione viene sviluppata usando un linguaggio di codice gestito.
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.
Questo scenario di esempio è stato implementato nell'applicazione di esempio AdventureWorks che può essere scaricata per SQL Server.