Daten immer up to date

Synchronisation und Konsistenz

Das grundsätzliche Problem bei Synchronisationsprozessen ist die Konsistenz der Daten. Um diese zu gewährleisten, müssen sowohl Server als auch Client jede Veränderung der Daten registrieren und während einer Synchronisation einander mitteilen. In SyncML wird die Konsistenz von so genannten Sync Anchors geregelt. Diese gibt es in zwei Ausprägungen, Last und Next. Die Sync Anchors werden zu Beginn einer Synchronisation gesendet, sie geben Aufschluss über die Identität der Datensätze in beiden Geräten. Der Sync Anchor Last enthält den Zeitpunkt, zu dem die Datenbestände aus der Sicht des den Anchor sendenden Gerätes zuletzt abgeglichen wurden, der Sync Anchor Next enthält den Zeitpunkt des gegenwärtigen Austausches.

Damit kann der Server entscheiden, wann die letzte Synchronisation stattgefunden hat und ob die momentane Synchronisation mögliche Änderungen des Datenbestandes beinhaltet. Dazu vergleicht er den Anchor Last des Client mit dem gespeicherten Wert auf dem Server.

Wenn sich nur einzelne Daten geändert haben, muss nicht jedesmal eine vollständige Korrektheit überprüft werden: Es existieren neben diesen generellen Sync Anchors auch Sync Anchors für Datensätze. Im Falle einer nötigen Synchronisation kann die Software daher im nächsten Schritt prüfen, welche Datensätze einer Änderung unterliegen und aktualisiert werden müssen. Dazu vergeben Client und Server Schlüsselzahlen für jeden Datensatz. Veränderte Daten kann der Server dann durch einen Vergleich dieser Zahlen ermitteln.