Fournisseurs de synchronisation

Dans Microsoft Sync Framework, un fournisseur de synchronisation est un composant logiciel qui permet à un réplica de synchroniser ses données avec d'autres réplicas. En utilisant une session de synchronisation, une application de synchronisation connecte un fournisseur de destination à un fournisseur de source pour synchroniser les éléments qui ont été modifiés sur le réplica source sur le réplica de destination. Un exemple simple d'un fournisseur de synchronisation est un fournisseur qui gère un dossier dans un système de fichiers. Ce fournisseur peut être connecté avec un autre fournisseur qui gère également un dossier pour synchroniser les fichiers dans son dossier avec les fichiers dans le dossier de l'autre fournisseur.

Pendant la synchronisation, le fournisseur de destination fournit sa connaissance actuelle, accepte une liste de modifications de la source, détecte les conflits entre cette liste et ses propres éléments et applique des modifications à sa banque de données. Le fournisseur de source utilise la connaissance actuelle du réplica de destination pour déterminer les modifications du réplica source qui ne sont pas connues du réplica de destination et envoie la liste des modifications au fournisseur de destination. Sync Framework fournit des composants pour gérer un grand nombre de ces tâches de la part de ces fournisseurs.

Implémentation d'un fournisseur de synchronisation

Un fournisseur de synchronisation peut être implémenté en utilisant du code managé ou non managé.

Security noteSécurité Remarque

Sync Framework considère les fournisseurs de synchronisation comme du code approuvé. Par conséquent, une application qui appelle un fournisseur de synchronisation doit établir que celui-ci est approuvé en ayant une connaissance explicite du fournisseur ou à l'aide d'un autre mécanisme, par exemple une signature numérique.

Implémentation d'un fournisseur de synchronisation en utilisant du code managé

La principale tâche lorsque vous développez un fournisseur est d'implémenter la classe abstraite KnowledgeSyncProvider (qui hérite de la classe abstraite SyncProvider) et les interfaces IChangeDataRetriever et INotifyingChangeApplierTarget.

Avant que la synchronisation puisse commencer, le fournisseur doit tout d'abord mettre à disposition son implémentation de SyncProvider à l'application de synchronisation en utilisant n'importe quel mécanisme requis par l'application.

Pendant une synchronisation typique, Sync Framework passe les appels de base suivants :

  • BeginSession est appelé sur les deux fournisseurs. Un fournisseur est ainsi informé qu'il se joint à une session de synchronisation.

  • GetSyncBatchParameters est appelé sur le fournisseur de destination. Le fournisseur de destination retourne sa connaissance et la taille de lot demandée.

  • GetChangeBatch est appelé sur le fournisseur de source et passe la connaissance du fournisseur de destination. Le fournisseur de source utilise la connaissance du fournisseur de destination pour détecter les modifications et retourne un lot de modifications. Pour plus d'informations, consultez Énumération des modifications.

  • ProcessChangeBatch est appelé sur le fournisseur de destination et passe la liste de modifications au fournisseur de source. Le fournisseur de destination utilise le composant applicateur de modifications Sync Framework pour détecter les conflits et appliquer les modifications. Pour plus d'informations, consultez Gestion des conflits et Application des modifications.

  • LoadChangeData est appelé sur le fournisseur de source pour chaque modification dans le lot. Le fournisseur de source retourne une interface à son mécanisme de transfert de données.

  • SaveItemChange est appelé sur le fournisseur de destination pour chaque modification dans le lot. Le fournisseur de destination utilise le mécanisme de transfert de la source pour transférer les données associées à la modification.

  • StoreKnowledgeForScope est appelé sur le fournisseur de destination. Le fournisseur de destination enregistre la connaissance passée comme sa connaissance actuelle.

  • EndSession est appelé sur les deux fournisseurs. Un fournisseur est ainsi informé qu'il quitte une session de synchronisation à laquelle il s'était auparavant joint.

Implémentation d'un fournisseur de synchronisation en utilisant du code non managé

La tâche principale lorsque vous développez un fournisseur est d'implémenter les interfaces IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever et ISynchronousNotifyingChangeApplierTarget. Les versions asynchrones de certaines de ces interfaces existent également, consultez Interface IAsynchronousDataRetriever et Interface IAsynchronousNotifyingChangeApplierTarget.

Avant que la synchronisation puisse commencer, le fournisseur doit tout d'abord mettre à disposition son implémentation de ISyncProvider à l'application de synchronisation en utilisant n'importe quel mécanisme requis par l'application.

Pendant une synchronisation typique, Sync Framework passe les appels de base suivants :

  • BeginSession est appelé sur les deux fournisseurs. Un fournisseur est ainsi informé qu'il se joint à une session de synchronisation.

  • GetSyncBatchParameters est appelé sur le fournisseur de destination. Le fournisseur de destination retourne sa connaissance et la taille de lot demandée.

  • GetChangeBatch est appelé sur le fournisseur de source et passe la connaissance du fournisseur de destination. Le fournisseur de source utilise la connaissance du fournisseur de destination pour détecter les modifications et retourne un lot de modifications. Pour plus d'informations, consultez Énumération des modifications.

  • ProcessChangeBatch est appelé sur le fournisseur de destination et passe la liste de modifications au fournisseur de source. Le fournisseur de destination utilise le composant applicateur de modifications Sync Framework pour détecter les conflits et appliquer les modifications. Pour plus d'informations, consultez Gestion des conflits et Application des modifications.

  • LoadChangeData est appelé sur le fournisseur de source pour chaque modification dans le lot. Le fournisseur de source retourne une interface à son mécanisme de transfert de données.

  • SaveChange est appelé sur le fournisseur de destination pour chaque modification dans le lot. Le fournisseur de destination utilise le mécanisme de transfert de la source pour transférer les données associées à la modification.

  • SaveKnowledge est appelé sur le fournisseur de destination. Le fournisseur de destination enregistre la connaissance passée comme sa connaissance actuelle.

  • EndSession est appelé sur les deux fournisseurs. Un fournisseur est ainsi informé qu'il quitte une session de synchronisation à laquelle il s'était auparavant joint.

Pour plus d'informations sur la création d'un fournisseur de synchronisation, consultez Procédure : créer un fournisseur de synchronisation non managé.

Voir aussi

Référence

Interface IKnowledgeSyncProvider
Interface ISynchronousDataRetriever
Interface ISyncProvider
Interface ISynchronousNotifyingChangeApplierTarget
KnowledgeSyncProvider
SyncProvider
IChangeDataRetriever
INotifyingChangeApplierTarget

Concepts

Procédure : créer un fournisseur de synchronisation non managé
Énumération des modifications
Gestion des conflits
Application des modifications
Synchronisation des unités de modification
Indication de la progression de la synchronisation
Filtrage des données de synchronisation
Prise en charge des tâches de synchronisation simultanées
Interaction avec les flux FeedSync
Récupération d'un réplica obsolète

Autres ressources

Microsoft Sync Framework