2009-03-16 8 views
1

Ich bin auf der Suche nach Feedback zum besten Ansatz für ein Problem, mit dem ich beauftragt wurde. Es gibt zwei Systeme mit eigenen Datenbanken, die sehr ähnliche Geschäftseinheiten speichern.Synchronisieren von Datenentitäten aus verschiedenen Anwendungen

Für jede fragliche Entität muss ein Synchronisationsmechanismus vorhanden sein, um sicherzustellen, dass Änderungen in einer Datenbank an die andere übermittelt werden, wenn eine Änderung auftritt und die Änderungen in die Struktur der Zieltabelle übersetzt werden. Diese Übersetzung bedeutet, dass Replikation keine Option ist, aber ich möchte nicht mit dem Erstellen von maßgeschneiderten Triggern oder Ansichten usw. beginnen, um sie synchron zu halten.

Ist dies etwas, was BizTalk oder ein ähnliches Produkt nach einem anfänglichen Konfigurations-/Zuordnungsprozess verarbeiten kann? Ist Biztalk möglicherweise auch übertrieben und gibt es andere Methoden, die ich anstellen könnte, um dies zu erreichen?

Danke,

Brian.

Antwort

0

Es gibt ein raffiniertes Werkzeug namens "datariver" von der Schweizer Firma Sowatec (wo ich vor ein paar Jahren gearbeitet habe. Ich war nicht an diesem Produkt beteiligt; nur damit Sie es wissen). Es soll Daten von Quellen zu Senken fließen (genau wie ein Fluss).

Die Website ist in Deutsch, aber die Jungs dahinter beantworten gerne Ihre Fragen in englischer Sprache per Post.

+0

ich in diese aussehen. –

1

Es hängt von der Größe der zu synchronisierenden "Systeme" (Tabellen?) Ab.

EAI sind die allgemeine Anwendung, dies zu tun. Verbinden von zwei Systemen, die nicht miteinander interagieren können, das Zuordnen eines Geschäftsobjekts zu einem anderen, das Anwenden einer Karte, um eines in ein anderes zu übersetzen. Aber solche Werkzeuge (wie webMethods zum Beispiel) sind Enterprise-Tools, wenn Sie nur zwei Tabellen von zwei Systemen synchronisieren müssen EAI wird eindeutig zu viel.

Wie auch immer, die Prinzipien können Ihnen helfen. Der EAI-Ansatz würde darin bestehen, ein generisches Geschäftsobjekt zu haben, das mit allen Eigenschaften übereinstimmt, die in beiden Systemen für die Geschäftsobjekte gefunden werden, die Sie synchronisieren möchten. Dann müssen Sie eine Art Karte haben, um jedes anwendungsspezifische Geschäftsobjekt auf Ihr generisches Geschäftsobjekt zu übertragen. Ihr Objekt sollte nicht nur die Geschäftsdaten beschreiben, sondern auch die durchzuführende Operation (Daten anlegen, aktualisieren, löschen).

Dann brauchen Sie einen Trigger (oder zwei, wenn Sie beide Wege synchronisieren möchten), um zu erkennen, wenn eine Änderung eintritt, verwenden Sie die Karte, um die Daten Ihres Triggers zum generischen Objekt zu transformieren (mit der Operation am anderen Ende)).

Und schließlich benötigen Sie einen „Updater“, die das spezifische Business-Objekt nehmen und tun, um die richtige Operation in der Datenbank (insert/update/delete)

EAI-Anschlüsse sorgen dafür zu sorgen, den Workflow auszulösen und Aktualisierung die Datenbank. Abhängig von der verwendeten EAI müssen Sie einige Zuordnungen noch auf bestimmte Weise definieren. EAI sind viel mächtiger als juste zwei Tabellen synchronisieren. Connnectors haben verschiedene Arten und können mit verschiedenen Systemen (proprietäre), verschiedenen Datenbanken, einfachen Formaten (XML, Text) oder spezifischen Protokollen (FTP, Webservices usw.) interagieren. EAI stellt auch sicher, dass alle Änderungen am Ende wirksam sind.

Ich hoffe, es hilft.

+0

Danke für die Rückmeldung, aber wer sind EAI? Prost. –

+0

Schlagwort: Enterprise Application Integration. –

1

Sql Server Integration Services könnte ein billiger Kandidat sein, um das Problem zu lösen (Verbindung zu anderen DBs und Datenquellen, die Sql Server). SSIS ist Teil aller Sql Server-Installationen (mit Ausnahme von Express).

0

BizTalk ist und wäre eine ideale Lösung für diese Art von Problem.

Was BizTalk kann tun? 1. Definieren Sie ein Schema, das eine allgemeine Geschäftsentität darstellt. Dies sind im Wesentlichen alle Felder, die über mehrere Datenbanktabellen hinweg synchronisiert sein müssen.

  1. Definieren Sie den Kommunikationsfluss (Orchestrierungen) und die Endpunkte (Webdienste), d. H. Welches Update löst die Änderungen aus!

  2. Verwenden Sie Karten, um die allgemeine Geschäftsentität in bestimmte Datenelemente von den Datenbanken zugeordnet. Beachten Sie, dass BizTalk über integrierte Adapter verfügt, um den Entwicklungsprozess zu beschleunigen.

  3. Ausreichende Zeit muss in Design und von diesem System verbracht werden, die Ergebnisse wären fabelhaft.

Für Entwicklungszwecke siehe meine Artikel (google keywords: Biztalk + Karamchetti)