Partager via


Architecture et classes pour la synchronisation de base de données

Dans des scénarios hors connexion et de collaboration, Sync Framework peut être utilisé dans des architectures à deux couches et multicouches. Dans les deux architectures, l'activité se produit pendant une session de synchronisation : un orchestrateur de synchronisation communique avec deux fournisseurs de synchronisation pour récupérer et appliquer des modifications à chaque base de données. Les fournisseurs utilisent un adaptateur de synchronisation pour chaque table avec les commandes SQL spécifiques requises pour cette table. Certains fournisseurs exposent des adaptateurs pour vous permettre de personnaliser ces commandes. D'autres génèrent automatiquement les adaptateurs afin de réduire la complexité associée à la synchronisation d'un magasin particulier.

L'illustration suivante représente une architecture à deux couches : tous les composants d'une session de synchronisation résident sur l'ordinateur local et il existe une connexion directe entre l'ordinateur local et la base de données de l'ordinateur distant. Au cours d'une session de synchronisation, l'ordinateur local est celui à partir duquel la synchronisation est lancée. Si vous voulez lancer la synchronisation à partir de plusieurs ordinateurs, chacun d'eux doit contenir tous les composants qui figurent dans l'illustration. Ces composants sont décrits plus en détail après les illustrations.

Topologie de synchronisation mixte sur deux couches

L'illustration suivante représente une architecture multicouche : des composants additionnels sont requis, notamment sur l'ordinateur distant, et la connexion à la base de données distante est maintenant gérée par un proxy sur l'ordinateur local et un service sur l'ordinateur distant. Le proxy et le service doivent tous deux être implémentés par le développeur de l'application. Des exemples sont fournis pour réduire la complexité associée à cette tâche. Comme pour l'architecture à deux couches, si vous souhaitez lancer la synchronisation à partir de plusieurs ordinateurs, chacun d'eux doit contenir tous les composants.

Topologie de synchronisation mixte sur plusieurs couches

Bases de données

Les bases de données peuvent provenir de toute édition de SQL Server 2005 SP2 ou version ultérieure, notamment SQL Server Compact 3.5 SP2 ou version ultérieure (versions 32 et 64 bits), SQL Azure ou d'autres bases de données pour lesquelles un fournisseur ADO.NET est disponible. Sync Framework configure automatiquement le suivi des modifications et le stockage des métadonnées pour les bases de données SQL Server et SQL Server Compact. Pour plus d'informations, consultez Procédure : configurer et exécuter la synchronisation de bases de données (SQL Server). Pour les bases de données non-SQL Server, vous devez approvisionner la base de données. Pour plus d'informations, consultez Procédure : approvisionner une base de données serveur pour la synchronisation collaborative (non-SQL Server).

SyncOrchestrator

L'orchestrateur de synchronisation mène la synchronisation comme suit :

  • Il détermine l'ordre et la direction dans lesquels les modifications doivent être appliquées, selon sa propriété Direction.

  • Il appelle le fournisseur de synchronisation distant afin de récupérer les modifications et de les appliquer à la base de données distante.

  • Il appelle le fournisseur de synchronisation local afin de récupérer les modifications et de les appliquer à la base de données locale.

L'orchestrateur de synchronisation gère également les informations de niveau session pour la session de synchronisation et fournit des messages de réussite, des erreurs et des statistiques à l'application qui lance la synchronisation. Pour plus d'informations, consultez SyncOrchestrator.

SyncProvider (SqlSyncProvider, SqlCeSyncProvider et DbSyncProvider)

Un fournisseur de synchronisation communique avec chaque base de données et protège l'orchestrateur de synchronisation contre l'implémentation spécifique de la base de données. Pour les bases de données SQL Server Compact, utilisez SqlCeSyncProvider et pour d'autres éditions de SQL Server, y compris SQL Azure, utilisez SqlSyncProvider. Pour d'autres bases de données, utilisez DbSyncProvider. Les trois fournisseurs héritent de RelationalSyncProvider. Les principales activités du fournisseur de synchronisation sont les suivantes :

  • Récupère les modifications intervenues dans la base de données depuis la dernière session de synchronisation.

  • Applique les modifications incrémentielles à la base de données.

  • Détecte les modifications conflictuelles.

Notes

Si vous synchronisez deux bases de données SQL Server Compact à l'aide de deux instances de SqlCeSyncProvider, vous devez utiliser une architecture multicouche. Les architectures à deux couches ne sont pas prises en charge pour ce scénario.

SyncAdapter (DbSyncAdapter et SqlCeSyncAdapter)

L'adaptateur de synchronisation repose sur l'adaptateur de données d'ADO.NET et est défini pour chaque table qui est synchronisée. L'adaptateur de synchronisation met à disposition du fournisseur de synchronisation les commandes SQL spécifiques qui sont nécessaires pour l'interaction avec la base de données.

Pour les adaptateurs de synchronisation utilisés par SqlSyncProvider et SqlCeSyncProvider, Sync Framework génère automatiquement des commandes (SqlCeSyncAdapter est privé afin de réduire la complexité de la synchronisation avec ce magasin). Pour DbSyncAdapter, vous créez l'adaptateur et spécifiez les commandes, telles que InsertCommand qui applique les insertions d'une autre base de données serveur ou client à la base de données serveur. Étant donné que les adaptateurs de synchronisation utilisent l'objet ADO.NET DbCommand, vous pouvez utiliser n'importe quelle structure de commande prise en charge par ADO.NET. Il peut s'agir de SQL Inline, de procédures stockées, de vues sur une table individuelle, de fonctions, entre autres. Les commandes nécessitent uniquement un seul résultat qui définit la structure et les données à transférer et à appliquer. Pour plus d'informations, consultez DbSyncAdapter. Pour plus d'informations sur les commandes, consultez « Adaptateur de synchronisation » dans Procédure : configurer et exécuter la synchronisation collaborative (non-SQL Server).

Classes supplémentaire dans l'API

Les illustrations de cette rubrique représentent les principales classes dans l'API. Toutefois, il existe de nombreuses classes qui ne sont pas affichées. Pour obtenir des informations sur toutes les classes disponibles, consultez Microsoft.Synchronization, Microsoft.Synchronization.Data, Microsoft.Synchronization.Data.SqlServer et Microsoft.Synchronization.Data.SqlServerCe. Les sections suivantes présentent d'autres classes importantes que vous devez connaître.

DbSyncScope

Une étendue de synchronisation est un regroupement logique d'objets qui doivent être synchronisés en tant qu'unité. Dans le cas de la synchronisation de bases de données, une étendue est en général un jeu de tables, lesquelles peuvent être filtrées. Les tables peuvent être incluses dans une ou plusieurs étendues. Pour plus d'informations, consultez « Définir les étendues à synchroniser » dans Procédure : approvisionner une base de données serveur pour la synchronisation collaborative (non-SQL Server).

Objets d'approvisionnement de bases de données

Pour les bases de données SQL Server, et SQL Server Compact, Sync Framework fournit un ensemble des classes utilisées pour décrire les étendues et les tables incluses dans chaque étendue. Après avoir décrit les tables et étendues, vous utilisez des objets Sync Framework pour appliquer des scripts d'approvisionnement à chaque nœud. Ces scripts créent une infrastructure de suivi des modifications et d'application des modifications qui est constituée de tables de métadonnées, de déclencheurs et de procédures stockées. Le tableau suivant répertorie les classes utilisées pour configurer des bases de données et des fournisseurs. Pour plus d'informations, consultez Procédure : configurer et exécuter la synchronisation de bases de données (SQL Server).

SQL Server et SQL Azure

SQL Server Compact

Description

DbSyncScopeDescription

DbSyncScopeDescription

Représente une étendue de synchronisation, qui est un regroupement logique de tables (éventuellement filtrées) synchronisées en tant qu'unité.

SqlSyncScopeProvisioning

SqlCeSyncScopeProvisioning

Représente l'approvisionnement d'une base de données SQL Server, SQL Azure ou SQL Server Compact pour une étendue donnée représentée par un objet DbSyncScopeDescription.

SqlSyncProviderScopeConfiguration

SqlCeSyncProviderScopeConfiguration

Représente les informations de configuration utilisées par SqlSyncProvider ou SqlCeSyncProvider pour une étendue donnée.

DbSyncTableDescription

DbSyncTableDescription

Représente le schéma d'une table incluse dans une étendue de synchronisation.

DbSyncColumnDescription

DbSyncColumnDescription

Représente le schéma d'une colonne qui fait partie d'une table incluse dans une étendue de synchronisation.

SqlSyncDescriptionBuilder

SqlCeSyncDescriptionBuilder

Représente les informations d'étendue et de table pour une base de données SQL Server, SQL Azure ou SQL Server Compact impliquée dans la synchronisation.

SqlSyncTableProvisioning

SqlSyncTableProvisioning

Représente l'approvisionnement d'une base de données SQL Server, SQL Azure ou SQL Server Compact représentée par un objet DbSyncTableDescription.

SqlSyncProviderAdapterConfiguration

SqlSyncProviderAdapterConfiguration

Représente les informations de configuration de l'adaptateur de synchronisation pour une table dans une base de données SQL Server, SQL Azure ou SQL Server Compact.

SyncOperationStatistics

Les statistiques de session sont un ensemble de statistiques que l'orchestrateur de synchronisation fournit pour chaque session de synchronisation. Les statistiques incluent des informations sur les temps de synchronisation, le nombre de modifications traitées et les exceptions ou les conflits qui se sont produits. Pour plus d'informations, consultez SyncOperationStatistics.

DbSyncSession

L'objet DbSyncSession fournit l'accès aux variables de session de synchronisation. Les variables de session sont les variables qui sont fournies pour qu'un développeur les utilise comme paramètres pour les commandes de sélection, d'insertion, de mise à jour et de suppression exécutées sur les serveurs qui utilisent DbSyncProvider et DbSyncAdapter. Pour plus d'informations, consultez Procédure : utiliser des variables de session pour la synchronisation collaborative (non-SQL Server).

DLL Sync Framework

Les classes de synchronisation de bases de données Sync Framework sont contenues dans les DLL suivantes :

Les DLL reposent sur les DLL System.dll et System.Data.dll de .NET Framework 2.0 ou version ultérieure.

Voir aussi

Autres ressources

Scénarios de synchronisation de bases de données

Procédure : configurer et exécuter la synchronisation de bases de données (SQL Server)

Synchronisation d'autre bases de données compatibles ADO.NET