Concetti di base relativi alla programmazione della replica
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 protezione
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 protezione e caratteristiche dei dati.
Tipi di replica e opzioni di replica.
Topologie di replica e come queste si allineano con i tipi di replica.
Per ulteriori informazioni sulla progettazione di una topologia di replica adatta alle esigenze dell'azienda, vedere Considerazioni sulla progettazione di soluzioni (Replica). Se non si ha familiarità con la replica Microsoft SQL Server, vedere Panoramica (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.
È inoltre 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 di server mediante 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à non in linea, quindi di connettere e sincronizzare la sottoscrizione pull facendo clic su un pulsante. |
Pianificazione della protezione
Poiché la protezione è un aspetto importante per qualsiasi applicazione, è necessario completarne la pianificazione prima della scrittura del codice. La protezione 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 protezione:
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 offerti dalla programmazione con .NET Framework e da Common Language Runtime .NET (CLR). Il codice gestito rappresenta l'ambiente di programmazione consigliato sia per lo sviluppo .NET che di applicazioni SQL Server. Le interfacce di replica gestite consentono la programmazione dell'amministrazione della replica in modalità orientata agli oggetti senza che sia necessario conoscere Transact-SQL e forniscono inoltre 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.
Generazione di script
Applicazioni semplici che eseguono una serie di comandi come stored procedure del sistema di replica in script Transact-SQL o comandi all'interno di file batch. Sebbene sia possibile eseguire script in un ambiente gestito utilizzando il provider gestito SQL Server in-process, è possibile ottenere le stesse funzionalità utilizzando le interfacce di replica gestite, che forniscono inoltre 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 obsolete o non più supportate. Per ulteriori informazioni, vedere Caratteristiche deprecate nella replica di SQL Server o Funzionalità non più utilizzate nella replica di SQL Server.
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 |
Utilizzi |
---|---|---|
Concetti di base relativi a RMO (Replication Management Objects) |
Codice gestito |
Amministrazione, monitoraggio e sincronizzazione. |
Codice gestito |
Sincronizzazione. |
|
Codice gestito |
Creazione di gestori della logica di business per integrare la logica personalizzata con il processo di sincronizzazione di unione. |
|
Generazione di script |
Amministrazione e monitoraggio. |
|
Concetti di base relativi ai file eseguibili dell'agente di replica |
Generazione di script |
Sincronizzazione. |
Esempio
La società Adventure Works ha la necessità di pubblicare dati per 200 rappresentanti distribuiti 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 protezione 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. In caso di implementazione della sincronizzazione Web, utilizzare una connessione SSL (Secure Sockets Layer). Per ulteriori informazioni, vedere Configurazione della sincronizzazione tramite il Web.
Per sfruttare le funzionalità offerte da .NET Framework, l'applicazione viene sviluppata utilizzando 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 in un'applicazione di esempio inclusa in SQL Server. Per ulteriori informazioni, vedere AdventureWorks Sales Orders Sample for Merge Replication.