Vue d'ensemble et scénarios

Sync Framework permet la synchronisation entre des bases de données. Il fournit une API intuitive et flexible qui vous permet de générer des applications destinées à des scénarios hors connexion et de collaboration. L'API vous permet d'utiliser tout ou uniquement certains des composants fournis, selon l'architecture et les besoins d'une application. Sync Framework prend en charge les topologies client-serveur, réseau client à client et mixtes. Dans les topologies client-serveur, tous les clients effectuent une synchronisation avec un serveur central. Dans les topologies client à client, chaque client peut effectuer une synchronisation avec un autre client sans que les modifications aient à passer par un serveur central. Les topologies mixtes consistent en une combinaison des topologies client à client et client-serveur.

Comparaison de Sync Framework avec d'autres technologies

Microsoft offre plusieurs technologies conçues pour les applications qui effectuent la synchronisation. La technologie la plus significative en termes de comparaison avec la synchronisation d'égal à égal est la réplication transactionnelle d'égal à égal. Elle est utilisée pour synchroniser au moins deux bases de données SQL Server édition Enterprise. Bien qu'il soit utile de comparer les deux technologies, la réplication transactionnelle d'égal à égal est conçue pour la synchronisation de serveur à serveur qui fournit l'évolutivité et une haute disponibilité. Sync Framework est conçu pour la synchronisation client-à-serveur et client-à-client qui prend en charge des applications de collaboration.

Utilisez le tableau suivant pour tenter de déterminer la technologie appropriée aux applications que vous voulez générer.

Fonctionnalités clés

Réplication transactionnelle d'égal à égal

Sync Framework

Synchronisation à l'aide de services

Non

Oui

Synchronisation avec d'autres types de magasins de données1

Non

Oui

Suivi des modifications incrémentielles2

Oui

Oui

Détection et résolution de conflit3

Oui

Oui

Initialisation automatique du schéma et des données

Oui

Non

Prise en charge des jeux de données volumineux

Oui

Oui

Propagation automatique des modifications de schéma

Oui

Non

1 Les bases de données peuvent échanger des informations avec d'autres sources de données prises en charge par Sync Framework, telles que les services Web, les systèmes de fichiers ou les magasins de données personnalisés.

2 Sync Framework utilise le suivi des modifications nettes, dans lequel la dernière version d'une ligne est synchronisée. Avec la réplication transactionnelle d'égal à égal, toutes les modifications apportées à une ligne sont appliquées dans l'ordre à chaque homologue.

3 La réplication fournit une fonction de résolution de conflit intégrée, alors que Sync Framework propose une infrastructure permettant de créer un schéma de résolution de conflit.

Sync Framework offre la souplesse d'un modèle de programmation tel que les jeux de données hors ligne et un ensemble de fonctionnalités de synchronisation plus riche que dans la réplication. La réplication s'adresse aux administrateurs de base de données ; elle a pour but de synchroniser les bases de données SQL Server. La réplication fournit des fonctionnalités importantes avec des possibilités de configuration via les Assistants, les procédures stockées et sa propre API. Sync Framework s'adresse aux développeurs et prend en charge la synchronisation avec d'autres types de magasins de données et la synchronisation sur les services, par exemple, Windows Communication Foundation (WCF).

Pour certaines applications, la décision d'utiliser une technologie est facile : si vous devez avoir des composants séparés pour activer la synchronisation sur différents transports ou services, ou synchroniser une source de données autre qu'une base de données, Sync Framework est la solution. Si vous êtes un administrateur de base de données qui conçoit un système pour l'évolutivité et une haute disponibilité ou qui souhaite configurer la synchronisation sans beaucoup programmation, la réplication est un meilleur choix. Enfin, vous devez examiner soigneusement les spécifications de l'application et déterminer si l'API de Sync Framework constitue la technologie appropriée. Si vous voulez faire plus que répliquer un schéma et ses données d'une base de données vers une autre, nous vous recommandons d'utiliser Sync Framework.

Scénarios de synchronisation

La possibilité de prendre en charge les travailleurs itinérants et à distance devient chaque jour plus importante pour les organisations. Il est essentiel que les organisations veillent à ce que leurs employés puissent accéder aux mêmes informations auxquelles ils ont accès au bureau. Dans la plupart des cas, ces utilisateurs disposent d'un ordinateur portable, d'un ordinateur de bureau, d'un SmartPhone ou d'un PDA. Grâce à ces appareils, les utilisateurs peuvent parfois accéder aux données en utilisant une connexion VPN ou une autre méthode de connexion directe au réseau d'entreprise. Pour la plupart des utilisateurs distants, cette solution est peu satisfaisante en raison des inconvénients majeurs qu'elle présente dans les domaines suivants :

  • Configuration du réseau

    Pour permettre aux utilisateurs d'accéder aux informations, le périphérique distant doit avoir une connexion constante au réseau d'entreprise au cours de l'accès aux données. Pour certains employés, tels que ceux qui travaillent à domicile, cela ne présente pas de problème. Pour les autres utilisateurs, tels que les commerciaux qui sont toujours en déplacement, cela peut être plus difficile. Par exemple, si un commercial rend visite à un client et ne peut pas accéder aux données d'inventaire en l'absence de connectivité réseau, ce commercial ne peut pas travailler efficacement.

  • Vitesses d'accès aux données

    Dans un environnement d'entreprise client-serveur classique, les utilisateurs utilisent des réseaux à haut débit qui permettent l'accès rapide aux informations. Toutefois, les employés distants sont souvent connectés via des réseaux lents, peu fiables. Dans une solution classique, chaque portion de données dont un utilisateur a besoin doit être téléchargée à chaque fois qu'elle est demandée parce qu'il n'existe aucune méthode pour rendre les données persistantes sur le périphérique. Par exemple, si un commercial doit télécharger sa liste de produits à chaque fois qu'il ouvre son application, le retard nécessaire au remplissage de l'application par les informations peut être frustrant.

  • Point de défaillance unique

    Avec ce type de solution, les utilisateurs dépendent souvent d'une base de données serveur unique. Si cette base de données n'est pas disponible en raison d'un temps d'arrêt planifié ou de défaillances du serveur, tous les employés distants sont déconnectés de leurs données.

  • Évolutivité du serveur

    Du fait de l'augmentation des employés travaillant à distance, les performances des serveurs d'entreprise sont affectées, et il est parfois nécessaire d'ajouter du matériel.

Applications occasionnellement connectées

Au lieu d'utiliser la solution décrite dans la section précédente, vous pouvez implémenter une application occasionnellement connectée. Une application occasionnellement connectée permet à un employé distant d'accéder aux données, mais les informations qu'il veut sont stockées localement. Pour remplir une base de données locale, une application occasionnellement connectée utilise en général la synchronisation de données.

La synchronisation de données consiste à obtenir périodiquement des informations stockées dans une base de données (comme une base de données client) et de synchroniser les modifications avec une autre (comme une base de données serveur). Une solution basée sur la synchronisation permet à un utilisateur de ne plus être connecté de façon permanente au réseau pour accéder aux informations. Comme les données sont stockées localement, un utilisateur dispose d'un accès constant aux données au cours du téléchargement depuis la base de données centrale. En outre, comme la vitesse du réseau n'est plus un facteur limitant, un utilisateur peut désormais accéder aux données à la vitesse de l'ordinateur local.

La synchronisation client à client évite d'avoir un point de défaillance unique car ce type de synchronisation n'implique pas que toutes les modifications passent via un serveur. La capacité à envoyer une partie importante du traitement de l'application vers chaque client contribue aussi à éviter ce problème d'évolutivité du serveur.

Sync Framework utilise des fournisseurs de synchronisation pour communiquer avec chaque base de données synchronisée. Les fournisseurs de bases de données Sync Framework, qui sont analogues aux fournisseurs de données ADO.NET, protègent d'autres composants Sync Framework de l'implémentation spécifique de chaque base de données. Sync Framework inclut cinq fournisseurs de bases de données, qui prennent en charge deux types de scénarios : hors connexion et de collaboration. L'illustration suivante montre un scénario hors connexion : dans une topologie client-serveur, les clients se connectent à un serveur central pour synchroniser des données lorsqu'une connexion est disponible.

Scénario Sync Services hors connexion

Une extension commune à ce type d'application occasionnellement connectée est la capacité de prendre en charge des scénarios de collaboration. Dans ces scénarios, deux bases de données peuvent être synchronisées d'égal à égal sans passer par un concentrateur central. L'illustration suivante montre une topologie mixte, où un serveur central se synchronise avec les clients et où les clients peuvent se synchroniser entre eux. Une topologie comme celle-ci peut par exemple prendre en charge une application permettant à des utilisateurs de partager des remarques relatives à un projet. Les membres d'une équipe projet ont souvent besoin de pouvoir travailler sur une copie locale des données. Lorsqu'ils effectuent des modifications, ils peuvent ensuite être synchronisés avec un serveur afin de les télécharger ou avec un autre membre de l'équipe pour les échanger.

Scénario de collaboration Sync Services

Fournisseurs de synchronisation de bases de données

Les trois principaux fournisseurs de synchronisation de bases de données inclus dans Sync Framework sont les suivants :

  • SqlSyncProvider : Utilisé pour synchroniser des bases de données SQL Server.

  • SqlCeSyncProvider : Utilisé pour synchroniser des bases de données SQL Server Compact.

  • DbSyncProvider : Utilisé généralement pour synchroniser des bases de données autres que SQL Server

Ces fournisseurs présentent les caractéristiques suivantes :

  • Conviennent pour les topologies client-serveur, d'égal à égal et mixtes.

  • Peuvent être utilisés de façons plus flexibles. Par exemple, vous pouvez synchroniser deux instances de DbSyncProvider ou une instance de SqlSyncProvider et une instance de SqlCeSyncProvider, etc.

  • Utilisent des métadonnées Sync Framework et peuvent faire partie de topologies comprenant d'autres fournisseurs Sync Framework.

Pour plus d'informations sur la synchronisation des données, consultez Scénarios de synchronisation de bases de données.

Deux fournisseurs de synchronisation de bases de données supplémentaires qui ne prennent en charge que les scénarios hors connexion sont inclus. Ces fournisseurs ont été remplacés par les fournisseurs décrits ci-dessus qui prennent en charge à la fois les scénarios hors connexion et de collaboration. Ils sont fournis dans cette documentation à titre de référence pour les applications existantes qui les utilisent. Pour le développement de nouvelles applications, utilisez les fournisseurs décrits ci-dessus.

Les fournisseurs qui ne prennent en charge que les scénarios hors connexion sont les suivants :

Ces fournisseurs présentent les caractéristiques suivantes :

  • Conviennent pour les topologies client-serveur.

  • Toujours utilisés comme une paire. Par exemple, vous ne pouvez pas synchroniser deux bases de données serveur à l'aide de deux instances de ServerSyncProvider (utilisez à la place SqlSyncProvider ou DbSyncProvider).

  • Peuvent être moins complexes que les fournisseurs de collaboration, mais ne peuvent pas faire partie de topologies comprenant d'autres fournisseurs Sync Framework.

Pour plus d'informations sur la synchronisation hors connexion, consultez Scénarios hors connexion uniquement.

Voir aussi

Autres ressources

Synchronisation de bases de données