Die Deutsche Regierung erregte in der Vergangenheit schon oft im positiven Sinne Aufsehen mit ihren Aktivitäten im Bereich freier Software. So förderte das Bundeswirtschaftsministerium (BMWi) beispielsweise Gnupg[1]. Dazu kommen viele begleitende Aktionen wie der Bericht des Bayerischen Rechnungshofes, der KBST-Brief und der viel gepriesene Migrationsleitfaden des Bundesinnenministeriums (BMI).
Abbildung 1: Der Kolab-Server verwaltet für den Anwender umfangreiche Daten von E-Mail über Kontakte bis zu Terminen und Aufgaben.
Groupware für alle
Neben der gezielten Förderung initiierte das Bundesamt für Sicherheit in der Informationstechnik (BSI) des BMI im Jahre 2002 das Projekt Kroupware. Die Ausschreibung im Auftrag und für den Eigenbedarf des BSI zielte auf eine Groupware-Lösung, die starke Kryptographie unterstützt und in einer heterogenen Umgebung mit allen Betriebssystemen gut zusammenarbeitet.
Mit der Realisierung des Projekts beauftragte die Behörde ein Konsortium aus den Unternehmen Erfrakon[2], Klarälvdalens Datakonsult[3] und Intevation[4]. Intern firmierten Konzept und Software unter dem Namen Kolab 1.
Nach dem Ende des Projekts entwickelte das ursprüngliche Trio weiter und gab gegen Ende März 2005 den Kolab-2-Server als Betaversion 4 frei. Gegenwärtig betreut das Kolab-Konsortium[5] die Entwicklung der Software. So entstand in bester Tradition freier Software ein neues Produkt, das international konkurrenzfähig und in mancher Hinsicht sogar konkurrenzlos ist. Ein Fall für die Brave GNU World.
Wie schon in der ersten Version handelt es sich bei Kolab 2[6] im Wesentlichen um eine Groupware-Lösung. Kolab baut auf einem speziellen Server-Client-Modell von Martin Konold auf. Gegenüber anderen Groupware-Konzepten stellt es jedoch einige Prinzipien auf den Kopf. So verfahren viele andere Lösungen nach dem Prinzip: Der Server ist König, die Anwender ordnen sich ihm unter. Beim Kolab-Server läuft einiges anders: Das Programm erklärt den Nutzer zum König und gibt ihm die Fäden in die Hand. Die Software erleichtert als zentraler Mittler lediglich die Koordination.
Kolab 1 kombinierte die so genannten partiellen Frei-Belegt-Listen aus mehreren Kalendern zu einer Übersicht. Überschneidungen zeigte es an, blockierte Einträge aber nicht. Kolab 2 verbessert dieses Konzept durch erweiterte Frei-Belegt-Listen. Diese enthalten für Mitglieder derselben Kalendergruppe zusätzlich die Titelzeilen von Einträgen, um die Orientierung zu erleichtern. Das Design erlaubt es sogar, diese Listen aus mehreren Kolab-Servern zusammenzustellen, obwohl dies im aktuellen Server noch nicht implementiert ist.
Sanfte Manipulation
Dieser Ansatz setzt ganz auf den Anwender, schützt vor Überschneidungen und bewahrt zugleich die Privatsphäre - ein wichtiges Designkriterium von Kolab. Weitere wichtige Kriterien sind extreme Skalierbarkeit, die vollständige Einbindung von Standorten mit schwacher Bandbreite sowie die Möglichkeit, offline produktiv zu arbeiten und Termine festlegen zu können.
Beim Kolab-Server kommen insbesondere die folgenden zentralen Komponenten zum Einsatz: OpenLDAP für die Authentifizierung, Apache, PHP und Horde[7] für das Webinterface, Cyrus IMAP Server[8] und SASL[9] zur Speicherung und Übertragung von E-Mail-, Kontakt- und Kalenderdaten und schließlich Postfix für den E-Mail-Transport mit Spam- und Virenfilterung über Amavisd-new[10], der sowohl Clamav als auch Spamassassin einbindet.
Die Verknüpfung übernehmen, wo nötig, Perl und PHP. Wenn Änderungen erforderlich waren oder sich Verbesserungen ergaben, wurden diese im Rahmen der Entwicklung des jeweiligen Projekts beigesteuert, um sie anderen Nutzern zur Verfügung zu stellen.
Herzstück des Kolab-Servers ist in vieler Hinsicht der Cyrus-IMAP-Daemon, dessen Disconnected-Modus die Grundlage der Offline-Funktion von Kolab ist und der zudem die Skalierbarkeit sicherstellt. Neben dieser gehört die Interoperabilität zu den Kernvorteilen des Kolab-Servers. So kann ein Unternehmen Mischkonfigurationen fahren. Microsoft Outlook arbeitet dank des Kolab-2-XML-Speicherformats über ein proprietäres Plugin direkt auf demselben Datensatz.