Laden...

Datensynchronisation verteilter Anwendungen

Erstellt von mobile_coder vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.602 Views
M
mobile_coder Themenstarter:in
3 Beiträge seit 2006
vor 13 Jahren
Datensynchronisation verteilter Anwendungen

Hallo Zusammen,

stehe momentan vor folgender Herausforderung.

Es müssen Daten verschiedener Systeme (SharePoint, JIRA und beliebige anderer Systeme) über das Internet synchron gehalten werden.

Synchronisiert wird eine Tabelle und dabei nur ein Teil von Tabelleneinträgen mit einer 1<->1 Beziehung (Z.B. Sharepoint<->JIRA). Elemente können auf beiden Seiten verändert werden und müssen anschließend zwischen den jeweiligen Systemen synchronisiert werden. SharePoint steht dabei immer in der Mitte als zentrales System. Jedes weitere System wird angebunden.

Definiert ist ein generisches Datenformat welches auf der jeweiligen Seite in das entsprechende Datenformat gemappt wird. Datenaustausch entweder per XML oder WebService/REST.

Synchronisiert wird asynchron z.B. 1x pro Stunde. Während eines Synchronlaufs können eine Menge Konflike auftreten.

Hat jemand bzgl. solch einer Anforderung Erfahrung und kennt möglicherweise eine prakmatische Lösung?

Danke.

Viele Grüße
Christoph

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo mobile_coder,

was genau ist denn das Problem? Du hast ja nur das Szenario beschrieben. Nicht an welcher Stelle du (gedanklich oder praktisch) hängst.

herbivore

M
mobile_coder Themenstarter:in
3 Beiträge seit 2006
vor 13 Jahren

Hallo herbivore,

von der Idee her, würde jede Seite (A und B) für sich jeweils einen Synchronisationslauf pro Stunde mit einem Zeitverzug von 30 Min durchführen (vorausgesetzt jede Seite benötigt <30Min für den jeweiligen Synchlauf).

Die Daten für den Datenaustausch werden z.B. auf einem gemeinsamen FTP-Server abgelegt.

Während einer Synchronisation startet immer zuerst ein Import, um zuerst die Datenbank von A zu aktualisieren und anschließend ein Export, der alle für B relevanten Daten auf den gemeinsamen FTP-Server ablegt.

Anschließend begint B mit einem Import und legt anschließend alle für A relevanten Daten auf dem gemeinsamen FTP-Server ab.

Beim Importieren gewinnt immer der aktuellste Datensatz und zwar komplett. Daten werden nicht gelöscht, höchstens vom Status her geschlossen.

Dieses Prinzip funktioniert wahrscheinlich bis zu dem Zeitpunkt, dass auf beiden Seiten der gleiche Datensatz (mit der gleichen ID) während eines Synchronisationslaufes geändert wird.

Wenn nun der aktuellste Datensatz gewinnt, gehen die Änderungen des anderen Datensatzes verloren.

A ändert z.B. ein Textfeld und B kurz danach den Status eines gemeinsamen Feldes. Nach einer Synchronisation würde die Änderung von A verloren gehen.

Jetzt stellt sich für mich die Frage, wie solch ein Konflik aufgelöst werden kann und ob es hier möglicherweise Lösungsvorschläge (Design-Patterns?) existieren? Ich bin hoffentlich nicht der erste, der Datenobjekte über schiedene Anwendungen synchron halten möchte....

Ist diese Beschreibung etwas verständlicher?

Christoph

5.742 Beiträge seit 2007
vor 13 Jahren

Hallo mobile_coder,

schaue dir einmal das Microsoft Sync Framework an. Evtl. kannst du das ganze damit realisieren.

M
mobile_coder Themenstarter:in
3 Beiträge seit 2006
vor 13 Jahren

Hallo winSharp93,

dieses Framework habe ich mir angesehen und wenn man unter MS-Technologien bleibt, wahrscheinlich genau die richtige Lösung.

Muss jedoch über diverse Software-Lösungen den Datenaustausch per generischer Schnittstelle realisieren.

Danke & Grüße
Christoph

2.760 Beiträge seit 2006
vor 13 Jahren

Habe mit dem Sync Framework zwar noch nicht gearbeitet aber es scheint die Möglichkeit zu bestehen eigene Provider etc. zu schreiben. So wie es auf der Homepage klingt kann man wenn man nur will wohl so ziemlich alles damit anbinden.