SyncML ist eine Abkürzung von Synchronization Mark-up Language und faktisch eine Spezifikation zur Datensynchronisation.[1]

Die Spezifikation besteht hauptsächlich aus einem XML-basierten Repräsentationsprotokoll und einem Synchronisationsprotokoll sowie dessen exemplarischen Bindungen an HTTP, OBEX und WSP.[1][2]

Bei den Daten kann es sich um beliebige Formate handeln, soweit sie in MIME registriert oder repräsentierbar sind.[3]

SyncML wurde zuerst im Dezember 2000 von der SyncML Initiative veröffentlicht, die im Februar 2000 als Gemeinschaftsunternehmen ohne Gewinnerzielungsabsicht gegründet worden war, beispielsweise Ericsson, IBM, Lotus, Matsushita, Motorola, Nokia, Palm und Psion als ursprüngliche Sponsoren hatte, und im November 2002 in der Open Mobile Alliance aufging.[3]

Eine Spezialform von SyncML ist SyncML-DM (SyncML for Device Management), das Fernwartungsfunktionen für mobile Endgeräte definiert, womit ein Server Konfigurationen und Softwareaktualisierungen verwalten kann.

Plattformunabhängigkeit

Jedes beliebige Gerät mit einem SyncML-konformen Client kann Daten mit einem SyncML-fähigen Server abgleichen, unabhängig von Betriebssystem und Hersteller. Typische Endgeräte, zwischen denen Daten abgeglichen werden können, sind PC, Mobiltelefone und Handcomputer.

Datensynchronisation

Datensynchronisation ist grundsätzlich der Vorgang, bei dem zwei verschiedene Endgeräte (egal ob zum Beispiel Mobiltelefone, Handhelds oder Laptops bzw. PCs) Daten aneinander angleichen. Es wird dabei erkannt, welches Endgerät welche Daten hat, und auch kontrolliert, ob das jeweilige andere Endgerät diese Daten zusätzlich zu seinen eigenen besitzen will. Für den Fall, dass beide Endgeräte dieselben Dateninhalte haben, nur in unterschiedlichen Versionen (wenn beispielsweise eine Adresse auf einer Seite geändert wurde) kann definiert werden, welche Änderung beibehalten wird.

Mittels SyncML-Nachrichten tauschen Clients mit einem Server Daten für die Synchronisation aus. Typischerweise initiiert immer der Client den Start einer Synchronisation. Erst eine zukünftige Version 1.3 soll einen echten Push vom Server zum Client ermöglichen. SyncML-Nachrichten ähneln in ihrer Struktur ganz normalen E-Mail-Nachrichten. Es gibt einen Kopf mit Empfänger und Senderinformationen und für den Server eindeutige Synchronisations-IDs. Dem Kopf folgen die Synchronisationsbefehle zum Hinzufügen, Löschen und Ersetzen von Daten.

Beispiel

Symbolisierte Darstellung einer Synchronisation
Symbolisierte Darstellung einer Synchronisation

Alice und Bob haben jeweils ein Mobiltelefon und sind als Außendienstmitarbeiter derselben Firma angestellt. Diese Firma verwaltet alle Kundendaten zentral an einem Server.

Alice lernt nun einen Kunden Dave kennen, und speichert dessen Telefonnummer und Namen in ihrem Handy ab. Das Handy von Alice übermittelt den neuen Eintrag automatisch an den zentralen Firmenserver, der nun den neuen Kontakt zentral speichert. Jetzt sendet der Server dem Mobiltelefon von Bob den Eintrag sofort zu, nachdem das Mobiltelefon von Alice den Eintrag dem Server bekannt gegeben hat. Der Server hat somit die Dateninhalte zwischen Alice und Bob synchronisiert. Dies funktioniert auch mit mehr als zwei Teilnehmern.

Ändert sich die Nummer von Dave, dann wird diese von Alice auf ihrem Mobiltelefon geändert und beim Synchronisieren auch auf dem zentralen Firmenserver geändert, und bei folgenden Synchronisierungen dann auch auf das Gerät von Bob gelangen.

Herausforderungen

Aus der Funktionsweise von SyncML ergeben sich einige Probleme:

Um diese Probleme lösen zu können, gibt es einige weiterführende Konzepte für den Synchronisationsprozess.

Konzepte

Folgende Konzepte müssen zwecks funktioneller Datensynchronisation implementiert werden:

Dies ist nur ein Überblick über die Konzepte – er wurde nur aus Gründen der Vollständigkeit wiedergegeben.

Schema

SyncML-Protokollaufbau, Quelle: www.tecchannel.de

Mit SyncML erhalten die Geräte ein einheitliches Austauschprotokoll. Dieses arbeitet dabei unabhängig vom Gerätetyp und vom Übertragungsweg: Damit so unterschiedliche Gerätegattungen wie PDAs, Handhelds, Mobiltelefone, Kameras und PCs ihre Daten mit dem Synchronisationsprotokoll austauschen können, unterstützt SyncML etablierte Protokolle wie HTTP, WSP (Wireless Session Protocol, Teil des WAP-Protokolls) und OBEX für Bluetooth- und IrDA-Verbindungen.

Kommunikation

Grundsätzlicher Ablauf bei einer Synchronisation zwischen Server und Client, Quelle: www.syncml.org

Die folgende Grafik soll den Synchronisationsablauf zwischen einem Server und einem Client schematisch darstellen. Man erkennt deutlich, dass sowohl Server als auch Client über eine SyncML-Schnittstelle (Interface) verfügen, die den reibungslosen Datenaustausch ermöglichen.

Die SyncML-konvertierten Daten werden über ein beliebiges Protokoll vom Server zum Client und umgekehrt übertragen – dies kann sowohl HTTP (TCP/IP), als auch WSP (WAP) oder OBEX (Bluetooth, Infrarot) sein.

Der Sync Client Agent leitet einen Synchronisationsvorgang auf Basis des SyncML-Protokolls ein und verwaltet die Übertragungsvorgänge auf Client-Seite. Auf der Gegenseite des Client wartet der Sync Server Agent auf eine Synchronisationsanforderung.

Die Sync Engine führt dabei eine Analyse durch und prüft, welche Daten verändert werden müssen. Dazu öffnet und modifiziert sie Datenbanken, reagiert auf Veränderungen im Terminkalender oder aktualisiert die Ordner des E-Mail-Programms.

Nutzen

Auf der Client-Seite, das bedeutet im Grunde die Seite des Endbenutzers – und somit den mobilen Teil – beherrscht SyncML die Datentypen, wie sie bei E-Mail, Kalendereinträgen, Adressverzeichnissen und Dokumenten vorkommen. Gleichzeitig ist SyncML so flexibel, dass sich neue Formate ohne größeren Aufwand einbinden lassen. Im Einzelnen leistet das Protokoll folgendes:

In der Praxis

SyncML (OMA DS) hat sich mittlerweile als Standard für den Abgleich von Termin-, Kontakt- und anderen PIM-Daten durchgesetzt, in der Praxis gibt es aber noch Herausforderungen:

Es gibt mittlerweile Lösungen, die intelligenten Datenabgleich mit Duplikats- und Konfliktlösung beherrschen und dem Anwender die meiste Arbeit abnehmen.

Einzelnachweise

  1. a b Enabler Release Definition for SyncML Common Specifications. (PDF; 91 KB) Open Mobile Alliance, 24. Juli 2009, abgerufen am 11. Februar 2018.
  2. SyncML WSP Binding, Version 1.1. (PDF; 97 KB) Open Mobile Alliance, 15. Februar 2002, abgerufen am 11. Februar 2018.
  3. a b OMA DS Standards Change History. (PDF; 111 KB) Open Mobile Alliance, 31. März 2008, abgerufen am 11. Februar 2018.