Microsoft Sync Framework

Microsoft Sync Framework est une plateforme de synchronisation complète qui permet la collaboration et l'accès en mode hors connexion pour les applications, les services et les périphériques. Elle comprend des technologies et des outils qui permettent l'itinérance, le partage et la mise hors connexion des données. À l'aide de Sync Framework, les développeurs peuvent générer des écosystèmes synchronisés qui intègrent toutes les applications avec toutes les données issues de toutes les banques, quels que soient le protocole et le réseau utilisés.

Sync Framework comprend les technologies suivantes, les trois premières pouvant être installées avec SQL Server 2008 :

  • Sync Services for ADO.NET permet de synchroniser des bases de données pour des scénarios hors connexion et collaboratifs.

  • Les composants principaux Sync Framework peuvent être utilisés par Sync Services for ADO.NET pour synchroniser des bases de données et peuvent également être utilisés pour créer des fournisseurs de synchronisation pour d'autres types de banques de données.

  • Sync Services pour FeedSync permettent de synchroniser les flux RSS et Atom avec les données dans une banque locale.

  • Sync Services pour les systèmes de fichiers permettent de synchroniser des fichiers et des dossiers dans un système de fichiers.

  • Le service de stockage des métadonnées permet de stocker les métadonnées de synchronisation dans SQL Server Compact 3.5.

Le reste de cette rubrique fournit une vue d'ensemble de Sync Services for ADO.NET et inclut une comparaison à d'autres technologies Microsoft. Pour obtenir la documentation complète pour Sync Services for ADO.NET et Sync Framework, consultez le Centre de développement Microsoft Sync Framework.

Installation de Microsoft Sync Framework et Sync Services for ADO.NET

Sync Framework peut être installé en utilisant l'Assistant Installation de SQL Server 2008 ou les options d'installation de ligne de commandes. Pour installer Sync Framework à l'aide de l'Assistant, à la page Sélection de composant, sélectionnez Microsoft Sync Framework. Pour plus d'informations sur l'installation de SQL Server et de composants connexes, consultez Vue d'ensemble de l'installation de SQL Server.

Vue d'ensemble et scénarios de synchronisation

La capacité à prendre en charge leurs employées mobiles et distants est une préoccupation quotidienne pour toutes 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 possèdent un ordinateur portable, un ordinateur de bureau, un SmartPhone, ou un assistant numérique personnel (PDA). Grâce à ces périphériques, les utilisateurs peuvent le plus souvent accéder directement à leurs données en utilisant une connexion VPN ou une autre méthode de connexion directement 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, 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 rapides qui permettent l'accès rapide aux informations. Toutefois, les employés distants utilisent généralement des réseaux câblés ou sans fil peu fiables et lents. Dans une solution classique, chaque portion de données que nécessite un utilisateur 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 vendeur 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, tous les utilisateurs dépendent d'un serveur unique. Si cette base de données n'est pas disponible à cause de 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 de continuer à accéder aux données. Toutefois, contrairement au scénario précédent dans lequel l'utilisateur devait accéder directement à la base de données d'entreprise pour obtenir les informations, les informations souhaitées sont stockées localement sur un périphérique. 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 client (telle que SQL Server Compact 3.5) et de synchroniser les modifications avec une base de données serveur (telle que SQL Server). 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 du périphérique.

Sync Services for ADO.NET

Sync Services for ADO.NET permet la synchronisation entre des bases de données. Elle 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. Sync Services for ADO.NET permet la synchronisation entre deux homologues, tels que les bases de données SQL Server ou entre une base de données client SQL Server Compact 3.5 et n'importe quelle base de données serveur pour laquelle un fournisseur ADO.NET est disponible. L'API vous permet d'utiliser l'ensemble ou une partie seulement des composants fournis, selon l'architecture et les besoins d'une application.

Les illustrations suivantes montrent des exemples d'applications occasionnellement connectées dans lesquelles les données (représentées par une base de données verte) sont localement persistantes sur le périphérique d'un employé distant. Le premier exemple montre un système de base de données autonome où les informations sont stockées directement sur le périphérique de l'utilisateur. Le deuxième exemple montre un bureau distant où les informations sont stockées dans une base de données de groupe de travail dans ce bureau distant pour permettre à plusieurs employés locaux d'accéder aux données.

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. Comme le montre l'illustration suivante, une base de données distante est libre d'échanger des informations avec n'importe quelle autre base de données. Ce type de solution est utile lorsque des employés distants (tels que des auditeurs financiers sur place) travaillent en groupe sur un site distant. Ces employés doivent souvent partager des informations entre eux. Toutefois, comme ils n'ont pas de connectivité à la base de données centrale, ils doivent partager des informations par l'intermédiaire d'un réseau d'égal à égal quelconque.

Scénario de collaboration Sync Services

Utilisation de Sync Services for ADO.NET avec SQL Server

Sync Services for ADO.NET prend en charge les bases de données comme suit :

  • Dans les scénarios hors connexion, la base de données client doit être SQL Server Compact 3.5 version 3.5 ou version ultérieure. Le serveur peut être n'importe quelle base de données pour laquelle un fournisseur ADO.NET est disponible.

  • Dans les scénarios collaboratifs, chaque base de données d'homologue doit être SQL Server 2000 Service Pack 4 ou une version ultérieure.

SQL Server est une base de données de classe d'entreprise qui fournit une base solide pour les applications qui requièrent la synchronisation. SQL Server 2008 fournit le suivi des modifications, l'une des fonctionnalités les plus utiles pour les développeurs de synchronisation. Sync Services for ADO.NET fournit une API pour synchroniser des modifications, mais elle ne suit pas les modifications à proprement dites dans le serveur ou la base de données d'homologue. ((SQL Server Compact 3.5 prend bien en charge le suivi des modifications dans la base de données client.) Vous pouvez créer un système de suivi des modifications personnalisé, mais cela entraîne généralement un coût élevé en terme de complexité et de performances. Nous recommandons d'utiliser le suivi des modifications dans SQL Server 2008, car il est simple à configurer et fournit un suivi élevé des performances. Pour plus d'informations, consultez Suivi des modifications de données.

Comparaison de Sync Services for ADO.NET à d'autres technologies

Microsoft offre plusieurs technologies conçues pour des applications qui effectuent la synchronisation. Par conséquent, il est utile de comparer Sync Services for ADO.NET aux autres technologies utilisées dans les scénarios hors connexion et collaboratifs.

Synchronisation hors connexion

Les technologies Microsoft les plus significatives pour la synchronisation hors connexion sont les suivantes :

  • Service RDA (Remote Data Access). Cette technologie est utilisée pour synchroniser une base de données SQL Server Compact 3.5 avec une base de données sur une autre édition de SQL Server. Pour plus d'informations, consultez la documentation en ligne de SQL Server Compact 3.5.

  • Réplication de fusion. Cette technologie est utilisée pour synchroniser différentes éditions de SQL Server, y compris SQL Server Compact 3.5. Pour plus d'informations, consultez Présentation de la réplication de fusion et Choix du type de réplication approprié.

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

Principale fonctionnalité

RDA

Réplication de fusion

Sync Services

Synchroniser en utilisant une architecture multiniveau ou orientée services

Non

Non

Oui

Prise en charge des bases de données hétérogènes

Non

Non

Oui

Suivi des modifications incrémentielles

Non1

Oui

Oui

Détection et résolution de conflit

Non

Oui2

Oui

Création aisée de vues de données sur le client

Non

Non

Oui

Initialisation automatique du schéma et des données

Oui

Oui

Oui

Prise en charge de groupes de données volumineux

Oui

Oui

Oui

Processeur de requêtes disponible localement

Oui

Oui

Oui

Propagation automatique des modifications de schéma

Non

Oui

Non

Répartition automatique des données

Non

Oui

Non

Utilisation sur des périphériques

Oui

Oui

Oui

1 Le Service RDA prend en charge les téléchargements ascendants incrémentiels, mais les téléchargements sont systématiquement une capture instantanée qui met à jour toutes les données sur le client.

2 La réplication de fusion fournit une fonction de résolution de conflit intégrée, alors que Sync Services for ADO.NET propose une infrastructure permettant de créer un schéma de résolution de conflit.

Synchronisation collaborative

La technologie la plus significative à comparer en terme de synchronisation collaborative est la réplication transactionnelle de réseau d'égal à égal, utilisée pour synchroniser deux ou plusieurs bases de données SQL Server Enterprise. Sync Services for ADO.NET et la réplication transactionnelle prennent en charge la synchronisation d'égal à égal : la réplication transactionnelle est la mieux adaptée pour assurer la disponibilité élevée et mettre à l'échelle l'activité de lecture sur plusieurs serveurs. Sync Services for ADO.NET est mieux adapté aux applications dans lesquelles les utilisateurs utilisent de manière collaborative les mêmes données.

Le tableau suivant peut vous aider à choisir la technologie appropriée aux applications que vous voulez générer. Pour plus d'informations sur la réplication transactionnelle d'égal à égal, consultez Réplication transactionnelle d'égal à égal.

Principale fonctionnalité

Réplication transactionnelle d'égal à égal

Sync Services

Synchroniser en utilisant une architecture multiniveau ou orientée services

Non

Oui

Prise en charge des bases de données hétérogènes

Non

Oui

Suivi des modifications incrémentielles1

Oui

Oui

Détection et résolution de conflit2

Oui

Oui

Initialisation automatique du schéma et des données

Oui

Oui

Prise en charge de groupes de données volumineux

Oui

Oui

Processeur de requêtes disponible localement

Oui

Oui

Propagation automatique des modifications de schéma

Oui

Non

Utilisation sur des périphériques

Non

Non incluse dans cette version

Utiliser avec SQL Server Compact 3.5

Non

Non incluse dans cette version

1 Sync Services for ADO.NET 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.

2 La réplication fournit une fonction de résolution de conflit intégrée, alors que Sync Services for ADO.NET propose une infrastructure permettant de créer un schéma de résolution de conflit.

Choisir la technologie à utiliser

Sync Services for ADO.NET offre la souplesse d'un modèle de programmation tel que les groupes de données hors connexion et un jeu de fonctionnalités de synchronisation plus important, comme celles qui existent dans la réplication de fusion. Les fonctionnalités de Sync Services for ADO.NET sont supérieures à celles du service RDA. La réplication s'adresse aux administrateurs de base de données ; elle a pour but principal de synchroniser les bases de données SQL Server. La réplication fournit des fonctionnalités significatives dont la configuration est disponible par l'intermédiaire d'Assistants, de procédures stockées et sa propre API. Sync Services for ADO.NET est destiné aux développeurs et prend en charge des bases de données hétérogènes et la synchronisation sur les services, tels que Windows Communication Foundation (WCF). Si une application implique la synchronisation avec des bases de données non-SQL Server, ou si une application doit comporter des composants distincts pour permettre la synchronisation sur différents transports ou services, utilisez Sync Services for ADO.NET.

Pour certaines applications, la décision d'adopter une technologie est simple : si vous devez synchroniser une source de données autre qu'une base de données SQL Server, vous opterez pour Sync Services for ADO.NET. Si vous êtes administrateur de base de données et que vous voulez configurer la synchronisation en recourant à un minimum de programmation, la réplication peut se révéler un choix plus judicieux. Enfin, vous devez examiner soigneusement les spécifications de l'application et déterminer si l'API de Sync Services for ADO.NET 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 Services for ADO.NET.