Concetti di base relativi alla programmazione della replicaReplication Programming Concepts

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Prima di sviluppare un'applicazione che utilizza funzionalità di replica, è necessario eseguire i passaggi generali per la pianificazione seguenti:Before developing an application that uses replication functionalities, you should follow the following general planning steps:

  1. Definire la topologia di replica.Define your replication topology.

  2. Definire le funzionalità dell'applicazione.Define application functionality.

  3. Pianificare la sicurezzaPlan for security.

  4. Scegliere un ambiente di sviluppo.Choose a development environment.

  5. Scegliere l'interfaccia di programmazione della replica appropriata.Choose the appropriate replication programming interface.

    Questi passaggi vengono descritti in modo più dettagliato nella parte restante di questo argomento.The rest of this topic describes these steps in more detail. È incluso un esempio che consente di illustrare il processo di pianificazione.To help illustrate the planning process, an example has been included.

Definizione della topologia di replicaDefining the Replication Topology

Il primo passaggio nella programmazione della replica consiste nel definire la topologia di replica per l'applicazione.The first step in programming replication is to define the replication topology for your application. 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.If you are writing an application that will use an existing replication topology, such as a client application that accesses data at an existing subscriber, you should move onto the next step.

Nota

In alcuni casi, la distribuzione della topologia di replica rappresenterà l'unico scopo dell'applicazione.In some cases, deploying the replication topology will be the sole purpose of the application.

La scelta della topologia di replica da definire dipende dai molti fattori, inclusi i seguenti:The replication topology that you define depends on many factors, including the following:

  • Se i dati replicati devono essere o meno aggiornati ed eventualmente da chi.Whether or not replicated data needs to be updated, and by whom.

  • Consistenza, autonomia e latenza sono aspetti da considerare nella distribuzione dei dati.Your data distribution needs regarding consistency, autonomy, and latency.

  • Ambiente di replica, inclusi utenti aziendali, infrastruttura tecnica, rete e sicurezza e caratteristiche dei dati.The replication environment, including business users, technical infrastructure, network and security, and data characteristics.

  • Tipi di replica e opzioni di replica.The types of replication and replication options.

  • Topologie di replica e come queste si allineano con i tipi di replica.The replication topologies and how they align with the types of replication.

    Se non si ha familiarità con la replica MicrosoftMicrosoft SQL ServerSQL Server, vedere Tipi di replica.If you are new to MicrosoftMicrosoft SQL ServerSQL Server replication, see Types of Replication.

Definizione delle funzionalità dell'applicazioneDefining Application Functionality

Dopo aver definito la topologia di replica, è necessario decidere quali funzionalità verranno offerte dall'applicazione.Once the replication topology has been defined, you should decide on the functionalities that your application will offer. Queste funzionalità possono variare da uno script che sincronizza una sottoscrizione a un'applicazione con un'interfaccia utente che consente di configurare la replica.These functionalities can range from a script that synchronizes a subscription to an application with a user interface to configure replication. La replica supporta le attività di programmazione generali seguenti:Replication supports the following general programming tasks:

  • Impostazione della replica.Setting up replication.

  • Sincronizzazione dei sottoscrittori.Synchronizing Subscribers.

  • Gestione di una topologia di replica.Maintaining a replication topology.

  • Monitoraggio di una topologia di replica.Monitoring a replication topology.

  • Risoluzione dei problemi di replica.Troubleshooting replication.

    È inoltre comune estendere l'applicazione combinando le funzionalità di replica con altre funzionalità fornite da SQL ServerSQL Server.It is also common extend your application by combining replication functionalities with other functionalities provided by SQL ServerSQL Server. Nella tabella seguente sono evidenziate alcune funzionalità estese che è possibile fornire nell'applicazione di replica.The following table highlights some extended functionalities that you might provide in your replication application.

FunzionalitàFunctionality EsempioExample
Amministrazione di server mediante SQL ServerSQL Server Management Objects (SMO)Server administration using SQL ServerSQL 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.An application that enables an administrator to attach and configure a database as a Publisher in a replication topology.
Accesso ai dati mediante ADO.NETData access using 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.An application that enables users to programmatically access and change replicated sales data in a local Subscriber database while offline and then connect and synchronize the pull subscription by clicking a button.

Pianificazione della sicurezzaPlanning for Security

Poiché la sicurezza è un aspetto importante per qualsiasi applicazione, è necessario completarne la pianificazione prima della scrittura del codice.Security is important in any application, and planning for security should be completed before writing any code. La sicurezza dell'applicazione può essere suddivisa in tre parti principali, ovvero protezione del database, protezione della replica e scrittura di codice sicuro.Application security can be divided into three main parts: securing the database, securing replication, and writing secure code.

Negli argomenti seguenti vengono fornite informazioni sulla sicurezza:The following topics provide information on security:

Scelta di un ambiente di sviluppoChoosing a Development Environment

Nello sviluppo di un'applicazione di replica è necessario considerare tre ambienti di sviluppo di base.When developing a replication application, there are three basic development environments to consider. Ogni ambiente di sviluppo dispone dell'accesso alle stesse funzionalità di replica, ma con alcune eccezioni.Each development environment has access to the same replication functionalities with some exceptions. Le applicazioni di replica possono essere sviluppate in ognuno degli ambienti seguenti.Replication applications can be developed in each of the following environments.

  • Codice gestitoManaged code

    Ambiente di sviluppo orientato agli oggetti che sfrutta i vantaggi offerti dalla programmazione con .NET Framework.NET Framework e da Common Language Runtime .NET (CLR).Object oriented development environment that leverages the benefits of the .NET Framework.NET Framework programming and the .NET common language runtime (CLR). Il codice gestito rappresenta l'ambiente di programmazione consigliato sia per lo sviluppo .NET che di applicazioni SQL ServerSQL Server.Managed code is the recommended programming environment for both .NET development and SQL ServerSQL Server applications. Le interfacce di replica gestite consentono la programmazione dell'amministrazione della replica in modalità orientata agli oggetti senza che sia necessario conoscere Transact-SQLTransact-SQL e forniscono inoltre alcune funzionalità di callback durante l'esecuzione di agenti di replica non disponibili dagli script.Managed replication interfaces enable the programming of replication administration in an object-oriented manner without having to know Transact-SQLTransact-SQL, and it also provides some callback functionalities when running replication agents that are not available from scripts. Il codice gestito rappresenta l'ambiente ideale per lo sviluppo di componenti riutilizzabili e applicazioni dell'interfaccia utente.Managed code is the best environment for developing reusable components and user interface applications.

  • ScriptingScripting

    Applicazioni semplici che eseguono una serie di comandi come stored procedure del sistema di replica in script Transact-SQLTransact-SQL o comandi all'interno di file batch.Simple applications that execute a series of commands as either replication system stored procedures in Transact-SQLTransact-SQL scripts or commands in batch files. Sebbene sia possibile eseguire script in un ambiente gestito utilizzando il provider gestito SQL ServerSQL Server in-process, è possibile ottenere le stesse funzionalità utilizzando le interfacce di replica gestite, che forniscono inoltre funzionalità di callback.While you can execute scripts in a managed environment using the SQL ServerSQL Server in-process managed provider, the same functionality can obtained by using managed replication interfaces, which also provide callback functionalities. 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.Scripting is the best environment for executing tasks that will run only a few times and where callback functionalities are not required, such as installing a replication server.

  • Codice nativoNative code

    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.Object-oriented development environment that utilizes direct access to the system or COM objects such that code is not managed by the CLR. Le interfacce di replica del codice nativo sono deprecate o non più supportate.Native code replication interfaces are deprecated or discontinued. Per altre informazioni, vedere Funzionalità deprecate nella replica di SQL Server o Compatibilità con le versioni precedenti della replica.For more information, see Deprecated Features in SQL Server Replication or Replication Backward Compatibility.

Scegliere l'interfaccia di programmazione della replica appropriataChoose the Appropriate Replication Programming Interface

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.The final planning step is choosing the appropriate replication programming interface that implements the desired replication functionality for the chosen development environment. Nella tabella seguente vengono illustrate le interfacce di programmazione della replica disponibili.The following table shows the replication programming interfaces available.

InterfacciaInterface AmbienteEnvironment UtilizziUses
Concetti di base relativi a RMO (Replication Management Objects)Replication Management Objects Concepts Codice gestitoManaged code Amministrazione, monitoraggio e sincronizzazione.Administration, monitoring, and synchronization.
Microsoft.SqlServer.Replication Codice gestitoManaged code Sincronizzazione.Synchronization.
Microsoft.SqlServer.Replication.BusinessLogicSupport Codice gestitoManaged code Creazione di gestori della logica di business per integrare la logica personalizzata con il processo di sincronizzazione di unione.Creation of business logic handlers to integrate custom logic with the merge synchronization process.
Stored procedure per la replica (Transact-SQL)Replication Stored Procedures (Transact-SQL) Generazione di scriptScripting Amministrazione e monitoraggio.Administration and monitoring.
Concetti di base relativi ai file eseguibili dell'agente di replicaReplication Agent Executables Concepts Generazione di scriptScripting Sincronizzazione.Synchronization.

EsempioExample

La società Adventure WorksAdventure Works ha la necessità di pubblicare dati per 200 rappresentanti distribuiti in tutto il mondo.At Adventure WorksAdventure Works, data needs to be published for 200 sales representatives around the world. 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.The sales representatives travel often and will need to use laptop computers or personal digital assistants (PDAs) to change customer data and add new orders. Le modifiche dovranno quindi essere sincronizzate con il server di pubblicazione nel momento in cui il rappresentante connette il computer portatile alla rete.The changes will then need to be synchronized with the Publisher when the sales representative connects the laptop to the network.

Per questa applicazione, i passaggi di pianificazione potrebbero essere analoghi ai seguenti:For this application, the planning steps might look like the following:

  1. La topologia di replica per questa applicazione esiste già.The replication topology for this application already exists. È tuttavia necessario creare una nuova sottoscrizione pull nel client.However, a new pull subscription must be created at the client. La pubblicazione deve utilizzare filtri con parametri per replicare un set di dati univoco per ogni rappresentante.The publication should use parameterized filters to replicate a unique set of data to each sales representative.

  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.In addition to the typical data access required for a sales application, this application should enable a salesperson to synchronize the pull subscription on demand by clicking a button. 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.Since a sales representative will install and run the application, it also needs to be able to configure a subscription and apply the initial snapshot at the 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.Optionally, the application will use the infrastructure provided by Windows for sensing wireless connectivity to automatically synchronize the subscription when a connection is detected.

  3. 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.Follow all of the security guidelines for replication, including using Windows Authentication and a virtual private network (VPN) when connecting to the publisher. In caso di implementazione della sincronizzazione Web, utilizzare una connessione SSL (Secure Sockets Layer).If implementing Web synchronization, use a secure sockets layer (SSL) connection. Per altre informazioni, vedere Configurare la sincronizzazione Web.For more information, see Configure Web Synchronization.

  4. Per sfruttare le caratteristiche offerte da .NET Framework.NET Framework, l'applicazione viene sviluppata utilizzando un linguaggio di codice gestito.In order to take advantage of the features of the .NET Framework.NET Framework, the application is developed using a managed code language.

  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.Based on these requirements, the Replication Management Objects (RMO) managed interface can provide all of the needed replication functionality for this application.

    Questo scenario di esempio è stato implementato nell'applicazione di esempio AdventureWorks che è possibile scaricare per SQL ServerSQL Server.This example scenario has been implemented in the AdventureWorks sample application that can be downloaded for SQL ServerSQL Server.