Dieser Artikel wurde maschinell übersetzt.

Vorhersage: "Cloudy"

Branch-Node-Synchronisierung mit SQL Azure

Joseph Fultz

Meine Jahre vor dem Beitritt zu Microsoft und danach den ersten Jahren war ich häufig die Einzelhandelsbranche beteiligt. Während dieser Zeit fand ich es fast lustig, wie viele Male finden in der Teilstruktur Knoten Synchronisierungsproblem als Technologien voraus aufgelöst wird.

In der aktuellen Rolle, ich hatte die Anfälligkeit für die Öl- und Gas ziemlich viel (O & G) Branche, und ich habe festgestellt, dass er ein ähnliches Problem bei der Synchronisierung von Daten zwischen Knoten hat. Ähnlich wie der Einzelhandel verkettet, O & G-Unternehmen verfügen über eine Vielzahl von Geräten und Konnektivität Herausforderungen. Aus einer losen Funkverbindung auf eine ins Ausland Ölplattform zu einem Techniker in einem Feld Öl wird die Anforderung für die pünktliche und präzise Daten nicht geändert werden.

In diesem Fall sowohl Verkaufs-als auch O & G bedenken, ich bin dauert einen Blick auf die Herausforderung erneut, aber diesmal mit ein wenig Unterstützung von SQL Azure und Sync Framework. Es wird erläutert, wie die Wolke unterstützen das Problem des Verschiebens von Daten zwischen dem Datencenter (Unternehmensnetzwerk) die Verzweigungen (z. B. Speicher, Rig, Hub und So weiter) und einzelne Geräte (handheld, freigegebenen Terminal, bestimmter Geräte und vieles mehr).

In diesem Monat werde ich etwas mehr über die allgemeine Architektur und etwas weniger auf die Implementierung konzentrieren. Ich immer noch erhalten einige Codebeispiele für die Synchronisierung zwischen Knoten und SQL Azure einrichten und Filtern von Inhalt als eine Möglichkeit zum Datenverkehr und die für die Synchronisierung erforderliche Zeit zu verringern. Im nächsten Monats werde ich untersuchen, Verwendung von eines Synchronisierung dienstbasierten Ansatzes für eine skalierbare Synchronisierungslösung jenseits der Daten basierend auf den Inhalt oder die geografische Verteilung Azure SQL-Datenbanken aufgeteilt.

Das zentrale Problem nicht geändert hat, was geändert haben sind die zusätzlichen Anforderungen, die zu der Mischung hinzugefügt werden, wie die Technologie mehr erweitert wird. Anstelle der einfachen Fehlerursache des Verschiebens von Daten zwischen Knoten, Hinzufügen von Dingen, die wir wie erhöhen die Datenmenge, um weitere Details zu erhalten haben möchten, werden zunächst Einbeziehung der verschiedenen Geräte zum Sammeln und Anzeigen von Daten und näher in Echtzeit zu Feeds.

Let’s ehrlich, desto wir haben, desto mehr werden soll. In den meisten Fällen wäre das Lösen der Probleme mit dem Nachrichtenfluss Daten aus einem Jahrzehnt vor einfachen, aber diese Lösung in der heutigen Welt würden die Substrat eine stabilere Lösung nur darstellen. Für den Einzelhandel, der Datenfluss kann ziemlich einfach, dauert die Form des Katalog-Typ der Daten (Menü, Logistik und So weiter) legt nach unten und t-Protokolle gesichert – zu recht komplex, indem häufig aktualisieren Lagerbestände in Echtzeit Verlust-Prävention Analyse und manuelle Produkt Einträge aus den Zweig für Unternehmen und zwischen Verzweigungen. In den meisten Fällen O & G Unternehmen haben die gleichen Muster, jedoch über einige zusätzliche Komplexität im Zusammenhang mit der Arbeitsgang, Bewertung und Anpassung von Geräten verwendet. Ich denke, dass über die Synchronisierung auf folgende Weise eine ungefähre Vorstellung von der Grad der Komplexität erhalten (jeweils ist nachfolgend schwieriger zu implementieren und unterstützen):

  1. Drücken Sie schreibgeschützte Daten aus zu Zweigstellen und Weiter.
  2. Zwei unidirektionale legt auf unterschiedliche Daten;von Unternehmen zu verzweigen (z. B. einen Katalog) und eine von Verzweigung zu großen (z. B. t-Protokolle und Lager);Dazu gehören zur Verzweigung Zweigstelle, der Schwerpunkt liegt auf der Tatsache, dass es sich im Grunde um mindestens zwei unidirektionale Synchronisierungen ist.
  3. Bidirektionale Datensynchronisierung zwischen Unternehmen und Knoten (z. B. manuellen Eintrag oder Mitarbeiter Produktinformationen).
  4. Peer-Synchronisierung zwischen Verzweigungen und zwischen Verzweigungen und Unternehmen.

Typ 4 ist bei Weitem komplizierteste Problem und führt in der Regel zu viele Konflikte. Aus diesem Grund Sie versuchen, dieses Muster zu vermeiden und die nur zwei Kriterien, die Sie erzwingen würden, die Notwendigkeit von Aktualisierungen in Echtzeit zwischen den Knoten oder die Möglichkeit, die Verzweigungen zu synchronisieren, wenn der Unternehmensdaten Speicher nicht zugänglich ist. Da in Echtzeit oder Echtzeit-Updates zu viele Knoten zuviel Verkehr in der Regel erstellt würde und in der Regel keine sinnvolle Lösung ist, ist das einzige Kriterium, das ich wirklich achten, die Möglichkeit, ohne das Master-Shape synchronisieren. In einigen Fällen Echtzeitinformationen wird zwischen Knoten benötigt, aber dies nicht in der Regel die Groß-/Kleinschreibung für die Datensynchronisierung von. Stattdessen ist ein Ereignis Benachrichtigung Szenario und ein anderes Reißzweckensymbol wird durchgeführt, um berücksichtigen müssen.

Definieren die Architektur der Lösung

Im Allgemeinen ist das weitesten verbreitete Muster, das ich sehe Push-Daten direkt aus der master-Datenbank (über einen Händler des Werttyps) auf Server in den Zweigstellen Unternehmen und für Benutzer mobiler Geräte. Die Verteilung auf Arbeitsstationen, Kassenterminals (POS) und anderen derartigen Geräten erfolgt i. d. r. vom Server am Speicherort Zweig (i. d. r. “ Back des Hauses Servern ” genannt), während die Synchronisierung für Benutzer mobiler Geräte (z. B. Laptops) direkt vom Unternehmen mit dem Computer über einen Synchronisierungsprozess Client initiiert die erfolgt (siehe Abbildung 1 ).

image: Typical Architecture for Data Distribution

Abbildung 1 typische Architektur für die Verteilung von Daten

In einigen Organisationen dazu über die integrierten Replikationsfeatures von relationales Datenbank-Managementsystem (RDBMS), während andere Prozesse, behandeln die Verteilung und Sammlung von Daten zu erstellen. Ich werde das Muster verwalten, sondern mithilfe einer Instanz von SQL Azure anstelle der Verteiler;anstelle der Replikation wird die Sync-Framework verwendet die SQL Azure unterstützt. Auf diese Weise fügen einfach eine Schicht zwischen dem Verteiler und den Verzweigungen (siehe Abbildung 2 ).

image: Base Architecture Using SQL Azure and the Sync Framework

Abbildung 2 Architektur der Base Using SQL Azure und Sync Framework

Wie erhalte ich SQL Azure einfügen? Einige der Vorteile in einem Szenario mit Zweigstellen-Knoten sind:

  1. Skalierung des Datendiensts ohne Vergrößern der Speicherbedarf Datencenter.
  2. Hohe Verfügbarkeit der Daten ohne zusätzliche Kosten und Aufwand.
  3. Potenziell weniger Sicherheitsrelevanz da es den master-Datenspeicher nicht.

Beachten Sie, dass im ersten Szenario befindet sich der Unternehmen Verbindung oder auf Daten Speicher ab, alle Clients hat, halten Sie Ihre Transaktionen auf. Dies kann leicht zu Datenverlust aufgrund von Verlust des Geräts beim Warten auf der Verbindung, oder aufgrund von einfach der Speicherplatz auf dem Gerät ausgeführte führen zum Speichern der Buchungen, wie bereits erwähnt. Darüber hinaus Wenn Zweige gemeinsame Daten (z. B. Lagerort Bestandsdaten), arbeiten diese aus der alten Daten bis Unternehmens wieder verfügbar ist. Es gibt keine perfekte Lösung, behandelt SQL Azure in diesem Szenario, indem automatisch Kopien der Daten und automatisches Failover bereitstellen. Außerdem kann ich durch Segmentieren des Datenflusses durch mehrere Azure SQL-Datenbanken, verringern das Risiko, dass es nach unten und Last Belichtung weiter reduzieren, indem Sie nicht nur eine separate Instanz, sondern auch andere Datencentern mit.

Als Ausgangspunkt für Entwurf müssen die Auswirkungen der Synchronisierung von Verzweigungen oder vom Server initiiert berücksichtigt werden. Wenn die Anwendung für die Synchronisierung aus der Master- oder der Verteiler den Knoten geeignet ist, genießen ich den Vorteil der Verwaltung und Unterstützung von weniger Punkte;auf der Nachteil setzt es einige technische Strains der Implementierung erforderlich ist:

  1. Die Kenntnis der Endpunkte.
  2. Die Kenntnis der entsprechenden Bereiche für jedes Ziel.
  3. Die Komplexität in der Synchronisierungsvorgang, um die Synchronisierung von mehreren Knoten passieren, parallel zu machen;Die Semantik der API sind eigentlich ein Paar von Endpunkten und einen Bereich auf einmal.

Nach dem Initiieren der Synchronisierung vom Ziel (Knoten oder Zweig, z. B.) ist die Komplexität verringert, die Synchronisierung Code, wie Sie:

  • Können auf die Scope(s) für die Anwendung/Gerät konzentrieren.
  • Einfacher verwaltet gelegentlich verbunden sind.
  • Hat nur wissen und Verwalten von ein paar Endpunkte, die Verteilungsdaten synchronisiert ist.

Allerdings wird ein bisschen mehr Komplexität in die Anwendungen auf dem Zielgerät setzen und Support- und Wartungskosten, dass potenziell die Sync-Prozess oder den Agent auf jedem Gerät Debuggen erschweren kann. Im Idealfall sollten für unterschiedliche Anwendungen Daten synchronisiert werden müssen, ein separater Prozess erstellt werden, die verwaltet die Synchronisierung basierend auf einer Konfigurationsdatei, die dem Gültigkeitsbereich, Häufigkeit und Verbindungszeichenfolgen für ein Sync-Agent zur Ausführung definiert sind. Dieser Sync-Agent würde extern zu den Anwendungen, die auf den Geräten der Datennutzer vorhanden, obwohl der Prozess eine Möglichkeit für eine bestimmte Anwendung zum Initiieren der Synchronisierung der Daten bieten würden. Dies bietet den Vorteil der Synchronisierung vom Knoten initiiert, aber auch reduziert den Support- und Wartungskosten Aspekt, da es innerhalb eines einzigen Vorgangs zurückgesetzt wird.

Verwenden das Sync-Framework, oft ich bei einem gemischten Modell der Synchronisierung zu starten, indem Sie aus dem master-Datenspeicher zu SQL Azure initiiert, und anschließend aus den Knoten für die Synchronisierung zwischen dem Knoten und dem SQL-Azure initiiert. Ausgedrückt, ist möglicherweise eine sagen, dass Daten vom Master abgelegt und stammt aus der Zweige mit SQL Azure zunehmend hoher Verfügbarkeit zentraler Hub zwischen den Master-Shapes und Verzweigungen. Je nach den Anforderungen und Einschränkungen der Lösung angesehen wird, denke ich über die Kosten und Vorteile der Prozesssteuerung für die Synchronisierung von einem Punkt in der Kette zu einem anderen (z. B. Gerät Wolke oder Unternehmens cloud) zu verschieben. Nur einige dieser Überlegungen sind Fragen wie:

  • Gibt es ein Ort, an den Prozess zum Master hosten?
  • Werden Sicherheitsrichtlinien, die in Konflikt mit der Synchronisierung in SQL Azure Hostprozess?
  • Wie viele Knoten auf jeder Ebene synchronisiert werden?
  • Kann das Zielgerät einen Sync-Prozess realistisch unterstützen?
  • Was ist die Anforderungen in Bezug auf die Aktualität der Daten synchronisieren?

Was ’s mehr hat diese Fragen mehrere Ebenen, die berücksichtigt werden müssen und gegen die mögliche Lösung Entwürfe überprüft werden müssen. Solange keine ist ein Entwurf eines für alle, ich gern mit dem weiter oben beschriebenen Modell zu beginnen, und synchronisieren Sie mehrere einseitige Synchronisierungen etwas Ähnliches wie in bidirektionalen Daten synchronisieren oder Verwendung bidirektionale Synchronisierung zwischen dem Gerät/Unternehmensdatenbank und Azure SQL ausführen. Nach dem Szenarien, die für ungültig erklärt und erzwingen, dass eine Änderung des Entwurfs werden gesucht. Im Allgemeinen ist die Synchronisierung nur Formatvorlage führt zu vermeiden, Peer-to-Peer.

Einrichten der Synchronisierung

Es gibt zwei Methoden zum Einrichten der Synchronisierung Sync Framework 2.1 verwenden: Sync-Client in der Wolke und Sync-Client auf dem lokalen Computer. Ich werde auf die zweite für den Moment konzentrieren. Im einfachsten Fall sind hier die Schritte zum Einrichten einer Synchronisierungspartnerschaft:

  1. Identifizieren Sie die Daten synchronisiert werden und die Richtung des Datenflusses. Dies wird verwendet zum Definieren der Bereiche (SqlSyncScopeProvisioning) verwendet, um die Daten zu synchronisieren.
  2. Downloaden Sie und installieren Sie die Sync Framework 2.1 (bit.ly/gKQODZ ). Hinweis*: Ist X 64 der Zielplattform, ein Buildziel für X 64 hinzugefügt werden müssen, oder den SyncOrchestrator werden nicht zum Auflösen der Abhängigkeiten* .
  3. Bereitstellen der Datenbanken und Tabellen für die Synchronisierung;die gesamte Datenbank bereitgestellt werden kann, oder nur bestimmte Tabellen, oder es kann nur bestimmte Spalten sein.
  4. Fügen Sie die erforderlichen Filter. In der Fall, den es wünschenswert horizontal partitioniert ist oder andernfalls filtern die Daten möglicherweise Filter verwendet werden.
  5. Erstellen Sie und führen Sie des Prozesses zu synchronisieren aus.

Ich werde in diesem Beispiel eher spezifisch sein, wie er trägt dazu bei, die Nachricht zu übermitteln, und ich mit Datenbanken direkt an beiden Enden beginne. Erstellen Sie eine Verbindung zur lokalen Datenbank, und eine Definition (DbSyncTableDescription) für die Tabelle synchronisiert werden, und nehmen Sie diese Tabelle, um den Gültigkeitsbereich (DbSyncScopeDescription) abrufen. Darüber hinaus werde ich bestimmten Spalten angeben, aber dies ist nicht erforderlich, wenn der Wunsch, einfach die gesamte Tabelle zu synchronisieren. Beschränken die Synchronisierungspartnerschaft an bestimmte Spalten ist eine gute Möglichkeit zur Optimierung der Bandbreitennutzung der und Prozesse (siehe Abbildung 3 ) zu beschleunigen.

Abbildung 3 Erstellen eines Bereichs Synchronisierung

SqlConnection azureConn = new SqlConnection(AzureConnectionString);
SqlConnection onPremiseConn = new SqlConnection(LocalConnectionString);
// List of columns to include
Collection<string> columnsToInclude = new Collection<string>();
columnsToInclude.Add("au_id");
columnsToInclude.Add("au_lname");
columnsToInclude.Add("au_fname");
columnsToInclude.Add("phone");
columnsToInclude.Add("address");
columnsToInclude.Add("city");
columnsToInclude.Add("state");
columnsToInclude.Add("zip");
columnsToInclude.Add("contact");
// Definition for authors from local DB
DbSyncTableDescription authorsDescription =
  SqlSyncDescriptionBuilder.GetDescriptionForTable("authors", 
  columnsToInclude, onPremiseConn);
// Create a scope and add tables to it
DbSyncScopeDescription authorScopeDesc = new DbSyncScopeDescription(ScopeName);
// Add the authors table to the sync scope
authorsScopeDesc.Tables.Add(authorsDescription);

Für jede Struktur, die synchronisiert werden muss, muss etwas Code hinzugefügt werden, um die Beschreibung zu erhalten;Sie müssen diese später zum Bereich hinzufügen.Der nächste Schritt besteht darin, nehmen Sie ein Objekt mit Gültigkeitsbereich bereitstellen und verwenden, um jede Datenbank bereitstellen, wenn der Bereich in dieser Datenbank bereits vorhanden ist, wie in Abbildung 4 .

Abbildung 4 Provisioning Bereich

// Create a provisioning object for "customers" and 
// apply it to the on-premises database
SqlSyncScopeProvisioning onPremScopeConfig = 
  new SqlSyncScopeProvisioning(onPremiseConn, authorsScopeDesc);
if (!(onPremScopeConfig.ScopeExists(authorsScopeDesc.ScopeName)))
{
  onPremScopeConfig.Apply():
}
// Provision the SQL Azure database from the on-premises SQL Server database
SqlSyncScopeProvisioning azureScopeConfig = 
  new SqlSyncScopeProvisioning(azureConn, authorsScopeDesc);
if (!(azureScopeConfig.ScopeExists(authorsScopeDesc.ScopeName)))
{
  azureScopeConfig.Apply();
}

Da dies das erste Mal, die der Bereich in der Datenbank bereitgestellt wurde ist, werden einige neuen Tabellen zum Speichern von Bereichsinformationen und auch eine Tabelle, die speziell für die Überwachung des Gültigkeitsbereichs von Autoren, der in den Datenbanken bereitgestellt wurde.Ein gutes Beispiel für eine Konsolenanwendung, bereitstellen oder einen lokalen und Azure SQL-Datenbank synchronisieren kann auf Sync Framework-Teamblog unter bit.ly/dCt6T0-gefunden werden.

Am Rande: SQL Azure Daten synchronisieren

SQL Azure Daten synchronisieren ist ein wolkenbasierte-Dienst in Windows Azure, die die Synchronisierung der ganze Datenbanken oder bestimmte Tabellen zwischen SQL Server und SQL-Azure ermöglicht gehostet.Bei der Microsoft Professional Developers Conference 2010 hat ein Update für diesen Dienst mit der Bezeichnung SQL Azure Daten synchronisieren Community Technology Preview (CTP) 2 angekündigt.Dieses Update bietet Unternehmen die Möglichkeit, problemlos erweitern, SQL Server-Datenbanken auf dem Gelände in der Wolke, schrittweisen Migration von Anwendungen für die Wolke ermöglicht.Lösungen, die Nutzung von SQL Azure Daten synchronisieren können Benutzer weiterhin Zugriff auf lokale Daten und haben Änderungen nahtlos mit SQL Azure synchronisiert, sobald Sie auftreten.Ebenso werden von Anwendungen auf SQL Azure vorgenommenen Änderungen zurück an den SQL-Server auf dem Gelände synchronisiert.

Daten in synchronisiert halten

SQL Azure Data Sync bietet eine zentrale Verwaltung der Cloud-basierten System für alle Synchronisierungspartnerschaften.Mit einem beliebigen Browser können Administratoren mit dem öffentlichen Dienst verbinden und verwalten und überwachen verschiedene Datenbank-Endpunkte.Darüber hinaus bietet SQL Azure Daten synchronisieren einen Terminplan Dienst, der können die Synchronisierung, wie oft als fünf Minuten oder weniger häufig stattfinden, wenn die bevorzugte Synchronisierung Hauptzeiten ausgeführt.

Die neuesten SQL Azure Daten synchronisieren CTP-Version 2-Update eingeführt wird auch eine neue Komponente mit der Bezeichnung SQLServerAgent Azure Daten synchronisieren.Dieser Agent wird Windows-Dienst, die im Gelände wurde installiert und verknüpft die lokalen SQL Server-Datenbanken auf SQL Azure Daten synchronisieren über eine sichere Verbindung für das ausgehende HTTPS, d. h. Es gibt keine Anforderungen vom Standpunkt der Firewall oder der Konfiguration der Sicherheit –, wodurch Setup ein Kinderspiel.Der Agent-Auftrag ist Vörgänge überwachen und protokollieren sowie zum Initiieren der Synchronisierung Anforderungen aus der SQL Azure Daten synchronisieren.

Neue Szenarien

Synchronisierung zwischen SQL Server und SQL-Azure Datenbanken bietet SQL Azure Daten synchronisieren für eine Fülle von neuen Szenarien, die in der Vergangenheit recht schwierig, erstellt wurden.Genommen Sie möchten Daten gemeinsam mit dem Zweigstellen oder Einzelhandel Informationsspeicher-Datenbanken an.Mit SQL Azure Daten synchronisieren ist dies ganz einfach, da Administratoren “ Sync Gruppen ” erstellen, definieren die Daten in mehreren Datenbanken gemeinsam verwendet werden.Diese Gruppen Sync könnte ein Unternehmen SQL Server enthalten, die synchronisiert die Daten an einem zentralen SQL Azure “ Data Hub ”. Dann von diesem Hub Daten aller SQL Server-Datenbanken Remote- oder regionalen Datenänderungen, die auf Daten näher an die Benutzer zu übertragen, während auch erheblich reduziert, Bandbreite und Anforderungen für virtuelle private Netzwerke und VPNs synchronisieren können.

Darüber hinaus erleichtert die Möglichkeit, über mehrere SQL Azure Datencenter synchronisieren dezentrale Lasten zwischen Standorten.Genommen Sie haben Vierteljährliche Erklärung Anforderungen, die eine riesige zyklische Last auf dem SQL Server-Datenbank auftreten an.Synchronisieren Sie einige der Daten, die Ihre Azure SQL-Datenbanken auf der ganzen Welt bei Bedarf Warum nicht?Benutzer können dann die Daten, die Ihnen am nächsten und senkt die Skalierbarkeitsanforderungen auf dem lokalen SQL Server zugreifen.

Weitere Informationen und zur Teilnahme an der CTP-Version 2 zu registrieren besuchen Sie microsoft.com/en-us/sqlazure/-.

– Liam Cavanagh, Senior Programmmanager SQL Azure Daten synchronisieren

Die Daten werden synchronisiert

Nachdem die Datenbanken korrekt bereitgestellt werden, ist recht einfach, Sie synchronisieren.Erfordert die Erstellung eines SqlSyncProvider für jedes Ende der Aktivität mit dem angegebenen Gültigkeitsbereich.Dies umfasst die Verwendung des Objekts SyncOrchestrator, d. h. die magische hinter dem Vorhänge, die identifiziert der Änderungen und die Änderungen zwischen den beiden verschiebt.Der Code sieht etwa wie folgt:

SqlConnection LocalConnection = new SqlConnection(LocalConnectionString);
SqlConnection AzureConnection = new SqlConnection(AzureConnectionString);
SqlSyncProvider LocalProvider = new SqlSyncProvider(ScopeName, LocalConnection);
SqlSyncProvider AzureProvider = new SqlSyncProvider(ScopeName, AzureConnection);
SyncOrchestrator orch= new SynOrchestrator();
orch.LocalProvider = new SqlSyncProvider(ScopeName, LocalConnection);
orch.RemoteProvider = new SqlSyncProvder(ScopeName, AzureConnection);
orch.Direction = SyncDirectionOrder.DownloadAndUpload;
orch.Synchronize();

Daten und geographische Verbreitung

Einfache Replikation der Daten verarbeitet kann ich entsprechend Optimieren des Bereitstellung Architektur und Datenfluss. Sync-Framework kann ich Filter anzugeben;Dies in Kombination mit SQL Azure ist eigentlich ein großer Vorteil in Zweigknoten Architekturen. Die Kombination der beiden verwenden, kann ich näher auf die Daten an den Consumer ultimative platzieren und optimieren Sie die Bandbreitennutzung der (und somit Gebühren) nur die Daten, die wichtig für die Segmentierung Region oder Daten zu synchronisieren. Anstelle von Datenserver in verschiedenen geografischen Bereichen können Daten einfach zu einer Instanz von SQL Azure aus dieser Region synchronisiert werden, und können diese Clients in diesem Bereich zu synchronisieren.

Durch geografisch Verteilen von Daten um, und implementieren die Bereiche, die zum Synchronisieren von Daten mit einer bestimmten Häufigkeit nachvollziehbar, erzielen eine fein abgestufte Kontrolle über was, wie, wann und wie viel Datenfluss über die Leitung, Verbessern des Benutzers auftreten, wie auf Verfügbarkeit von Daten und Aktualität betrachtet. Endbenutzer, die zwischen den Standorten übertragen kann, in denen es nicht schön, Speicherort-fähig sein, würde, konnte der Sync-Agent darüber hinaus selbst suchen und zur Synchronisierung von Daten für die aktuelle Position aus erreichen. Einige Beispiele hierfür sind aktuelle Statistiken oder Warnungen für Mitarbeiter in einer Umgebung mit Produktion/Pflanze und Verkäufe des aktuellen-Tag für die regionalen Manager der Einzelhandel Ketten durchlaufen (siehe Abbildung 5 ).

image: Synchronizing Data with Filters

Abbildung 5 Synchronisieren von Daten mithilfe von Filtern

Das Aktivieren der Filterung ist nicht schwieriger als die Bereitstellung eines Bereichs Synchronisierung. Auf diese Weise kann es mehrere Bereiche vorhanden, die verschiedene Filter verfügen, oder Sie haben keine. Die erforderliche Änderung ist einfach, zwei Codezeilen für jeden Filter hinzuzufügen, der hinzugefügt wird: eine Zeile, eine Spalte Filter auf die Tabelle und eine zweite hinzufügen, eine Bedingung “, in denen ” im Grunde ist die Filterklausel hinzufügen. Für mein Beispiel habe ich einen Filter basierend auf dem Status hinzufügen und Synchronisieren von ändert nur für den Status von Utah oder UT, etwa so:

onPremScopeConfig.Tables["authors"].AddFilterColumn("state");
onPremScopeConfig.Tables["authors"].FilterClause = "[authors].[state] = 'UT'";

Wenn Sie in beide Richtungen basierend auf den Filter zu synchronisieren, müssen beide Bereiche hinzugefügt werden, während Sie auf jedes Ende bereitgestellt sind.

Gehen Sie Forth und Spread der Daten

Hinzufügen der Mischung SQL Azure, ob eine einzelne Instanz oder mehrere Objekte können wirklich verbessert die Verfügbarkeit von Daten und die Gesamtleistung bei der Synchronisation der Knoten durch das jemals wichtige Schicht der Dereferenzierung hinzufügen.Da SQL Azure, ruft einen Leistung, Skalierbarkeit und Zuverlässigkeit, ohne alle die Kopfschmerzen von Entwurf, Bereitstellung und Verwaltung der Infrastruktur.Suchen des nächsten Monats, in denen werde ich-Implementierung zu erweitern und zeigen, wie der Mischung für die Synchronisierung mit der aktuellen Sync Framework 4.0-CTP im Oktober (bit.ly/dpyMP8 ) veröffentlicht Windows Azure hinzugefügt werden können.

Joseph Fultz ist Architekt bei Microsoft Technology Center in Dallas, wo er mit Unternehmenskunden und unabhängigen Softwareanbietern entwerfen und Erstellen von Prototypen Softwarelösungen arbeitet erfüllen Unternehmen und Markt Anforderungen. Er wird bei Ereignissen wie z. B. TechEd und ähnliche interne Schulungen Veranstaltungen gesprochen.

Dank an den folgenden technischen Experten für die Überprüfung der in diesem Artikel: David Browne