Endlich synchroner!
Im Beitrag "Endlich Synchron" habe ich vor knappen eineinhalb Jahren berichtet, wie ich meine Kontakte und Termine über Outlook, Smartphone, Linux und webbasiertem Frontend hinweg synchron halte. Die dort beschriebene Lösung hat seit dem auch gute Dienste geleistet, trotzdem wird es Zeit für eine kritische Bestandsaufnahme und ein Technik-Update: Denn mit Akonadi bietet KDE eine völlig neue Infrastruktur zum Datenabgleich an.
Die alte Lösung setzte auf eGroupWare als Herzstück: Deren SyncML- und XMLRPC-Schnittstellen ermöglichten einen plattformübergreifenden Datenaustausch. Die eGroupWare bleibt auch weiterhin im Kern des Geschehens (wenn auch mittlerweile in aktualisierter Version 1.6). Und auch der Windows-seitige Teil baut weiterhin auf ActiveSync (Outlook zu Pocket-PC) bzw. dem Funambol-Plugin (Pocket-PC zu eGroupWare) auf.
Aber schon in der Einleitung habe ich erwähnt, dass nun Akonadi Teil der Gesamtlösung geworden ist, und das aus gutem Grund: Die bisher von mir eingesetzte XMLRPC-Schnittstelle von Kontact ist leider recht buggy, gerade in dem stark überarbeiteten Kontact 1.4.1, welches in der aktuellen KDE 4.2.1 zum Einsatz kommt. So "vergisst" die Synchronisierung des öfteren die Authentifizierungsdaten, so dass kein Abgleich mehr stattfindet und noch noch ein Löschen bzw. Neu anlegen der Schnittstellen-Daten hilft.
Allerdings bietet die aktuelle KDE adäquate Abhilfe: Mit Akonadi wurde ein neuer Speicherdienst eingeführt, der transparent als Abstraktionsschicht im Hintergrund arbeitet. Will heißen: KDE-Anwendungen müssen nicht länger ihr eigenes Süppchen kochen, wenn es um Datenabgleich mit diversen Fremd-Plattformen geht, sondern nur noch Unterstützung für die Akonadi-Schnittstelle mitbringen. Akonadi selbst wiederum bringt Konnektoren zu zahlreichen Groupware-, Kalender- und Adressanwendungen mit. Hierbei werden fast alle offenen Standards und sogar einige proprietäre Protokolle unterstützt.
Kontact-Versionen ab 1.4 unterstützen Akonadi, so dass der Datenabgleich nun zwischen Akonadi und der eGroupWare stattfindet. Zwar ist die alte XMLRPC Schnittstelle aus Gründen der Abwärtskompatibliltät auch in Akonadi noch vorhanden, aber aus den bereits zuvor erwähnten Gründen nicht länger erste Wahl. Vielmehr stechen die neu angebotenen Protokolle iCal (Kalender) und GroupDAV (Adressbuch) ins Auge, da beide Protokolle von der eGroupWare ebenfalls unterstützt werden.
Die Anbindung seitens der eGroupWare war vergleichsweise einfach: Unter den eGroupWare-Downloads findet sich auch die iCalSrv-Erweiterung, welche die Unterstütztung für iCal-Remoting nachliefert. Die Extension ist schnell entpackt und über das Setup-Interface der eGroupWare eingebunden. Nun muss man in der Benutzerverwaltung den betroffenen Benutzern noch Rechte auf die Anwendungen iCalSrv und GroupDAV geben.
Anschließend gibt man dem Apache-Host der eGroupWare noch folgende Einstellungen mit:
<Location /icalsrv/icalsrv.php>
Script PUT /pfad/zur/egroupware/icalsrv/icalsrv.php
AddHandler ical/ics .ics
Action ical/ics /pfad/zur/egroupware/icalsrv/icalsrv.php
AcceptPathInfo On
Order allow,deny
Allow from all
</Location>
Damit wäre die serverseitige Einrichtung eigentlich abgeschlossen, praktisch hat es bei mir so leider nicht funktioniert, da die vom Script gesendeten Authentifizierungs-Header in der Reihenfolge nicht ganz standardkonform sind und Akonadi darüber stolpert. Dies kann man allerdings leicht umgehen: Ich habe einfach eine htaccess-Authentifizierung für das icalsrv Verzeichnis eingerichtet mit Benutzernamen und Kennwörtern wie sie auch in der eGroupWare hinterlegt sind. Danach kümmert sich der Apache um eine standardkonforme Authentifizierung, mit der auch Akonadi zurecht kommt. Da die eGroupWare im Hintergrund sowieso mit einer eigenen implementierung des HTTP-Auth Standards arbeitet, stellt die vorgelagerte Apache-Lösung kein Problem dar.
Zu guter Letzt bleibt noch die Einrichtung von Akonadi auf dem lokalen PC: In den Systemeinstellungen findet sich im Reiter "Erweitert" die Akonadi-Einrichtung. Hier legt man zuerst ein "traditionelles KDE-Adressbuch" an und wählt im folgenden Dialog den GroupDAV-Konnektor dafür aus. Nun will Akonadi eine URL, einen Benutzernamen und ein Kennwort wissen. Die URL lautet http://adresse.der.egroupware/groupdav.php/ , Benutzername und Kennwort sollten bekannt sein. Ein Klick auf "Update Folder List" bietet das vorhandene Adressbuch der eGroupWare an, was wir bestätigen.
Ähnlich einfach gestaltet sich die Einrichtung des Kalenders: In der Akonadi-Einrichtung fügt man einen "traditionellen KDE Kalender" hinzu und entscheidet sich im folgenden Dialog für eine "Kalender-Datei auf Fremdrechner". Nun fragt ein Dialog nach einer Download- und einer Upload-URL. Beide lauten http://adresse.der.egroupware/icalsrv/icalsrv.php/ . Aktualisierungs- und Sicherungsintervalle kann man nach Gusto festlegen. Fertig!
Liest sich diese Beschreibung auch etwas länglich, stellt man beim Nachvollziehen der einzelnen Schritte schnell fest, dass diese unkompliziert, sowie schnell und leicht nachvollziehbar sind. Lohn der Mühe ist ein sehr stabiler Datenabgleich von Adressbuch und Kalender zwischen KDE und eGroupWare, der nicht nur von Kontact genutzt werden kann, sondern allen KDE-Anwendungen, die Akonadi unterstützten, zur Verfügung steht.
6. April 2009 um 18:38
Warum setzt Du nicht GroupDAV auch für den Kalendar ein? Das funktioniert deutlich stabiler als iCalServer, der ja in der aktullen 1.6 auch depricated ist.
23. November 2009 um 09:24
TIPPFEHLER: Bei der iCal Server-Adresse darf am Ende kein Slash stehen! Richtig wäre: http://adresse.der.egroupware/icalsrv/icalsrv.php