Heute ist »Data Privacy Day«

und damit eine sehr gute Gelegenheit auf das Projekt »OwnCloud«, mit dem ich mich nun auch schon etwas länger beschäftige aufmerksam zu machen.

Ich vertrete schon seit Jahren die Auffassung, das Cloud-Computing nur so lange gut und akzeptabel sei, solange die Wolke mir – dem User – gehört. Exakt das, was § 1 des User Data Manifesto postuliert.

Entsprechend bin ich kein allzugrosser Freund von DropBox, Box.com, SkyDrive, Google Docs, iCloud oder wie sie alle heissen mögen. Erst recht nicht von Mega!  Das K.O.-Kriterium war und ist für mich in allen Fällen der US Patriot Act, der es US-Sicherheitsbehörden erlaubt meine persönlichen Daten einzusehen.

In der Vergangenheit hiess die Lösung daher oft genug: die Daten lagern auf dem eigenen Unternehmensserver, der im Büro des Kunden steht (schlicht: weil dort der überwiegende Teil der Zugriffe stattfindet). Für den selteneren Fall das die Daten unterwegs verfügbar sein sollten, wurde ein VPN-Zugang zum Server gelegt. Dank Mac OS X war das kein Hexenwerk, sowohl server- wie auch clientseitig war alles mit ein paar Klicks zuverlässig eingerichtet.

Die Anforderungen haben sich geändert

Der Zugriff unterwegs ist nicht mehr die Ausnahme von der Regel, sondern wird spätestens mit iPhone, iPad und anderen mobilen Devices zum Normalfall. Und nun? Den OS X Server ins Rechenzentrum schaffen? Wäre zwar eine Möglichkeit, aber keine die meiner Meinung nach ernsthaft zu verfolgen wäre. Ein Mac mini muss mit Extraufwand Rackmount-tauglich gemacht werden, ein MacPro ist unter HE- und Stromkostengesichtspunkten eher eine Katastrophe und die XServes sind durch Apple abgekündigt.

Umgekehrt ist Speicherplatz auf Linuxkisten im Rechenzentrum als Root-, Managed- oder Virtualserver für wirklich kleines Geld zu haben. An dieser Stelle kommt OwnCloud als Lösung ins Spiel. Vom Funktionsumfang her ist es eine Mischung aus iCloud und DropBox. Einerseits können Kontakte und Termine ähnlich wie iCloud per CardDAV/CalDAV zwischen verschiedenen Devices verwaltet werden. Andererseits bietet ein lokaler Sync-Client eine vergleichbaren Komfort in Sachen Datenaustausch mit der Cloud wie man es von DropBox und Konsortien gewohnt ist.

Die Software selbst ist OpenSource, als Community Variante kostenlos erhältlich und bedarf serverseitig lediglich der üblichen Verdächtigen PHP/MySQL. Wer sich selbst nicht an die Installation traut, findet zwischenzeitlich auch deutsche Dienstleister, die das nach deutschem Recht auf deutschen Servern übernehmen. Und CIA, FBI und NSA bleiben draussen.

Warum das Rad neuerfinden?

Wer eine Webpräsenz aufbauen will, steht immer vor der Entscheidung „Make or Buy?“. Einerseits gibt es für alles und jedes – Foren, Gästebücher, Content-Management-Systeme, eCommerce-Shops, … fix-fertige und oft genug sogar kostenlose Dinge aus der OpenSource Gemeinde. Andererseits sind doch immer noch genügend „Extrawünsche“ vorhanden, die doch der individuellen Programmierung bedürfen. Und leider ist bei einigen OS-Projekten die Codequalität und/oder die Dokumentation so schlecht, das man’s genauso gut (oder besser) gleich selbst neuprogrammiert anstatt sich in den Code des Kollegen einzufummeln.

Bei red@ktiv sind wir zwischenzeitlich dazu übergegangen, an uns herangetragene Projekte gegen folgende OpenSource-Lösungen zu prüfen:

  • Typo3: ein sehr mächtiges Content-Management-System, das mit TypoScript fast eine eigene Programmiersprache mitbringt. Ist die Einrichtung einer Präsenz mit der Festlegung von Templates, Funktionen und Gestaltung erst einmal erfolgt, wird man jedoch mit einem leistungsfähigen Tool belohnt, mit dem man dennoch Kunden nach kurzer Einarbeitung guten Gewissens bei der Pflege ihrer Seiten weitgehend alleine lassen kann. Insbesondere die Möglichkeit mehrere Sprachvarianten einer Seite zu haben ist ein schlagendes Argument pro Typo3. Vorgehende Versuche ähnliches mit Mambo zu realisieren endeten in einem ziemlichen Desaster, so daß wir davon komplett abgekommen sind. Auch wenn die Einrichtung und Verwaltung unter Mambo sehr viel einfacher und oft genug auch ausreichend wäre, greifen wir auch für kleinere Projekte bevorzugt auf Typo3 zurück.
  • WordPress: Blog-Systeme sind nach wie vor en vogue und für kleine, private Webseiten ein gutes Mittel der Wahl um aktuelle Begebenheiten zu erfassen und zu publizieren. Darüberhinaus können Blogs eine wichtige Begleitmusik in Sachen Suchmaschinenoptimierung spielen. Aktualität ein wichtiges Kriterium für das Ranking bei Suchmaschinen. Und einfacher als mit einem Blog lassen sich aktuelle Dinge kaum erfassen. Über ein gut ausgebautes System von PlugIns lassen sich leicht zusätzliche Funktionen in WordPress implementieren.
  • xt:Commerce: auch wenn das Vertriebskonzept mit kostenpflichtiger Zwangsmitgliedschaft im Supportforum der Hauptentwickler mit dem Opensoure-Gedanken in krassem Widerspruch steht und etliches am HTML- und CSS-Code von xtCommerce ziemlich krank ist – es ist das Mittel der Wahl, wenn es um einen guten Webshop geht! Sowohl funktional als auch gestalterisch (wenn man denn die elementarsten Fehler mal gerade gerückt hat) bietet xt-Commerce eine exzellente Basis für eCommerce Anwendungen. Wie auch bei Typo3 ist die Möglichkeit mehrere Sprachvarianten zu verwalten sehr ausgeprägt und für ein Online-Business geradezu elementar. Über das smarty-System das für die Generierung der Templates verantwortlich ist, kann man zu dem die Gestaltung der Seiten sehr gut anpassen und in valides XHTML überführen, so daß ein gute Grundlage für die Gestaltung mit CSS besteht. Die in der Szene gehandelten oder bereitgestellten total veralteten Tabellenlayout-Konstrukte, die mit i
  • phpiCalender/phpMyCal: wenn es um die Erfassung und Verwaltung von Terminen geht kann es nur eine Wahl gegen – ein System das den iCal-Standard unterstützt. phpiCalendar tut dies vorbildlich. In Zusammenarbeit mit phpMyCal entsteht noch ein Webfrontend über das Termine zu erfassen und zu pflegen sind. Leider ist phpMyCal derzeit vom Netz verschwunden, so daß wir hier eine von Relate Me >bereitgestellte Version, die wir auf Standalone-Betrieb rückentwickelt haben, nach den Regeln der GPL zum Download einstellen.

Modifizierte Version von phpiCalendar mit phpMyCal-Extension

Wie man an den aufgeführten Beispielen unschwer erkennen kann: es bleibt in allen Fällen genügend Arbeit übrig um die „fertigen“ System passend für die Kundenanforderunge zu modifizieren. Durch die Offenheit des Quelltextes ist es uns jedoch leicht möglich zusätzliche Funktionaliäten oder kundenspezifische Änderungen zu erstellen. Der Fall, das eine OpenSource-Software out-of-the-box die Anforderungen des Kunden erfüllt ist höchst selten. Mindestens die Identifikation und Installation von PlugIns gehört zum Standardrepertoire. Im nächsten Schritt steht dann die Entwicklung eigner Erweiterungen. Erst wenn die Anforderungen soweit vom Grundsystem abweichen, das schon die Umprogrammierung und -konfigurierung des Grundsystems einer kompletten Neuentwicklung gleich kommt, greift noch „Plan B“ und wir entwickeln Dinge von Grund auf neu und kundenspezifisch.