Dokumentation

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.

Inhalt

Einleitung

Motivation und Kerntreiber für die Entwicklung des Systems

Ziele, die mit dem System erreicht werden sollen

Besondere Herausforderugnen

Kernfunktionalitäten

wie auf der Seite Organisation beschrieben

Randbedingungen

Stakeholder

Benutzerrollen


Architekturtreiber (Funktion und Qualität)

Wesentliche funktionale Anforderungen

Qualitätsattribute


Architektur

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.


Sitemap

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.


Architekturkonzepte

Kostenkozept

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.

Datenschutz- und Sicherheitskonzept

Mehrere Faktoren sollen den Datenschutz (inklusive DSGVO-Konformität) und die Sicherheit von WaldorfConnect sicherstellen.

Infrastruktur-Ebene

Anwendungs-Ebene

Benutzer Ebene

Verfügbarkeitskonzept

Die Verfügbarkeit der WaldorfConnect Plattform kommt durch die Verfügbarkeit des Servers kombiniert mit der Verfügbarkeit der Anwendungen zustande.

Backupkonzept

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.


Design-Entscheidungen und Verworfene Alternativen

Open Source statt Microsoft Office

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.

Verworfene Architektur-Alternative: Fork von NextCloud und NextCloud Talk

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.

Zulip als Team Chat App

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…

Hoster

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.

LDAP Account Manager

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.



Glossar