Synchronisierungsanbieter

In Microsoft Sync Framework ist ein Synchronisierungsanbieter eine Softwarekomponente, die es einem Replikat ermöglicht, seine Daten mit anderen Replikaten zu synchronisieren. Mithilfe einer Synchronisierungssitzung erstellt die Synchronisierungsanwendung eine Verbindung zwischen einem Zielanbieter und einem Quellenabieter, um geänderte Elemente des Quellreplikats mit dem Zielreplikat zu synchronisieren. In einem einfachem Beispiel verwaltet ein Synchronisierungsanbieter einen Ordner in einem Dateisystem. Dieser Anbieter kann mit einem anderen Anbieter verbunden werden, der ebenfalls einen Ordner verwaltet, um die Dateien in seinem Ordner mit den Dateien im Ordner des anderen Anbieters zu synchronisieren.

Während der Synchronisierung stellt der Zielanbieter sein aktuelles Wissen zur Verfügung, akzeptiert eine Liste von Änderungen von der Quelle, ermittelt Konflikte zwischen dieser Liste und den eigenen Elementen und wendet die Änderungen im Datenspeicher an. Der Quellenanbieter verwendet das aktuelle Wissen des Zielreplikats, um festzustellen, welche Änderungen im Quellenreplikat vorhanden sind, die dem Zielreplikat nicht bekannt sind, und sendet die Liste der Änderungen an den Zielanbieter. Sync Framework stellt Komponenten zur Verfügung, die viele dieser Aufgaben für diese Anbieter übernehmen.

Implementieren eines Synchronisierungsanbieters

Ein Synchronisierungsanbieter kann mit verwaltetem oder nicht verwaltetem Code implementiert werden.

Security noteSicherheit Hinweis

Sync Framework behandelt Synchronisierungsanbieter als vertrauenswürdigen Code. Aus diesem Grund muss für eine Anwendung, die einen Synchronisierungsanbieter aufruft, sichergestellt werden, dass der Anbieter vertrauenswürdig ist, und zwar durch explizites Wissen über den Anbieter oder durch die Verwendung eines anderen Mechanismus, z. B. einer digitalen Signatur.

Implementieren eines Synchronisierungsanbieters mit verwaltetem Code

Die Hauptaufgabe bei der Entwicklung eines Anbieters ist die Implementierung der abstrakten KnowledgeSyncProvider-Klasse (die von der abstrakten SyncProvider-Klasse erbt), der IChangeDataRetriever-Schnittstelle und der INotifyingChangeApplierTarget-Schnittstelle.

Vor Beginn der Synchronisierung muss der Anbieter zunächst seine Implementierung von SyncProvider mithilfe des erforderlichen Mechanismus für die Synchronisierungsanwendung verfügbar machen.

Während einer typischen Synchronisierung werden die folgenden grundlegenden Aufrufe von Sync Framework ausgeführt:

  • BeginSession wird auf beiden Anbietern aufgerufen. Dadurch wird ein Anbieter darüber informiert, dass er einer Synchronisierungssitzung beitritt.

  • GetSyncBatchParameters wird auf dem Zielanbieter aufgerufen. Der Zielanbieter gibt sein Wissen und die angeforderte Batchgröße zurück.

  • GetChangeBatch wird auf dem Quellenanbieter aufgerufen und übergibt das Wissen des Zielanbieters. Der Quellenanbieter verwendet das Wissen des Zielanbieters, um Änderungen zu ermitteln und einen Änderungsbatch zurückzugeben. Weitere Informationen finden Sie unter Auflisten von Änderungen.

  • ProcessChangeBatch wird auf dem Zielanbieter aufgerufen und übergibt die Liste der Änderungen des Quellenanbieters. Der Zielanbieter verwendet die Sync Framework-Änderungsanwenderkomponente, um Konflikte zu ermitteln und Änderungen anzuwenden. Weitere Informationen finden Sie unter Konfliktbehandlung und Anwenden von Änderungen.

  • LoadChangeData wird auf dem Quellenanbieter für jede Änderung im Batch aufgerufen. Der Quellenanbieter gibt eine Schnittstelle an seinen Datenübertragungsmechanismus zurück.

  • SaveItemChange wird auf dem Zielanbieter für jede Änderung im Batch aufgerufen. Der Zielanbieter verwendet den Übertragungsmechanismus der Quelle, um die der Änderung zugeordneten Daten zu übertragen.

  • StoreKnowledgeForScope wird auf dem Zielanbieter aufgerufen. Der Zielanbieter speichert das Wissen, das als aktuelles Wissen übergeben wird.

  • EndSession wird auf beiden Anbietern aufgerufen. Dadurch wird ein Anbieter darüber informiert, dass er eine Synchronisierungssitzung verlässt, an der er vorher teilgenommen hat.

Implementieren eines Synchronisierungsanbieters mit nicht verwaltetem Code

Die Hauptaufgabe bei der Entwicklung eines Anbieters ist die Implementierung der Schnittstellen IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever und ISynchronousNotifyingChangeApplierTarget. Von einigen dieser Schnittstellen sind auch asynchrone Versionen vorhanden. Informationen hierzu finden Sie unter IAsynchronousDataRetriever-Schnittstelle und IAsynchronousNotifyingChangeApplierTarget-Schnittstelle

Vor Beginn der Synchronisierung muss der Anbieter zunächst seine Implementierung von ISyncProvider mithilfe des erforderlichen Mechanismus für die Synchronisierungsanwendung verfügbar machen.

Während einer typischen Synchronisierung werden die folgenden grundlegenden Aufrufe von Sync Framework ausgeführt:

  • BeginSession wird auf beiden Anbietern aufgerufen. Dadurch wird ein Anbieter darüber informiert, dass er einer Synchronisierungssitzung beitritt.

  • GetSyncBatchParameters wird auf dem Zielanbieter aufgerufen. Der Zielanbieter gibt sein Wissen und die angeforderte Batchgröße zurück.

  • GetChangeBatch wird auf dem Quellenanbieter aufgerufen und übergibt das Wissen des Zielanbieters. Der Quellenanbieter verwendet das Wissen des Zielanbieters, um Änderungen zu ermitteln und einen Änderungsbatch zurückzugeben. Weitere Informationen finden Sie unter Auflisten von Änderungen.

  • ProcessChangeBatch wird auf dem Zielanbieter aufgerufen und übergibt die Liste der Änderungen des Quellenanbieters. Der Zielanbieter verwendet die Sync Framework-Änderungsanwenderkomponente, um Konflikte zu ermitteln und Änderungen anzuwenden. Weitere Informationen finden Sie unter Konfliktbehandlung und Anwenden von Änderungen.

  • LoadChangeData wird auf dem Quellenanbieter für jede Änderung im Batch aufgerufen. Der Quellenanbieter gibt eine Schnittstelle an seinen Datenübertragungsmechanismus zurück.

  • SaveChange wird auf dem Zielanbieter für jede Änderung im Batch aufgerufen. Der Zielanbieter verwendet den Übertragungsmechanismus der Quelle, um die der Änderung zugeordneten Daten zu übertragen.

  • SaveKnowledge wird auf dem Zielanbieter aufgerufen. Der Zielanbieter speichert das Wissen, das als aktuelles Wissen übergeben wird.

  • EndSession wird auf beiden Anbietern aufgerufen. Dadurch wird ein Anbieter darüber informiert, dass er eine Synchronisierungssitzung verlässt, an der er vorher teilgenommen hat.

Weitere Informationen zum Erstellen eines Synchronisierungsanbieters finden Sie unter Gewusst wie: Erstellen eines nicht verwalteten Synchronisierungsanbieters.

Siehe auch

Verweis

IKnowledgeSyncProvider-Schnittstelle
ISynchronousDataRetriever-Schnittstelle
ISyncProvider-Schnittstelle
ISynchronousNotifyingChangeApplierTarget-Schnittstelle
KnowledgeSyncProvider
SyncProvider
IChangeDataRetriever
INotifyingChangeApplierTarget

Konzepte

Gewusst wie: Erstellen eines nicht verwalteten Synchronisierungsanbieters
Auflisten von Änderungen
Konfliktbehandlung
Anwenden von Änderungen
Synchronisieren von Änderungseinheiten
Melden des Synchronisierungsstatus
Filtern von Synchronisierungsdaten
Unterstützen von gleichzeitigen Synchronisierungsaufgaben
Interoperabilität mit FeedSync-Feeds
Wiederherstellen eines veralteten Replikats

Weitere Ressourcen

Microsoft Sync Framework