Concepts de programmation en matière de réplication

S’applique à : SQL Server Azure SQL Managed Instance

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 :

  1. Définissez votre topologie de réplication.

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

  3. Planifiez la sécurité.

  4. Choisissez un environnement de développement.

  5. Choisissez l'interface de programmation de réplication appropriée.

Le reste de cette rubrique décrit ces opérations de manière plus détaillée. Un exemple a été inclus afin d'illustrer le processus de planification.

Définition de la topologie de réplication

Pour la programmation de la réplication, la première étape consiste à définir la topologie de réplication de votre 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.

Remarque

Dans certains cas, l'application aura uniquement pour but de déployer la topologie de réplication.

La topologie de réplication que vous définissez dépend de nombreux facteurs, entre autres :

  • la nécessité ou non de mettre à jour les données répliquées, et la personne chargée de leur mise à jour ;

  • vos impératifs de distribution de données en matière de cohérence, d'autonomie et de latence ;

  • 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 ;

  • les types de réplication et les options de réplication ;

  • les topologies de réplication et leur adéquation aux types de réplication.

Si vous débutez avec la réplication Microsoft SQL Server, consultez Types de réplication.

Définition des fonctionnalités de l'application

Une fois que la topologie de réplication a été définie, vous devez choisir les fonctionnalités que votre application offrira, 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. La réplication prend en charge les tâches de programmation générales indiquées ci-dessous :

  • Configuration de la réplication

  • Synchronisation des abonnés

  • Gestion d'une topologie de réplication

  • Analyse d’une topologie de réplication.

  • Dépannage de la réplication.

Il est également courant d’étendre votre application en combinant des fonctionnalités de réplication avec d’autres fonctionnalités fournies par SQL Server. Le tableau suivant décrit certaines fonctionnalités étendues que vous pouvez fournir dans votre application de réplication.

Fonctionnalités Exemple
Administration du serveur à l’aide de SQL 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.
Accès aux données à l’aide d’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.

Planification de la sécurité

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. 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é.

Les rubriques suivantes contiennent des informations sur la sécurité :

Choix d'un environnement de développement

Lorsque vous développez une application de réplication, trois environnements de développement de base doivent être pris en compte. Chaque environnement de développement a accès aux mêmes fonctionnalités de réplication, à quelques exceptions près. Il est possible de développer des applications de réplication dans chacun des environnements suivants.

  • Code managé

    Environnement de développement orienté objet qui tire parti des avantages de la programmation .NET Framework et du Common Language Runtime (CLR) .NET. Le code managé est l’environnement de programmation recommandé pour le développement .NET et les applications SQL Server. Les interfaces de réplication managées permettent la programmation de l’administration de réplication de manière orientée objet sans avoir à connaître Transact-SQL et 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. Le code managé constitue l'environnement idéal pour le développement de composants réutilisables et d'applications d'interface utilisateur.

  • Génération de script

    Applications simples qui exécutent une série de commandes en tant que procédures stockées système de réplication dans des scripts Transact-SQL ou des commandes dans des fichiers batch. Bien que vous puissiez exécuter des scripts dans un environnement managé à l’aide du fournisseur managé SQL Server in-process, les mêmes fonctionnalités peuvent être obtenues à l’aide d’interfaces de réplication managées, qui fournissent également des fonctionnalités de rappel. 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).

  • Code natif

    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. Les interfaces de réplication en environnement de code natif sont déconseillées. Pour plus d’informations, consultez Fonctionnalités déconseillées dans la réplication SQL Server ou Compatibilité descendante de la réplication.

Choix de l'interface de programmation de réplication appropriée

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. Le tableau suivant répertorie les interfaces de programmation de réplication disponibles.

Interface Environment Utilisations
Concepts liés à RMO (Replication Management Objects) Code managé Administration, analyse et synchronisation.
Microsoft.SqlServer.Replication Code managé Synchronisation.
Microsoft.SqlServer.Replication.BusinessLogicSupport Code managé Création de gestionnaires de logique métier pour intégrer la logique personnalisée au processus de synchronisation de fusion.
Procédures stockées de réplication (Transact-SQL) Scripts Administration et analyse.
Concepts des exécutables de l'agent de réplication Scripts Synchronisation.

Exemple

Chez Adventure Works, les données doivent être publiées pour 200 représentants commerciaux dans le monde entier. 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. Les modifications devront ensuite être synchronisées avec le serveur de publication lorsque le représentant connectera l'ordinateur portable au réseau.

Pour cette application, les étapes de la planification peuvent être les suivantes :

  1. La topologie de réplication existe déjà pour cette application. Toutefois, un nouvel abonnement par extraction doit être créé sur le client. La publication doit utiliser des filtres paramétrables pour répliquer un jeu de données unique sur chaque représentant.

  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. É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. 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.

  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. Si vous implémentez la synchronisation web, utilisez une connexion TLS (Transport Layer Security), anciennement SSL (Secure Sockets Layer). Pour plus d’informations, consultez Configurer la synchronisation Web.

  4. Pour tirer parti des fonctionnalités du .NET Framework, l’application est développée à l’aide d’un langage de code managé.

  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.

Cet exemple de scénario a été implémenté dans l’exemple d’application AdventureWorks qui peut être téléchargé pour SQL Server.