Es ist schon praktisch, ein eigenes Desktop-Blogging-Programm wie ecto zur Verfügung zu haben, um sein Webjournal mit Inhalt zu füllen. Man kann verschiedene Entwürfe speichern, hat mit einem schnellen Klick eine Korrektur an einem älteren Artikel durchgeführt und kann all seine gewohnten Tastenkürzel zum Schreiben verwenden. Gar nicht sprechen will ich von der Einfachheit, mit einem solchen Programm ein Bild oder andere Dinge in einen Artikel einzubinden und sie ohne Zutun mit auf den Server laden zu lassen.

Leider steht dem ganzen Komfort möglicherweise eines im Wege: die Weblog-Software auf dem Server. Wenn sie nicht darauf ausgelegt ist, Daten von externen Programmen zu empfangen, muß man es ihr erst einmal beibringen. Das ist aus mehreren Gründen nichttrivial.

Zum einen muß man sich vor allem anderen durch mehrere Spezifikationen wühlen, die mehr oder weniger gut zu verdauen sind. Da wäre erst einmal — natürlich — das Atom-API, das den Kern der ganzen Angelegenheit darstellt. Über das Atom-API kommunizieren Client und Server. Sieht man sich die Protokoll-Spezifikation einmal an, wird man womöglich völlig von ihr überwältigt. Nicht, daß sie besonders lang wäre, aber an so gut wie jeder Stelle werden eigens für Atom erfundene und häufig nicht gerade intuitiv begreifbare Begriffe verwendet, deren Definitionen man sich aus diversen anderen Dokumenten zusammenklamüsern muß. Das macht nicht gerade Freude, wenn das eigentliche Ziel, das man vor Augen hat, lediglich ist, sich das Schreiben etwas leichter zu machen.

Glücklicherweise trügt der erste Anschein. Wendet man sich nämlich von der Spezifikation ab und schaut sich im Six Apart Atom Resource Center um, erscheint plötzlich alles ganz einfach — und die freudige Nachricht ist, daß dieser neue Eindruck im großen und ganzen auch tatsächlich stimmt. Das Atom-API selbst ist schnell implementiert, und so hat man auch nach kurzer Zeit einen Server implementiert, der es versteht. Nicht einmal besondere Bibliotheken sind erforderlich. Die einfachst denkbaren XML-Parser wie z.B. xmls tun es. Im Gegensatz zu ähnlichen Protokollen basiert Atom nämlich nicht auf komplexeren Techniken wie XML-RPC.

Leider steckt der Teufel im Detail. Da wäre einmal das Problem mit dem ungültigen XML. Ein einzelner Blogeintrag mit einem ungeschlossenen Tag kann die ganze Aktion zum Stehen bringen. Ein Glück, daß es Werkzeuge wie nXML gibt, mit denen sich Fehler in XML-Dokumenten schnell finden lassen.

Und dann die Geschichte mit der Anmeldung: Man möchte ja meinen, daß man sich mit einem Apache mit Digest-Anmeldung oder einer SSL-Verbindung keine großen Gedanken über die Anmeldungsprozedur machen muß. Dem ist leider nicht so. Aus guten Gründen haben sich die Atom-Entwickler dazu entschieden, ein eigenes Anmeldeverfahren namens WSSE zu verwenden, welches die wenigsten Webserver beherrschen dürften. Da es als kryptographisches Verfahren nicht ohne einige einfache Kodierungs- und Wertstreuungsverfahren auskommt, muß man für seine Implementierung dann möglicherweise doch die ein oder andere kleine Bibliothek einbinden.

Alles in allem bleibt Atom aber doch ein verhältnismäßig einfach zu implementierendes Prokotoll. Und wenn man sowieso schon einen Atom-Feed für Newsreader-Software anbietet, kann man den dafür geschriebenen Code denn auch für die Kommunikation mit anderer Software wiederverwenden.