Erfahrungen mit Android-PIM-Synchronisierung Teil 1

Mein Nexus One sollte ursprünglich schon längst den alten Palm Tungsten E ersetzt haben. Leider ist der Umstieg doch langwieriger als angenommen. Vorallem die Synchronisierung der PIM-Daten (Adreßbuch und Kalender) gestaltete sich schwierig.

Meine Hauptanforderung an eine Synchronisierunglösung ist, daß die Daten meinen Einflußbereich nicht verlassen sollen. Man braucht Google oder einem Exchange-Hosting-Anbieter nicht zwangsläufig zu mißtrauen, aber alleine der Gedanke, seinen persönlichen Kalender und Kontaktdaten unnötigerweise bei einem Drittanbieter zu speichern wo tausende andere auch liegen, erzeugt eine gewisses Unwohlsein.

Da ab Version 2.2 bei Android die Exchange-Unterstützung wesentlich verbessert wurde, war ein erster Ansatz, den ActiveSync-Weg zu gehen. Seit einiger Zeit bietet das zum großen Teil quelloffene Zarafa eine Möglichkeit, auf einem Linux-Server einen Dienst laufen zu lassen, der sich nach außen wie ein Exchange-Server gibt. Zarafa spricht von Haus aus MAPI, mit dem Zusatzprogramm z-push kann es auch ActiveSync sprechen. Interessanterweise ist z-push nicht auf Zarafa festgelegt, sondern bietet eine Programmierschnittstelle an. Es ist zu erwarten, daß auf diesem Weg auch andere Groupwarelösungen demnächst mit ActiveSync-Unterstützung aufwarten können.

Erste Tests verliefen vielversprechend. Änderungen auf dem Mobil-Gerät wurden zuverlässig zeitnah auf den Server gepusht und umgekehrt. Was im Hintergrund genau geschah blieb allerdings im Dunkeln. Dazu lieferte der Android-Standard-Exchange-Client zu wenig Informationen.

Getrübt wurde das Ganze allerdings als ich zufällig feststellte, daß bei einem Kontakt-Eintrag plötzlich einen Unterschied von einem Tag zwischen Android und Exchange auftrat. Diese Differenz vergrößerte sich weiter, wenn man durch eine Änderung auf dem mobilen Gerät einen Abgleich für den Datensatz erzwang und er wieder zurücksynchronisiert wurde. Genau diesen Fall – die gegenseitige Kaputt-Synchronisierung von Daten aufgrund der unterschiedlicher Interpretation von Zeichensätzen oder Zeitzonen, wollte ich vermeiden! Das Problem ist übrigens bei Google bekannt, es existiert aber noch kein Fix dafür. Laut einer Analyse in dem z-push-Forum liegt das an einer fehlerhaften Implementierung des Android-Exchange-Clients.

Als dann auch noch ein neuer Kalender-Eintrag auf dem Mobil-Gerät ohne ersichtlichen Grund nicht auf den Server synchronisiert wurde, bin ich von dem ActiveSync-Ansatz wieder abgekommen. Ohnehin war dieser Ansatz nicht ganz zufriedenstellend, da Zarafa arg auf Outlook/MAPI als Client zugeschnitten ist und das Adressbuch überhaupt keine  offene Schnittstelle anbietet (die Kalender-Komponente bietet immerhin noch CalDAV an). So ist man beim Adreßbuch auf die Weboberfläche angewiesen, die nichtmal eine Möglichkeit bietet, Daten in einem Schwung zu importieren/exportieren.

In der Fokussierung auf MAPI-Clients ist wohl auch der Grund zu finden für die "seltsame" Tabellenstruktur in der Zarafa zugrundeliegenden MySQL-Datenbank. Ohne tiefere MAPI-Kenntnisse ist es nicht möglich ein Skript zu schreiben, daß direkt auf den Tabellen operiert um auf diesem Weg beispielsweise Kontakte exportieren zu können. Das alleine wäre im Grunde schon ein KO-Kriterium…

One thought on “Erfahrungen mit Android-PIM-Synchronisierung Teil 1”

  1. Nachdem der ActiveSync-Ansatz nicht von Erfolg gekrönt war, wollte ich SyncML eine Chance geben. SyncML ist ein standardisiertes offenes Protokoll, um unterschiedliche Daten mit mobilen Endgeräten zu synchronisieren. Setzt man SyncML ein, stellt sich als

Comments are closed.