Microsoft Sync Framework

Microsoft Sync Framework ist eine umfassende Synchronisierungsplattform, die Zusammenarbeit und Offlinezugriff für Anwendungen, Dienste und Geräte ermöglicht. Sie stellt Technologien und Tools bereit, die Roaming, Freigabe und Offlineschalten von Daten ermöglichen. Mithilfe von Sync Framework können Entwickler synchronisierte heterogene Systeme erstellen, die beliebige Anwendungen mit beliebigen Daten aus beliebigen Speichern integrieren, die beliebige Protokolle über beliebige Netzwerke verwenden.

Sync Framework besteht aus den folgenden Technologien, von denen die ersten drei mit SQL Server 2008 installiert werden können:

  • Synchronisierungsdienste für ADO.NET kann verwendet werden, um Datenbanken für Offline- und Zusammenarbeitsszenarien zu synchronisieren.

  • Sync Framework-Kernkomponenten können von Synchronisierungsdienste für ADO.NET zum Synchronisieren von Datenbanken verwendet werden. Darüber hinaus können sie verwendet werden, um Synchronisierungsanbieter für andere Arten von Datenspeichern zu erstellen.

  • Synchronisierungsdienste für FeedSync können zum Synchronisieren von RSS- und Atom-Feeds mit Daten in einem lokalen Speicher verwendet werden.

  • Synchronisierungsdienste für Dateisysteme können zum Synchronisieren von Dateien und Ordnern in einem Dateisystem verwendet werden.

  • Der Metadatenspeicherdienst kann verwendet werden, um Synchronisierungsmetadaten in SQL Server Compact 3.5 zu speichern.

Im weiteren Verlauf dieses Themas wird eine Übersicht über Synchronisierungsdienste für ADO.NET und ein Vergleich mit anderen Microsoft-Technologien bereitgestellt. Die vollständige Dokumentation für Synchronisierungsdienste für ADO.NET und Sync Framework finden Sie im Microsoft Sync Framework Developer Center.

Installieren von Microsoft Sync Framework und Synchronisierungsdiensten für ADO.NET

Sync Framework kann mit dem Installations-Assistenten zum Installieren von SQL Server 2008 oder mit Optionen für die Befehlszeileninstallation installiert werden. Um Sync Framework mit dem Assistenten zu installieren, wählen Sie auf der Seite Featureauswahl die Option Microsoft Sync Framework aus. Weitere Informationen zum Installieren von SQL Server und zugehörigen Komponenten finden Sie unter Übersicht über die Installation von SQL Server.

Übersicht und Synchronisierungsszenarien

Die Unterstützung von mobilen und Remotemitarbeitern wird für Unternehmen immer wichtiger. Sicherzustellen, dass Mitarbeiter unterwegs auf die gleichen Informationen zugreifen können wie in ihren Büros ist für Unternehmen von wesentlicher Bedeutung. In den meisten Fällen verfügen diese Benutzer über Laptop, Bürodesktop, Smartphone oder PDA. Von diesen Geräten können Benutzer häufig direkt auf ihre Daten zugreifen, indem Sie eine VPN-Verbindung oder eine andere direkte Verbindung zum Unternehmensnetzwerk nutzen. Diese Lösung ist jedoch für die meisten Remotebenutzer aufgrund von gravierenden Nachteile in den folgenden Bereichen äußerst unbefriedigend:

  • Netzwerkanforderungen

    Um Benutzern den Zugriff auf Informationen zu ermöglichen, muss das Remotegerät eine konstante Verbindung zum Unternehmensnetzwerk herstellen können, während es auf Daten zugreift. Für einige Mitarbeiter, zum Beispiel Mitarbeiter, die zu Hause arbeiten, stellt dies womöglich kein Problem dar. Für andere, z. B. Vertriebsmitarbeiter, die ständig unterwegs sind, könnte dies schwieriger sein. Wenn ein Vertriebsmitarbeiter beispielsweise bei einem Kundenbesuch mangels Netzwerkkonnektivität nicht auf Bestandsdaten zugreifen kann, kann er seine Arbeit nicht effektiv ausführen.

  • Datenzugriffsgeschwindigkeit

    In einer typischen Client/Server-Unternehmensumgebung verfügen Benutzer über Hochgeschwindigkeitsnetzwerke, die einen schnellen Zugriff auf Informationen gewährleisten. Hingegen sind Remotemitarbeiter in der Regel über langsame und unzuverlässige drahtgebundene oder drahtlose Netzwerke verbunden. Bei Verwendung einer typischen Lösung müssen die vom Benutzer gewünschten Daten jedes Mal heruntergeladen werden, wenn sie benötigt werden, da es keine Möglichkeit zur Speicherung der Daten auf dem Gerät gibt. Wenn ein Vertriebsmitarbeiter beispielsweise seine Produktliste bei jedem Öffnen der Anwendung herunterladen muss, kann die Verzögerung, die durch das Auffüllen der Anwendung mit Daten entsteht, recht frustrierend sein.

  • Einzelne Fehlerquelle

    Bei dieser Art von Lösung sind alle Benutzer von einem einzelnen Server abhängig. Wenn die Datenbank aufgrund von geplanten oder ungeplanten Serverausfallzeiten nicht verfügbar ist, kann keiner der Remotemitarbeiter auf seine Daten zugreifen.

  • Serverskalierbarkeit

    Wenn die Anzahl an Remotemitarbeitern zunimmt, wirkt sich dies auf die Leistung der Unternehmensserver aus und kann dazu führen, dass weitere Hardware hinzugefügt werden muss.

Gelegentlich verbundene Anwendungen

Eine Alternative zu der im vorherigen Abschnitt beschriebenen Lösung ist die Implementierung einer Anwendung, die gelegentlich eine Verbindung erfordert. Mit einer gelegentlich verbundenen Anwendung können Remotemitarbeiter kontinuierlich auf Daten zugreifen. Im Gegensatz zum vorherigen Szenario, in dem der Benutzer direkt auf die Unternehmensdaten zugreifen muss, um die gewünschten Informationen zu erhalten, werden die benötigten Informationen hierbei lokal auf einem Gerät gespeichert. Das Auffüllen einer lokalen Datenbank geschieht bei einer gelegentlich verbundenen Anwendung in der Regel über Datensynchronisierung.

Für die Datensynchronisierung müssen die in einer Clientdatenbank (zum Beispiel SQL Server Compact 3.5) gespeicherten Informationen regelmäßig mit den Änderungen in einer Serverdatenbank (zum Beispiel SQL Server) synchronisiert werden. Eine auf Synchronisierung basierende Lösung bietet den Vorteil, dass Benutzer Informationen abrufen können, ohne über eine konstante Netzwerkverbindung verfügen zu müssen. Aufgrund der lokalen Datenspeicherung können Benutzer stets auf die Daten zugreifen, während die Verarbeitung von der zentralen Datenbank ausgelagert wird. Da die Netzwerkgeschwindigkeit nun kein einschränkender Faktor mehr ist, ist der Datenzugriff nur noch von der Geschwindigkeit des Geräts abhängig.

Synchronisierungsdienste für ADO.NET

Synchronisierungsdienste für ADO.NET ermöglicht die Synchronisierung zwischen Datenbanken. Es stellt eine intuitive und flexible API zur Erstellung von Anwendungen bereit, die für Offline- und Zusammenarbeitsszenarien konzipiert sind. Synchronisierungsdienste für ADO.NET ermöglicht die Synchronisierung zwischen zwei Peers, wie SQL Server-Datenbanken oder zwischen einer SQL Server Compact 3.5-Clientdatenbank und jeder Serverdatenbank, für die ein ADO.NET-Anbieter zur Verfügung steht. Mithilfe der API können Sie je nach Architektur und Anforderungen einer Anwendung entweder alle oder lediglich einige der verfügbaren Komponenten verwenden.

Die folgenden Abbildungen sind Beispiele für gelegentlich verbundene Anwendungen, bei denen Daten (durch eine grüne Datenbank dargestellt) lokal auf dem Gerät eines Remotemitarbeiters gespeichert werden. Im ersten Beispiel wird ein eigenständiges Datenbanksystem dargestellt, bei dem Informationen direkt auf dem Gerät des Benutzers gespeichert werden. Das zweite Beispiel zeigt ein Remotebüro, bei dem Informationen in einer Arbeitsgruppendatenbank innerhalb dieses Büros gespeichert werden, sodass mehrere Mitarbeiter vor Ort auf die Daten zugreifen können.

Synchronisierungsdienste-Offlineszenario

Dieser Typ der gelegentlich verbundenen Anwendung wird häufig um die Fähigkeit zur Unterstützung von Zusammenarbeitsszenarien erweitert. Hierbei handelt es sich um Szenarien, in denen zwei Datenbanken im Peer-to-Peer-Verfahren synchronisiert werden können, ohne dass ein zentraler Hub zu erfordert wird. Wie in der folgenden Abbildung dargestellt, ist eine Remotedatenbank in der Lage, Informationen mit einer beliebigen anderen Datenbank auszutauschen. Dieser Lösungstyp bietet sich an, wenn Remotemitarbeiter (z. B. Wirtschaftsprüfer vor Ort) in einer Gruppe an einem Remotestandort arbeiten. Diese Mitarbeiter müssen häufig Informationen untereinander austauschen. Da sie jedoch nicht mit einer zentralen Datenbank verbunden sind, müssen Sie Informationen über eine Art Peer-to-Peer-Netzwerk austauschen.

Synchronisierungsdienste-Zusammenarbeitsszenario

Verwenden von Synchronisierungsdiensten für ADO.NET mit SQL Server

Synchronisierungsdienste für ADO.NET unterstützt Datenbanken auf folgende Arten:

  • In Offlineszenarien muss die Clientdatenbank SQL Server Compact 3.5 Version 3.5 oder höher entsprechen. Der Server kann jede Datenbank sein, für die ein ADO.NET-Anbieter verfügbar ist.

  • In Zusammenarbeitsszenarien muss jede Peerdatenbank SQL Server 2000 Service Pack 4 oder einer höheren Version entsprechen.

Bei SQL Server handelt es sich um eine Unternehmensdatenbank, die eine solide Basis für Anwendungen darstellt, die eine Synchronisierung erfordern. SQL Server 2008 bietet Änderungsnachverfolgung, eines der nützlichsten Features für Synchronisierungsentwickler. Synchronisierungsdienste für ADO.NET stellt zwar eine API für die Synchronisierung von Änderungen bereit, Änderungen in der Server- oder Peerdatenbank werden jedoch nicht nachverfolgt. ((SQL Server Compact 3.5 verfolgt Änderungen in der Clientdatenbank nach.) Sie können ein benutzerdefiniertes Änderungsnachverfolgungssystem erstellen, dies ist jedoch in der Regel mit viel Komplexität und einem hohen Verwaltungsaufwand verbunden. Wir empfehlen Ihnen, die Änderungsnachverfolgung in SQL Server 2008 zu verwenden, da sie leicht zu konfigurieren ist und hochleistungsfähige Nachverfolgung bietet. Weitere Informationen finden Sie unter Nachverfolgen von Datenänderungen.

Vergleichen von Synchronisierungsdiensten für ADO.NET mit anderen Technologien

Microsoft bietet verschiedene Technologien für Anwendungen, die Synchronisierung ausführen. Es ist daher hilfreich, Synchronisierungsdienste für ADO.NET mit anderen Technologien zu vergleichen, die in Offline- und Zusammenarbeitsszenarien verwendet werden.

Offlinesynchronisierung

Die bedeutendsten Microsoft-Technologien für die Offlinesynchronisierung sind folgende:

  • Remotedatenzugriff (RDA). Remotedatenzugriff wird zum Synchronisieren einer SQL Server Compact 3.5-Datenbank mit einer Datenbank in einer anderen Edition von SQL Server verwendet. Weitere Informationen finden Sie in der SQL Server Compact 3.5-Onlinedokumentation.

  • Mergereplikation. Mergereplikation wird zum Synchronisieren verschiedener Editionen von SQL Server verwendet, einschließlich SQL Server Compact 3.5. Weitere Informationen finden Sie unter Mergereplikation (Übersicht) und Auswählen des geeigneten Replikationstyps.

Die folgende Tabelle hilft Ihnen dabei zu entscheiden, welche Technologie sich für die von Ihnen zu erstellenden Anwendungen eignet.

Wichtigstes Feature

RDA

Mergereplikation

Synchronisierungsdienste

Synchronisieren mithilfe einer N-Tier- oder dienstorientierten Architektur

Nein

Nein

Ja

Unterstützung heterogener Datenbanken

Nein

Nein

Ja

Inkrementelle Änderungsnachverfolgung

Nein1

Ja

Ja

Konflikterkennung und -lösung

Nein

Ja2

Ja

Einfache Erstellung von Datenansichten auf dem Client

Nein

Nein

Ja

Automatisches Initialisieren von Schema und Daten

Ja

Ja

Ja

Unterstützung großer Datasets

Ja

Ja

Ja

Lokal verfügbarer Abfrageprozessor

Ja

Ja

Ja

Automatische Weitergabe von Schemaänderungen

Nein

Ja

Nein

Automatische Neupartitionierung von Daten

Nein

Ja

Nein

Verwendung auf Geräten

Ja

Ja

Ja

1 RDA unterstützt inkrementelle Uploads, Downloads sind jedoch stets Snapshots, die alle Daten auf dem Client aktualisieren.

2 Mergereplikation ermöglicht integrierte Konfliktlösung, während Synchronisierungsdienste für ADO.NET ein Framework zur Erstellung eines Konfliktlösungsschemas bietet.

Synchronisierung für die Zusammenarbeit

Die wichtigste Technologie, die hinsichtlich der Synchronisierung für die Zusammenarbeit verglichen werden muss, ist die Peer-to-Peer-Transaktionsreplikation, die zur Synchronisierung von zwei oder mehr SQL Server-Enterprise-Datenbanken dient. Sowohl Synchronisierungsdienste für ADO.NET als auch Transaktionsreplikation unterstützen die Peer-to-Peer-Synchronisierung: Transaktionsreplikation ist am besten zur serverübergreifenden Aufrechterhaltung von hoher Verfügbarkeit und Skalierung von Leseaktivität geeignet, während Synchronisierungsdienste für ADO.NET sich am besten für Anwendungen eignet, in denen Benutzer gemeinsam mit denselben Daten arbeiten.

Die folgende Tabelle kann Sie dabei unterstützen, zu entscheiden, welche Technologie sich für die von Ihnen zu erstellenden Anwendungen eignet. Weitere Informationen zur Peer-to-Peer-Transaktionsreplikation finden Sie unter Peer-to-Peer-Transaktionsreplikation.

Wichtigstes Feature

Peer-to-Peer-Transaktionsreplikation

Synchronisierungsdienste

Synchronisieren mithilfe einer N-Tier- oder dienstorientierten Architektur

Nein

Ja

Unterstützung heterogener Datenbanken

Nein

Ja

Inkrementelle Änderungsnachverfolgung1

Ja

Ja

Konflikterkennung und -lösung2

Ja

Ja

Automatisches Initialisieren von Schema und Daten

Ja

Ja

Unterstützung großer Datasets

Ja

Ja

Lokal verfügbarer Abfrageprozessor

Ja

Ja

Automatische Weitergabe von Schemaänderungen

Ja

Nein

Verwendung auf Geräten

Nein

Nicht in dieser Version

Verwendung mit SQL Server Compact 3.5

Nein

Nicht in dieser Version

1Synchronisierungsdienste für ADO.NET verwendet Nettoänderungsverfolgung, bei der die letzte Zeilenversion synchronisiert wird. Bei Peer-to-Peer-Transaktionsreplikation werden alle Zeilenänderungen in der entsprechenden Reihenfolge auf jeden Peer angewendet.

2 Replikation stellt integrierte Konfliktauflösung bereit, während Synchronisierungsdienste für ADO.NET ein Framework zur Erstellung eines Konfliktauflösungsschemas bietet.

Die Wahl der richtigen Technologie

Synchronisierungsdienste für ADO.NET bietet mit Offlinedatasets die Flexibilität eines Programmiermodells und umfangreichere Synchronisationsfeatures als die Replikation. Synchronisierungsdienste für ADO.NET-Funktionalität ist RDA überlegen. Die Replikation ist auf Datenbankadministratoren ausgerichtet und hauptsächlich für das Synchronisieren von SQL Server-Datenbanken konzipiert. Die Replikation bietet umfassende Funktionalität mit Konfiguration durch Assistenten, gespeicherte Prozeduren und eine eigene API. Synchronisierungsdienste für ADO.NET ist für Entwickler vorgesehen und unterstützt heterogene Datenbanken und Synchronisierung über Dienste, wie beispielsweise Windows Communication Foundation (WCF). Verwenden Sie Synchronisierungsdienste für ADO.NET, wenn eine Anwendung die Synchronisierung mit Nicht-SQL Server-Datenbanken erfordert oder wenn eine Anwendung über separate Komponenten verfügen muss, um die Synchronisierung über verschiedene Transporte oder Dienste zu ermöglichen.

Bei manchen Anwendungen ist die Entscheidung für eine Technologie ganz einfach: Wenn eine andere Datenquelle als eine SQL Server-Datenbank synchronisiert werden muss, lautet die Lösung Synchronisierungsdienste für ADO.NET. Wenn Sie ein Datenbankadministrator sind und die Synchronisierung ohne großen Programmieraufwand konfigurieren wollen, stellt die Replikaktion unter Umständen die bessere Wahl dar. Letztlich müssen Sie die Anwendungsanforderungen sorgfältig prüfen und entscheiden, ob es sich bei der Synchronisierungsdienste für ADO.NET-API um die geeignete Technologie handelt. Für Tätigkeiten, die über die Replizierung eines Schemas und der zugehörigen Daten von einer Datenbank zu einer anderen hinausgehen, empfehlen wir Ihnen die Verwendung von Synchronisierungsdienste für ADO.NET.

Siehe auch

Konzepte