Übersicht und Szenarien
Sync Framework ermöglicht die Synchronisierung zwischen Datenbanken. Es wird eine intuitive und flexible API bereitgestellt, die Ihnen das Erstellen von Anwendungen ermöglicht, die auf Offline- und Zusammenarbeitsszenarien abzielen. Je nach Architektur und Anforderungen der Anwendung ermöglicht die API die Verwendung aller oder nur einiger bereitgestellter Komponenten. Sync Framework unterstützt Client/Server-, Client-zu-Client- sowie gemischte Topologien. In Client/Server-Topologien werden alle Clients über einen zentralen Server synchronisiert. In Client-zu-Client-Topologien können die Clients untereinander synchronisiert werden, ohne dass die Änderungen über den zentralen Server gehen. Gemischte Topologien sind eine Kombination aus Client-zu-Client- und Client/Server-Topologien.
Synchronisierungsszenarien
Die Fähigkeit, mobile und nicht ortsgebundene Mitarbeiter zu unterstützen, wird für Unternehmen immer wichtiger. Es ist für Unternehmen von wesentlicher Bedeutung, dass die Mitarbeiter von unterwegs ebenso umfassend auf Informationen zugreifen können wie in ihren Büros. In den meisten Fällen haben diese Benutzer einen Laptop, ein Bürodesktop, ein Smartphone oder ein PDA. Mit diesen Geräten können Benutzer manchmal über eine VPN-Verbindung oder eine andere direkte Verbindung mit dem Unternehmensnetzwerk auf die Daten zugreifen. Diese Lösung ist jedoch für die meisten Remotebenutzer aufgrund gravierender Nachteile in folgenden Bereichen äußerst unbefriedigend:
Netzwerkanforderungen
Um Benutzern den Zugriff auf Informationen zu ermöglichen, muss das Remotegerät während des Datenzugriffs eine dauerhafte Verbindung mit dem Unternehmensnetzwerk herstellen. Für einige Mitarbeiter, z. B. Mitarbeiter, die von zu Hause aus arbeiten, muss dies kein Problem darstellen. Bei Vertriebsmitarbeitern jedoch, die ständig unterwegs sind, könnte dies zu Problemen führen. Ein Vertriebsmitarbeiter, der bei einem Kundenbesuch mangels Netzwerkkonnektivität keinen Zugriff auf Bestandsdaten hat, kann 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. Remotemitarbeiter haben jedoch oft langsame und unzuverlässige Netzwerkverbindungen. Innerhalb typischer Lösungen müssen die vom Benutzer angeforderten Daten jedes Mal heruntergeladen werden, da die Daten nicht auf dem Gerät gespeichert werden können. 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 Lösung sind Benutzer oft von einer einzigen Serverdatenbank abhängig. Wenn die Datenbank aufgrund von geplanten oder ungeplanten Serverausfallzeiten nicht verfügbar ist, können die Remotemitarbeiter nicht auf ihre 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, für die nur gelegentlich eine Verbindung erforderlich ist. Mit einer gelegentlich verbundenen Anwendung können Remotemitarbeiter noch auf die Daten zuzugreifen. Die entsprechenden Informationen werden jedoch lokal gespeichert. Das Auffüllen einer lokalen Datenbank wird bei einer gelegentlich verbundenen Anwendung in der Regel mithilfe einer Datensynchronisierung durchgeführt.
Für die Datensynchronisierung müssen die in einer Datenbank, etwa einer Clientdatenbank, gespeicherten Informationen regelmäßig mit den Änderungen in einer anderen Datenbank (z. B. einer Serverdatenbank) synchronisiert werden. Eine auf Synchronisierung basierende Lösung bietet den Vorteil, dass Benutzer auf Informationen zugreifen können, ohne dass eine konstante Netzwerkverbindung bestehen muss. 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, wird die Geschwindigkeit des Datenzugriffs nur noch vom lokalen Computer beeinflusst.
Bei Client-zu-Client-Synchronisierung wird eine einzelne Fehlerquelle vermieden, indem eine Synchronisierung ermöglicht wird, bei der nicht unbedingt alle Änderungen über einen Server laufen müssen. Die Möglichkeit, einen großen Teil der Anwendungsverarbeitung an die einzelnen Clients weiterzugeben, trägt außerdem dazu bei, das Problem der Serverskalierbarkeit zu lösen.
Sync Framework kommuniziert mithilfe von Synchronisierungsanbietern mit jeder Datenbank, die synchronisiert wird. Die Sync Framework-Datenbankanbieter, die zu ADO.NET-Datenanbietern analog sind, schützen andere Sync Framework-Komponenten vor spezifischen Implementierungen der einzelnen Datenbanken. Sync Framework verfügt über fünf Datenbankanbieter, die zwei Szenarien unterstützen: Offline- und Zusammenarbeitsszenarien. In der folgenden Abbildung wird ein Offlineszenario dargestellt: in einer Client/Server-Topologie stellen die Clients eine Verbindung mit dem zentralen Server her, um die Daten zu synchronisieren, sobald eine Verbindung verfügbar ist.
Diese Art gelegentlich verbundener Anwendungen wird häufig um die 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 erforderlich ist. In der folgenden Abbildung wird eine gemischte Topologie dargestellt, in der ein zentraler Server mit den Clients synchronisiert wird und, in der die Clients untereinander synchronisiert werden können. Solch eine Topologie könnte eine Anwendung unterstützen, mit deren Hilfe die Benutzer Projektnotizen austauschen. Projektteammitglieder benötigen zum Arbeiten oft eine lokale Kopie von Daten. Wenn sie Änderungen durchgeführt haben, können diese durch eine Synchronisierung mit einem Server hochgeladen oder mit anderen Teammitgliedern ausgetauscht werden.
Die fünf Datenbanksynchronisierungsanbieter von Sync Framework können in zwei Kategorien unterteilt werden:
DbServerSyncProvider und SqlCeClientSyncProvider unterstützen Offlineszenarien. Diese Anbieter haben die folgenden Eigenschaften:
Geeignet für Client/Server-Topologien.
Stets paarweise verwendet. Zwei Serverdatenbanken können beispielsweise nicht mit zwei Instanzen von ServerSyncProvider synchronisiert werden. (Verwenden Sie stattdessen SqlSyncProvider oder DbSyncProvider.)
Kann weniger komplex sein, als die Zusammenarbeitsanbieter. Sie können jedoch nicht an Topologien mit anderen Sync Framework-Anbietern teilnehmen.
Weitere Informationen über Offlinesynchronisierung finden Sie unter Offlineszenarien.
SqlSyncProvider, SqlCeSyncProvider und DbSyncProvider unterstützen Zusammenarbeitsszenarien. SqlSyncProvider und SqlCeSyncProvider werden zum Synchronisieren von SQL Server- bzw. SQL Server Compact-Datenbanken verwendet. DbSyncProvider wird normalerweise zum Synchronisieren von Nicht-SQL Server-Datenbanken verwendet. Diese Anbieter haben die folgenden Eigenschaften:
Geeignet für Peer-to-Peer und gemischte Topologien. Kann in Client/Server-Topologien verwendet werden, wenn erweiterte Funktionen erforderlich sind, z. B. komplexe Batchverarbeitung.
Können flexibler verwendet werden. Zum Beispiel können zwei Instanzen von DbSyncProvider synchronisiert werden. Es kann auch eine Instanz von SqlSyncProvider mit einer Instanz von SqlCeSyncProvider synchronisiert werden, usw..
Verwenden Sync Framework-Metadaten, und können an Topologien mit anderen Sync Framework-Anbietern teilnehmen.
Weitere Informationen über Datenzusammenarbeit finden Sie unter Zusammenarbeitsszenarien.