Konzepte für die Replikationsprogrammierung

Vor dem Entwickeln einer Anwendung, die Replikationsfunktionen verwendet, führen Sie die folgenden allgemeinen Planungsschritte aus:

  1. Definieren Sie die Replikationstopologie.

  2. Definieren Sie die Anwendungsfunktionen.

  3. Erstellen Sie einen Sicherheitsplan.

  4. Wählen Sie eine Entwicklungsumgebung.

  5. Wählen Sie die geeignete Programmierschnittstelle für die Replikation.

Im restlichen Teil dieses Themas werden diese Schritte ausführlicher beschrieben. Der Planungsprozess wird an einem Beispiel veranschaulicht.

Definieren der Replikationstopologie

Der erste Schritt bei der Programmierung der Replikation besteht darin, die Replikationstopologie für die Anwendung zu definieren. Wenn Sie eine Anwendung schreiben, die eine vorhandene Replikationstopologie verwendet, z. B eine Clientanwendung, die auf Daten eines vorhandenen Abonnenten zugreift, fahren Sie mit dem nächsten Schritt fort.

Hinweis

In einigen Fällen besteht der einzige Zweck der Anwendung in der Bereitstellung der Replikationstopologie.

Die Definition der Replikationstopologie hängt von vielen Faktoren ab. Dazu gehören:

  • Ob replizierte Daten aktualisiert werden müssen und von wem.

  • Die Datenverteilungsanforderungen an Konsistenz, Autonomie und Latenzzeit.

  • Die Replikationsumgebung, einschließlich Geschäftsbenutzer, technischer Infrastruktur, Netzwerk und Sicherheit sowie Dateneigenschaften.

  • Die Replikationstypen und Replikationsoptionen.

  • Die Replikationstopologien und ihre Ausrichtung auf die Replikationstypen.

Wenn die Microsoft SQL Server-Replikation noch neu für Sie ist, finden Sie unter Replikationstypen weitere Informationen.

Definieren der Anwendungsfunktionen

Nachdem Sie die Replikationstopologie definiert haben, bestimmen Sie die Funktionen, die die Anwendung bieten soll. Diese Funktionen können von einem Skript zur Synchronisierung eines Abonnements über eine Anwendung mit einer Benutzerschnittstelle bis hin zur Konfiguration der Replikation reichen. Die Replikation unterstützt die folgenden allgemeinen Programmierungstasks:

  • Einrichten der Replikation

  • Synchronisieren von Abonnenten

  • Warten einer Replikationstopologie

  • Überwachen einer Replikationstopologie.

  • Behandlung von Problemen mit der Replikation

Üblicherweise wird die Anwendung außerdem durch Kombinieren von Replikationsfunktionen mit anderen von SQL Server bereitgestellten Funktionen erweitert. In der folgenden Tabelle werden einige erweiterte Funktionen hervorgehoben, die Sie in der Replikationsanwendung bereitstellen können.

Funktionalität Beispiel
Serververwaltung mit SQL Server Management Objects (SMO) Eine Anwendung, mit der ein Administrator eine Datenbank anhängen und als Verleger in einer Replikationstopologie konfigurieren kann.
Datenzugriff mit ADO.NET Eine Anwendung, mit der Benutzer programmgesteuert auf replizierte Verkaufsdaten in einer lokalen Abonnentendatenbank im Offlinemodus zugreifen und diese ändern können. Anschließend kann eine Verbindung hergestellt und das Pullabonnement per Mausklick synchronisiert werden.

Erstellen eines Sicherheitsplans

Sicherheit ist in jeder Anwendung wichtig. Daher sollte ein Sicherheitsplan vor dem Schreiben von Code erstellt werden. Die Anwendungssicherheit kann in drei Hauptbestandteile unterteilt werden: Sichern der Datenbank, Sichern der Replikation und Schreiben von sicherem Code.

Die folgenden Themen stellen weitere Informationen über die Sicherheit bereit:

Wählen einer Entwicklungsumgebung

Beim Entwickeln einer Replikationsanwendung kommen drei grundlegende Entwicklungsumgebungen in Betracht. Jede Entwicklungsumgebung hat Zugriff auf die gleichen Replikationsfunktionen. Dabei gibt es jedoch einige Ausnahmen. Replikationsanwendungen können in jeder der folgenden Umgebungen entwickelt werden.

  • Verwalteter Code

    Hierbei handelt es sich um eine objektorientierte Entwicklungsumgebung, die die Vorteile der .NET Framework-Programmierung und der .NET Common Language Runtime (CLR) nutzt. Verwalteter Code wird als Programmierumgebung sowohl für .NET-Entwicklungs- als auch für SQL Server-Anwendungen empfohlen. Verwaltete Replikationsschnittstellen ermöglichen die objektorientierte Programmierung der Replikationsverwaltung, ohne Transact-SQL kennen zu müssen, und bietet auch einige Rückruffunktionen, wenn Replikations-Agents ausgeführt werden, die nicht über Skripts verfügbar sind. Verwalteter Code ist die beste Umgebung zum Entwickeln von wiederverwendbaren Komponenten und Benutzeroberflächenanwendungen.

  • Skripterstellung

    Einfache Anwendungen, die eine Reihe von Befehlen entweder als gespeicherte Replikationssystemprozeduren in Transact-SQL-Skripts oder Befehle in Batchdateien ausführen. Sie können einerseits Skripts in einer verwalteten Umgebung mit dem in Bearbeitung befindlichen verwalteten SQL Server-Anbieter ausführen. Andererseits lässt sich die gleiche Funktionalität aber auch mit verwalteten Replikationsschnittstellen erzielen, die darüber hinaus Rückruffunktionen zur Verfügung stellen. Die Skripterstellung stellt die beste Umgebung zum Ausführen von Tasks dar, die nur einige Male ausgeführt werden und die keine Rückruffunktionen erfordern, z. B. das Installieren eines Replikationsservers.

  • Nativer Code

    Hierbei handelt es sich um eine objektorientierte Entwicklungsumgebung, die direkten Zugriff auf das System oder COM-Objekte so nutzt, dass Code nicht von der CLR verwaltet wird. Systemeigene Codereplikationsschnittstellen sind veraltet oder werden nicht mehr unterstützt. Weitere Informationen finden Sie unter Als veraltet markierte Funktionen in SQL Server-Replikation oder Abwärtskompatibilität von Replikationen.

Auswählen der geeigneten Programmierschnittstelle für die Replikation

Der letzte Planungsschritt besteht darin, die geeignete Programmierschnittstelle für die Replikation auszuwählen, die die gewünschten Replikationsfunktionen für die ausgewählte Entwicklungsumgebung implementiert. In der folgenden Tabelle sind die verfügbaren Programmierschnittstellen für die Replikation aufgeführt.

Schnittstelle Environment Verwendung
Replication Management Objects Concepts Verwalteter Code Verwaltung, Überwachung und Synchronisierung
Microsoft.SqlServer.Replication Verwalteter Code Synchronisierung
Microsoft.SqlServer.Replication.BusinessLogicSupport Verwalteter Code Erstellen von Geschäftslogikhandlern, um benutzerdefinierte Logik in den Mergesynchronisierungsvorgang zu integrieren
Gespeicherte Replikationsprozeduren (Transact-SQL) Skripterstellung Administration und Überwachung.
Ausführbare Konzepte für die Programmierung von Replikations-Agent Skripterstellung Synchronisierung

Beispiel

Unter Adventure Works müssen Daten für 200 Vertriebsmitarbeiter weltweit veröffentlicht werden. Die Vertriebsmitarbeiter sind viel im Außendienst unterwegs und müssen Laptops oder PDAs (Personal Digital Assistants) verwenden, um Kundendaten zu ändern und neue Bestellungen hinzuzufügen. Die Änderungen müssen anschließend mit dem Verleger synchronisiert werden, wenn die Vertriebsmitarbeiter über den Laptop eine Verbindung mit dem Netzwerk herstellen.

Für diese Anwendung könnten die Planungsschritte wie folgt aussehen:

  1. Die Replikationstopologie für diese Anwendung ist bereits vorhanden. Es muss jedoch ein neues Pullabonnement clientseitig erstellt werden. Die Veröffentlichung sollte parametrisierte Filter verwenden, um für jeden Vertriebsmitarbeiter einen eindeutigen Satz Daten zu replizieren.

  2. Zusätzlich zu dem regulären Datenzugriff, der für eine Vertriebsanwendung erforderlich ist, sollte diese Anwendung einen Vertriebsmitarbeiter in die Lage versetzen, das Pullabonnement bei Bedarf per Mausklick zu synchronisieren. Da die Anwendung von einem Vertriebsmitarbeiter installiert und ausgeführt wird, muss sie außerdem die Möglichkeit bieten, ein Abonnement zu konfigurieren und die Anfangsmomentaufnahme clientseitig zu übernehmen. Die Anwendung verwendet wahlweise die unter Windows zur Verfügung gestellte Infrastruktur zur Erkennung von Funkverbindungen, um das Abonnement automatisch zu synchronisieren, sobald eine Verbindung erkannt wird.

  3. Beachten Sie alle Sicherheitsrichtlinien für die Replikation, einschließlich der Verwendung der Windows-Authentifizierung und eines virtuellen privaten Netzwerks (VPN), wenn Sie die Verbindung mit dem Verleger herstellen. Wenn Sie die Websynchronisierung implementieren, verwenden Sie eine SSL-Verbindung (Secure Sockets Layer). Weitere Informationen finden Sie unter Configure Web Synchronization.

  4. Um die Vorteile der Funktionen von .NET Framework zu nutzen, wird die Anwendung mit einer verwalteten Codesprache entwickelt.

  5. Auf Grundlage dieser Anforderungen kann die verwaltete Schnittstelle für Replikationsverwaltungsobjekte (RMO) alle erforderlichen Replikationsfunktionen für diese Anwendung bereitstellen.

Dieses Beispielszenario wurde in einer Beispielanwendung implementiert, die mit SQL Server enthalten ist.