Synchronisation

  • Für Mehrbenutzer-Anwendungen, Groupware und standortübergreifende Softwareanwendungen wie ERP zur konsistenzhaltenden Synchronisation der Transaktionen (Synchronisation mehrerer Datenströme).
  • Replikation relevanter Daten in mehreren Standorten (Niederlassungen)
  • Bidirektionale Synchronisation: Datensynchronisation in beiden Richtungen, so dass beide Standorte einen synchronen Datenbestand aufweisen.

Synchronisation

Synchrone und asynchrone Replikation:

  • Synchrone Replikation sofern eine Netzwerkverbindung zwischen den zu synchronisierenden Standorten besteht. Eine Änderung an einem Datenobjekt wird abgeschlossen, wenn bei allen Repliken die Änderung ebenso durchgeführt werden kann.
  • Asynchrone Replikation bei fehlender Netzwerkverbindung:Änderungen an einem Datenobjekt führen zur Änderung aller Repliken unter Beachtung von Latenzzeit. Bspw. wenn auf einem Notebook, welches losgelöst vom Netzwerk beim Kunden eingesetzt wird. Eine Latenzzeit besteht in dem Falle bis zur Datensynchronisierung im Netzwerk.

Globale und partielle Synchronisation:

  • Globale Synchronisation: Synchronisiert werden Daten, die global für die Verwendung der Software auf allen Datenserverinstanzen benötigt werden (Betriebseinheiten, Ressourcen)
  • Partielle Synchronisation: Konfiguration von Ressourcen (Mandanten), die immer synchronisiert werden.

Vermeidung von Bearbeitungskonflikten nach ‚Optimistic Locking‘:Bei gleichzeitigem Zugriff mehrerer Nutzer auf das gleiche Datenobjekt, kann nur der Nutzer die Änderung speichern, welcher als erster darauf zugegriffen hat. Alle anderen Nutzer erhalten einen Hinweis auf die Versionsänderung. Die Kontrolle erfolgt über Schreibzeitstempel.

Eindeutige Objekte durch Identity Fields: Gleiche Objekte werden anhand von Identity Fields erkannt, so dass Nutzer ein eindeutiges Objekt nicht zweimal anlegen kann. Kontrolle beim Speichern und bei der Datensynchronisation.

Versionserhalt: Über Versionsobjekte bleiben alle Datenobjekte bei Änderungen erhalten. Die neuste Version eines Datenobjektes gilt als aktuelles Objekt.

Vorteile der Datensynchronisation:

  • Zugriff auf prozessrelevanten Daten von anderen Standorten, welche für eigene Prozesse benötigt werden (Bsp.: Auftragsdaten bei Kooperationsaufträgen)
  • Aktuelle Daten: Geänderte Daten werden synchronisiert.
  • Hohe Verfügbarkeit der Daten: Daten liegen zeitlich in der Niederlassung vor, wo sie benötigt werden.
  • Verkürzte Antwortzeiten: Datenlesung durch replizierte Daten verkürzt die Zugriffszeit, da nur auf Datenbank der eigenen Niederlassung zugegriffen werden muss.
  • Einmalige Konfiguration globaler Einstellungen: Die systemweite Synchronisierung ermöglicht die Replikation aller relevanter globaler Einstellungen.
  • Redundante Datenhaltung: Bei Datenverlust einer Niederlassung können diese wieder hergestellt werden.
  • Vermeidung von Schreib-Lese-Konflikten und Race Conditions

Zusammenfassung:
Die Synchronisation unterstützt den gleichzeitigen Benutzerzugriff durch Gewährleistung der Daten-Konsistenz. Geänderte Datenwerte werden auf den anderen Standorten repliziert. Änderungen an den Datenobjekten, welche an den anderen Standorten vorgenommen wurden, werden zusammengeführt. Vorgenommene Datenänderungen unterliegen bis zur vollkommenen Synchronisierung an den jeweiligen Standorten, einer Latenzzeit. Durch die Synchronisierung werden all jene Daten repliziert, welche für die anderen Standorte von Relevanz sind. Dies erhöht zum einen die Verfügbarkeit relevanter Daten und zum anderen werden die Zugriffszeiten auf die Datenobjekte verkürzt. Zudem wird partiell eine redundante Datenhaltung der wichtigsten Daten erreicht. Über Versionsobjekte lassen sich die Änderungen an den Daten zeitlich rückverfolgen. Die Eindeutigkeit bestimmter Objekte wird über Identity Fields gewahrt. Die gleichzeitige Änderung eines Datenobjektes durch mehrere Nutzer wird über die Versionskontrolle und Schreibzeitstempel vermieden.

  • Referenzen: Trescal GmbH
  • Technologien: VB .Net
  • Tools: MS Visual Studio, SVN, Redmine, Teamcity, ANTS Performance Profiler etc.
  • Team: Projektleitung, Architekt, Buildmanagement, Softwareentwicklung, Test
  • Methodik: Scrum