Willkommen in der Architekturdokumentation der WaldorfConnect Plattform!
In der Einleitung wird dem Leser zuerst ein guter Überblick über das System (und was damit erreicht werden soll) verschafft.
Dann werden zunächst die wesentlichen Architekturtreiber darstellt. Das sind Ziele oder Faktoren, die die Gestaltung und Entscheidungen bei der Softwarearchitektur maßgeblich beeinflussen. Der Architekturentwurf im darauffolgenden Abschnitt soll diesen Ansprüchen möglichst gerecht werden.
Einige Architekturkonzepte zeigen anschließend, wie bestimmte angestrebte Qualitätsmerkmale erzielt werden und erhöhen das Vertrauen in das System.
Gegen Ende sind schließlich die großen Design-Entscheidungen inklusive der verworfenen Alternativen dokumentiert, damit nachvollzogen werden kann, warum genau diese Komponenten in der vorliegenden Konstellation eingesetzt werden.
wie auf der Seite Organisation beschrieben
Abgebildet ist ein Komponentendiagramm, das die Struktur der WaldorfConnect Plattform visualisiert.
Ganz oben befindet sich der LDAP Server OpenLDAP
, auf dem alle Benutzer und Benutzergruppen mitsamt deren Rechte auf Verzeichnisse gespeichert sind.
Diese Informationen werden vom Portal
links unten verwaltet. Der normale Benutzer, d.h. Mitglied oder Admin einer SV, kann sich dort einloggen und die Endpunkte des Simple Account Manager
aufrufen. Die wesentlichen Funktionalitäten dort sind Registrierung, Login, eigene Profilverwaltung und für Admins einer SV auch die Mitgliederverwaltung der eigenen SV. Die komplette Verwaltung des LDAP Server
können die Globalen Admins (ein Teil des WaldorfConnect Teams) im LDAP Account Manager
vornehmen.
Bleibt noch der wichtigste Teil der Plattform: der Cloud-Speicher und die Kommunikationssoftware. Cloud-Speicherplatz (Datei-Ablage) steht jeder SV-Einheit in der NextCloud
Anwendung zur Verfügung. Kommunikation ist in der Open-Source Microsoft-Teams Alternative Zulip
realisiert. Diese hat intern Jitsi
für Audio- & Video-Calls integriert.
Die folgende Sitemap (dt.: Seitenübersicht) zeigt, wie das Portal
, NextCloud
und Zulip
über die WaldorfConnect Homepage
(via Links) erreichbar sind.
Benutzer des Systems werden diese 3 Anwendungen i.d.R. bald als Lesezeichen im Browser speichern (oder durch das Autocomplete des Browsers schneller erreichen), aber für den Anfang und die generelle Erreichbarkeit der Komponenten sind Links auf der Hauptseite sehr wertvoll.
Auf der Homepage sollen dann auch weitere Informationen zur Benutzung und Nachvollziehbarkeit des Systems ausgeschildert sein.
Minimale Kosten sollen dadurch garantiert werden, dass ausschließlich ein deutscher Server bei einem vertrauenswürdigen Anbieter gemietet wird, um die Plattform bereitzustellen. Dieser soll möglichst günstig sein (einerseits durch sparsame Ressourcenplanung unsererseits, andererseits durch gutes Abschneiden im Vergleich mit anderen Anbietern).
Außer diesen Kosten sollen keine weiteren entstehen: die verwendete Software muss kostenlos und frei verfügbar sein und die Entwickler und Administratoren arbeiten ehrenamtlich.
Dienstleistungen, wie die Erstellung von Grafiken sollen ebenfalls ehrenamtlich von qualifizierten Schülern kommen.
Mehrere Faktoren sollen den Datenschutz (inklusive DSGVO-Konformität) und die Sicherheit von WaldorfConnect sicherstellen.
Infrastruktur-Ebene
Grundlage ist die Wahl eines sicheren deutschen Hosters (STRATO), der jährlich nach der DIN ISO 27001 TÜV-zertifiziert höchste Sicherheitsstandards vorweist und wo das System und dessen Daten in Deutschland sind und bleiben. Er bietet DSGVO-Konformität.
Die Datenübertragung zu und von diesem Server, auf dem die WaldorfConnect Plattform laufen wird, ist vollständig verschlüsselt, durch SSL-Zertifikate, die STRATO für unsere Domain zur Verfügung stellt.
Anwendungs-Ebene
Auf Anwendungsverwaltung wird Datenschutz und Sicherheit durch eine zuverlässige Benutzer- und Zugriffsverwaltung hergestellt. Vorgaben hierfür kommen von unserem LDAP Server
- die Umsetzung erfolgt durch die Anwendungen selbst.
Die Anwendungen sind sorgfältig ausgewählte Open-Source Software, die ab einer gewissen (hier vorhandenen) Größe bekanntlich sehr sicher sind. Es sollen keine externen Softwarelieferanten oder -anbieter Software genutzt werden.
Benutzer Ebene
Die Verfügbarkeit der WaldorfConnect Plattform kommt durch die Verfügbarkeit des Servers kombiniert mit der Verfügbarkeit der Anwendungen zustande.
Für regelmäßige (wohl tägliche) Backups unseres bei STRATO gemieteten “Linux V-Servers” können wir den Backupservice von STRATO nutzen.
Falls uns hier der zur Verfügung gestellte Backup-Speicherplatz zu Rande gehen sollte, haben wir die Möglichkeit selbst mithilfe eines Cronjobs regelmäßig Backups vorzunehmen und auf den gemieteten 1.5 TB Speicherplatz abzulegen.
Microsoft Office bietet die Funktionalitäten an, die die Waldorf-SVen benötigen und noch viel mehr. Die Sturktur mehrerer SVen lässt sich dort ideal abbilden (als “Team”/Gruppe).
Das User Interface und die User Experience entsprechen dem State of the art und sind hervorragend in die Microsoft Teams Anwendung integriert.
Die Benutzerverwaltung bietet alle benötigten Funktionalitäten und viel Anpassbarkeit.
Insgesamt wäre Teams funktional eine perfekte Lösung - aber weder datenschutzrechtlich noch finanziell umsetzbar (Microsoft Lizenzen als Non-Profit Organisation zu beantragen würde die offizielle Gründung eines Vereins erfordern und der Erfolg des Antrags wäre durch die Nähe zur Schule dann immer noch höchst unsicher).
Deshalb haben wir beschlossen uns nach Open-Source Alternativen umzusehen, die wir selbst, kostengünstig, betreiben können.
Die folgende Architektur stand als Alternative zur Diskussion.
Die Idee hier war es NextCloud und NextCloud Talk zu forken, in jeweils eigene Repositories, um dann die nötige Anpassung an der Struktur zu machen (Teams mit untergeordneten Gruppenchats und einer kleinen Administrationsoberfläche für SV-Admins).
+ Vorteile
- Nachteile
Da diese Lösung umzusetzen unverhältnismäßig großen Aufwand erfordert hätte und enormes Risiko mit sich gebracht hätte, haben wir sie verworfen.
Als Cloud-Speicher stand von Anfang von NextCloud fest, da es die wohl größte und beliebteste Open-Source Cloud mit den meisten Funktionen ist und das WaldorfConnect Team mit dieser bereits positive Erfahrungen gemacht hat.
Als Chat App bot sich dementsprechend die gut integrierte Erweiterung NextCloud Talk
an. Diese verhält sich jedoch wie ein ganz normaler Messenger (ähnlich wie Signal, Telegram, WhatsApp). Das bedeutet, dass es nicht möglich ist dort, die hierarchische Struktur einer SV mit mehreren untergeordneten Arbeitskreisen abzubilden. Und dass diese Kanäle ständig störend hoch und runter rutschen würden, je nachdem wo neue Nachrichten da sind.
Der Messaging-Dienst Mattermost
schied unter anderem aus diesem Grund als Kandidat aus, aber auch weil viele Features blockiert und nur in der kostenpflichtigen und teuren Enterprise-Version verfügbar sind.
Aus denselben zwei Gründen war auch RocketChat
nicht geeignet (das Synchronisieren einer Benutzergruppe mit einem Gruppenchat warw beispielsweise nur in Premium enthalten, welches 7€ pro Person pro Monat kostet). Außerdem hat RocketChat
Probleme mit OAuth bei den Handy-Apps (Android und iOS).
Zulip
war schließlich die einzige Software, die unseren Anforderungen an Strukturierung der Chats entspricht, 100% kostenlos und open-source ist (keine blockierten Features), wo OAuth funktioniert und ein eigener LDAP Server integrierbar ist…
Aus Datenschutzgründen kamen prinzipiell alle deutschen Hoster infrage. Mit STRATO hatte ein Teil des WaldorfConnect Teams bereits positive Erfahrungen gemacht. Im Vergleich mit anderen deutschen Hostern (Hetzner, Mittwald,…) schnitt STRATO auch preislich gut ab - daher fiel die Wahl auf diesen.
Letztendlich wurde ein Linux V-Server mit 16GB RAM und 1.500GB SSD für 18€ im Monat ausgewählt, um die gesamte Plattform bereitzustellen.
Um LDAP Server zu verwalten, gibt es verschiedene Clients. Zuerst sollte phpLDAPadmin installiert werden, weil es vom selben Team wie phpMyAdmin (die wohl meist-verwendedste Webanwendung zur Administration von MySQL-Datenbanken) entwickelt wurde. Allerdings stellt sich heraus, dass das Projekt schon seit einigen Jaharen nicht mehr weiterentwickelt wurde - die Entwickler haben es offenbar aufgegeben.
Deshalb wird hier nun der LDAP Account Manager verwendet.