Concepts de programmation en matière de réplicationReplication Programming Concepts

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database (Managed Instance uniquement) nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Avant de développer une application qui utilise des fonctionnalités de réplication, vous devez effectuer les opérations de planification générales indiquées ci-dessous :Before developing an application that uses replication functionalities, you should follow the following general planning steps:

  1. Définissez votre topologie de réplication.Define your replication topology.

  2. Définissez les fonctionnalités de l'application.Define application functionality.

  3. Planifiez la sécurité.Plan for security.

  4. Choisissez un environnement de développement.Choose a development environment.

  5. Choisissez l'interface de programmation de réplication appropriée.Choose the appropriate replication programming interface.

Le reste de cette rubrique décrit ces opérations de manière plus détaillée.The rest of this topic describes these steps in more detail. Un exemple a été inclus afin d'illustrer le processus de planification.To help illustrate the planning process, an example has been included.

Définition de la topologie de réplicationDefining the Replication Topology

Pour la programmation de la réplication, la première étape consiste à définir la topologie de réplication de votre application.The first step in programming replication is to define the replication topology for your application. Si vous écrivez une application qui utilisera une topologie de réplication existante, telle qu'une application cliente qui accède aux données d'un abonné existant, vous devez passer à l'étape suivante.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.

Notes

Dans certains cas, l'application aura uniquement pour but de déployer la topologie de réplication.In some cases, deploying the replication topology will be the sole purpose of the application.

La topologie de réplication que vous définissez dépend de nombreux facteurs, entre autres :The replication topology that you define depends on many factors, including the following:

  • la nécessité ou non de mettre à jour les données répliquées, et la personne chargée de leur mise à jour ;Whether or not replicated data needs to be updated, and by whom.

  • vos impératifs de distribution de données en matière de cohérence, d'autonomie et de latence ;Your data distribution needs regarding consistency, autonomy, and latency.

  • l'environnement de réplication, y compris les utilisateurs professionnels, l'infrastructure technique, le réseau et la sécurité, ainsi que les caractéristiques des données ;The replication environment, including business users, technical infrastructure, network and security, and data characteristics.

  • les types de réplication et les options de réplication ;The types of replication and replication options.

  • les topologies de réplication et leur adéquation aux types de réplication.The replication topologies and how they align with the types of replication.

Si vous débutez avec la réplication MicrosoftMicrosoft SQL ServerSQL Server, consultez Types de réplication.If you are new to MicrosoftMicrosoft SQL ServerSQL Server replication, see Types of Replication.

Définition des fonctionnalités de l'applicationDefining Application Functionality

Une fois que la topologie de réplication a été définie, vous devez choisir les fonctionnalités que votre application offrira,Once the replication topology has been defined, you should decide on the functionalities that your application will offer. qu'il s'agisse d'un simple script qui synchronise un abonnement ou d'une application comportant une interface utilisateur pour configurer la réplication.These functionalities can range from a script that synchronizes a subscription to an application with a user interface to configure replication. La réplication prend en charge les tâches de programmation générales indiquées ci-dessous :Replication supports the following general programming tasks:

  • Configuration de la réplicationSetting up replication.

  • Synchronisation des abonnésSynchronizing Subscribers.

  • Gestion d'une topologie de réplicationMaintaining a replication topology.

  • Analyse d’une topologie de réplication.Monitoring a replication topology.

  • Dépannage de la réplication.Troubleshooting replication.

Vous pouvez également étendre votre application en associant les fonctionnalités de réplication à d'autres fonctionnalités fournies par SQL ServerSQL Server.It is also common extend your application by combining replication functionalities with other functionalities provided by SQL ServerSQL Server. Le tableau suivant décrit certaines fonctionnalités étendues que vous pouvez fournir dans votre application de réplication.The following table highlights some extended functionalities that you might provide in your replication application.

FonctionnalitéFunctionality ExempleExample
Administration de serveur à l'aide de SQL ServerSQL Server Management Objects (SMO)Server administration using SQL ServerSQL Server Management Objects (SMO) Application qui permet à un administrateur de joindre et de configurer une base de données en tant que serveur de publication dans une topologie de réplication.An application that enables an administrator to attach and configure a database as a Publisher in a replication topology.
Accès aux données à l'aide d'ADO.NETData access using ADO.NET Application qui permet aux utilisateurs d'accéder par programme aux données de ventes répliquées et de les modifier dans une base de données d'abonné locale en mode hors connexion, puis de se connecter et de synchroniser l'abonnement par extraction de données (pull) en cliquant sur un bouton.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.

Planification de la sécuritéPlanning for Security

La sécurité est un impératif pour une application. Il est donc essentiel de prévoir les besoins en matière de sécurité avant l'écriture du code.Security is important in any application, and planning for security should be completed before writing any code. La sécurité d'une application se décompose en trois parties principales : sécurisation de la base de données, sécurisation de la réplication, et écriture de code sécurisé.Application security can be divided into three main parts: securing the database, securing replication, and writing secure code.

Les rubriques suivantes contiennent des informations sur la sécurité :The following topics provide information on security:

Choix d'un environnement de développementChoosing a Development Environment

Lorsque vous développez une application de réplication, trois environnements de développement de base doivent être pris en compte.When developing a replication application, there are three basic development environments to consider. Chaque environnement de développement a accès aux mêmes fonctionnalités de réplication, à quelques exceptions près.Each development environment has access to the same replication functionalities with some exceptions. Il est possible de développer des applications de réplication dans chacun des environnements suivants.Replication applications can be developed in each of the following environments.

  • Code managéManaged code

    Il s'agit d'un environnement de développement orienté objet qui tire parti des avantages de la programmation du .NET Framework.NET Framework et du Common Language Runtime (CLR) .NET.Object oriented development environment that leverages the benefits of the .NET Framework.NET Framework programming and the .NET common language runtime (CLR). Le code managé est l'environnement de programmation recommandé pour le développement .NET et les applications SQL ServerSQL Server.Managed code is the recommended programming environment for both .NET development and SQL ServerSQL Server applications. Les interfaces de réplication managées permettent de programmer l'administration de la réplication en mode orienté objet sans pour autant connaître le langage Transact-SQLTransact-SQL. Elles fournissent également certaines fonctionnalités de rappel lors de l'exécution d'agents de réplication qui ne sont pas disponibles à partir de scripts.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. Le code managé constitue l'environnement idéal pour le développement de composants réutilisables et d'applications d'interface utilisateur.Managed code is the best environment for developing reusable components and user interface applications.

  • Création de scriptsScripting

    Il s'agit d'applications simples qui exécutent une série de commandes sous forme de procédures stockées de réplication système dans des scripts Transact-SQLTransact-SQL ou sous forme de commandes dans des fichiers de commandes.Simple applications that execute a series of commands as either replication system stored procedures in Transact-SQLTransact-SQL scripts or commands in batch files. Il est possible d'exécuter des scripts dans un environnement managé à l'aide du fournisseur managé intra-processus SQL ServerSQL Server. Vous pouvez cependant obtenir les mêmes fonctionnalités en utilisant les interfaces de réplication managées, lesquelles fournissent également des fonctionnalités de rappel.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 création de scripts constitue l'environnement idéal pour l'exécution de tâches peu fréquemment utilisées et lorsque les fonctionnalités de rappel ne sont pas requises (par exemple, pour l'installation d'un serveur de réplication).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.

  • Code natifNative code

    Il s'agit d'un environnement de développement orienté objet qui utilise l'accès direct aux objets système ou COM de sorte que ce code ne soit pas géré par le CLR.Object-oriented development environment that utilizes direct access to the system or COM objects such that code is not managed by the CLR. Les interfaces de réplication en environnement de code natif sont déconseillées.Native code replication interfaces are deprecated or discontinued. Pour plus d’informations, consultez Fonctionnalités déconseillées dans la réplication SQL Server ou Compatibilité descendante de la réplication.For more information, see Deprecated Features in SQL Server Replication or Replication Backward Compatibility.

Choix de l'interface de programmation de réplication appropriéeChoose the Appropriate Replication Programming Interface

La dernière étape de la planification consiste à choisir l'interface de programmation de réplication appropriée qui implémente les fonctionnalités de réplication souhaitées pour l'environnement de développement choisi.The final planning step is choosing the appropriate replication programming interface that implements the desired replication functionality for the chosen development environment. Le tableau suivant répertorie les interfaces de programmation de réplication disponibles.The following table shows the replication programming interfaces available.

InterfaceInterface EnvironnementEnvironment UtilisationsUses
Concepts liés à Replication Management ObjectsReplication Management Objects Concepts Code managéManaged code Administration, analyse et synchronisation.Administration, monitoring, and synchronization.
Microsoft.SqlServer.Replication Code managéManaged code Synchronisation.Synchronization.
Microsoft.SqlServer.Replication.BusinessLogicSupport Code managéManaged code Création de gestionnaires de logique métier pour intégrer la logique personnalisée au processus de synchronisation de fusion.Creation of business logic handlers to integrate custom logic with the merge synchronization process.
Procédures stockées de réplication (Transact-SQL)Replication Stored Procedures (Transact-SQL) Création de scriptsScripting Administration et analyse.Administration and monitoring.
Concepts des exécutables de l'agent de réplicationReplication Agent Executables Concepts Création de scriptsScripting Synchronisation.Synchronization.

ExempleExample

Dans le contexte d'Adventure WorksAdventure Works, les données doivent être publiées pour 200 représentants dans le monde.At Adventure WorksAdventure Works, data needs to be published for 200 sales representatives around the world. Les représentants voyagent fréquemment ; ils devront donc utiliser des ordinateurs portables ou des assistants numériques personnels (PDA) pour modifier les données client et ajouter de nouvelles commandes.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. Les modifications devront ensuite être synchronisées avec le serveur de publication lorsque le représentant connectera l'ordinateur portable au réseau.The changes will then need to be synchronized with the Publisher when the sales representative connects the laptop to the network.

Pour cette application, les étapes de la planification peuvent être les suivantes :For this application, the planning steps might look like the following:

  1. La topologie de réplication existe déjà pour cette application.The replication topology for this application already exists. Toutefois, un nouvel abonnement par extraction doit être créé sur le client.However, a new pull subscription must be created at the client. La publication doit utiliser des filtres paramétrables pour répliquer un jeu de données unique sur chaque représentant.The publication should use parameterized filters to replicate a unique set of data to each sales representative.

  2. Cette application doit non seulement garantir l'accès aux données classique requis pour une application de vente, mais également permettre à un vendeur de synchroniser l'abonnement par extraction de données à la demande en cliquant sur un bouton.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. Étant donné qu'un représentant installera et exécutera l'application, l'application doit également être en mesure de configurer un abonnement et d'appliquer l'instantané initial au 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'application utilisera éventuellement l'infrastructure fournie par Windows pour détecter la connectivité sans fil et synchroniser automatiquement l'abonnement lors de la détection d'une connexion.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. Respectez toutes les consignes de sécurité pour la réplication, notamment le recours à l'authentification Windows et à un réseau privé virtuel (VPN) lors de la connexion au serveur de publication.Follow all of the security guidelines for replication, including using Windows Authentication and a virtual private network (VPN) when connecting to the publisher. Si vous mettez en œuvre la synchronisation Web, utilisez une connexion SSL (Secure Sockets Layer).If implementing Web synchronization, use a secure sockets layer (SSL) connection. Pour plus d’informations, consultez Configurer la synchronisation Web.For more information, see Configure Web Synchronization.

  4. Pour que l'application puisse exploiter les fonctionnalités du .NET Framework.NET Framework, elle est développée à l'aide d'un langage de code managé.In order to take advantage of the features of the .NET Framework.NET Framework, the application is developed using a managed code language.

  5. Conformément à ces spécifications, l'interface managée Replication Management Objects sera en mesure d'assurer toutes les fonctionnalités de réplication nécessaires pour cette application.Based on these requirements, the Replication Management Objects (RMO) managed interface can provide all of the needed replication functionality for this application.

Cet exemple de scénario a été mis en œuvre dans l’exemple d’application AdventureWorks qui peut être téléchargé pour SQL ServerSQL Server.This example scenario has been implemented in the AdventureWorks sample application that can be downloaded for SQL ServerSQL Server.