Rethink Collaboration - WAS will ich mit WEM? "Ideen wachsen, indem wir sie teilen - Markus Mirwald" http://www.leitstern.de/k4/index.html Zum CLT-2019 stellten wir unser Projekt "K4" vor, das sich einer effektiven, durchdachten und sparsamen Verwaltung persönlicher Daten verschrieben hat ("Tiny Data" in Opposition zum beliebten "Big Data" Ansatz). Doch was sind meine Datenberge wert, wenn ich sie nicht mit anderen teilen kann, wenn sie nicht die Grundlage für ein Zusammenwirken von Menschen sein können? Darum haben wir uns in den letzten Jahren bemüht, unserer Anwendung die Fähigkeit des Austauschs einzuhauchen. Riskieren wir einen Blick in die übrige Welt der Zusammenarbeit im Netz. Da fallen oft Namen wie SAP, MS Exchange, Jira, Groupware, ... Allen ist gemein, daß sie ihren Fokus auf folgende Frage richten: Womit kann ich einen Austausch unter Mitarbeitern einer Firma, Mitgliedern eines Vereins etc. realisieren? Doch, warum sollte man sich als Benutzer mit der Frage nach die WIE beschäftigen? Sollte die Frage nicht stattdessen lauten: WAS will ich mit WEM besprechen oder austauschen? Gewiß haben die Schöpfer von Groupware-Lösungen Mittel und Wege gefunden, ihren Benutzern einen komfortablen Weg zu ebnen. In den allermeisten Fällen verfolgen diese Lösungen zentralisierte Ansätze, die mit viel Aufwand passende Rechte an ihre Teilnehmer verteilen und auch hochverfügbar sein müssen. In der Folge lagern Firmen ihre IT vollständig aus und überlassen ihre sensiblen Daten der Obhut anderer. Vertraulichkeit...? Lassen wir Firmen außen vor; eine weit verteilte Gruppe hat eine Idee für ein Open-Source-Projekt. Was tun? Software auf Github, Bugtracker auch irgendwo, Webseite, ... überall Server, und eine Kontrolle, was wem anvertraut wird, ist immer unübersichtlicher. Ohne Server generell zu verteufeln (sie erfüllen ihren Zweck auch in Zukunft), aber kann man sich einen Weg denken, wie man für den gesamten Austausch ohne zentrale Instanzen auskommt? - Die Kommunikation P2P (Peer-to-Peer) bzw. so gestaltet, daß sich Benutzer nur eine Frage stellen: WEM sende ich WAS? Aber nicht: WIE? - Die ganze Groupware P2P? Anstelle eines Servers, der alle Daten hostet und ich auch mit Daten konfrontiert werde, die mich nichts angehen, eine Lösung denken, wo Menschen nur das zugeteilt bekommen, was sie auch betrifft. - Suche in persönlichen Datenbeständen anderer via P2P? Eine persönliche Zulassung vorausgesetzt! - Kann man sich eine Anwendung denken, die verbreitete Kommunikationsdienste (zentralistische ebenso wie föderale) wie Telegram [1], Matrix [2], XMPP [3], E-Mail nur als Möglichkeit für den Austausch sieht, aber nicht als Notwendigkeit? - Kann man sich also eine Anwendung denken, die sich auf Deine Daten und Deine Kontakte konzentriert und einen Austausch mit ihnen ermöglicht, ohne die technischen Details des Austauschs zu thematisieren und ohne exklusive Dienste in Anspruch zu nehmen? All diesen Fragen hat sich unser Projekt "K4" mit der GUI "Clarissa" gestellt und eine Grundlage entwickelt, die einen Austausch ermöglicht, der unabhängig davon ist, welches Transportsystem (Telegram, Matrix, etc.) die Übertragung vornimmt. Vier Standbeine für die Kommunikation zwischen Clarissa-Instanzen sind dazu bisher entworfen und implementiert worden: - Der Austausch der Identität: Vertraulichkeit ist technisch durch Verschlüsselung, Authentizität durch Signatur zu erreichen. Eine "Identität" liefert die dazu nötige Grundlage - siehe asymmetrische Kryptographie. - Der Austausch von Daten: Jedes Objekt in der Datenbank, sei es ein Kontakt, ein Ticket, ein Dokument, eine Notiz, eine E-Mail, ... kann versendet und empfangen werden. Auch beliebige Mengen von Objekten, z.B. das komplette Geplänkel zweier über Telegram. - Der Austausch von Dateien: Eine Datei oder auch zwei per Mail senden ist oft noch überschaubar und für die allermeisten auch machbar. Was aber, wenn ich einen ganzen Ordner versenden will? Man ist plötzlich mit mehreren technischen Fragen konfrontiert, die für viele Menschen nur noch schwer umsetzbar sind: Erzeugen eines ZIP-Archivs, Achten auf Größenbegrenzung beim Versand von z.B. einer Mail... All das sollte Benutzer nicht kümmern, lediglich: Welcher Ordner an wen? - Entfernte Suche: Die Suche über einen Index der eigenen Daten ist trivial, aber im Falle einer Zusammenarbeit wird das Stöbern in den Daten anderer zu einer interessanten Option. Da wir uns Vertraulichkeit auf die Fahne geschrieben haben, liegt es in der Verantwortung jedes Einzelnen, genau darauf zu achten: Wer darf was sehen? Sie können sich vorstellen, daß es keine so klevere Idee ist, einen öffentlichen Kommunikationsserver mit Tests der oben erwähnten 4 Methoden zu bombardieren. Um eine solide Grundlage für Tests der Mechanismen zu haben, entwickelten wir ein Transportsystem auf der Basis von Dateien. Die Idee ist sehr einfach: Der Sender schreibt eine Datei in einen dedizierten Ordner des Empfängers, der Empfänger realisiert eine neue Datei, liest ihren Inhalt und generiert daraus eine Nachricht, die genauso strukturiert ist wie eine Nachricht aus Telegram, Matrix etc. Was zunächst nur für Testzwecke herhalten sollte, regte einige neue Ideen an: Was spricht dagegen, den Austausch von Dateien über ein geteiltes Dateisystem wie NFS, Samba zu gestalten und damit eine Kommunikation in einer geschlossenen Umgebung, z.B. in einem Institut zu ermöglichen? Und, wenn man eine Kommunikation über Dateien realisieren kann, läßt sich das auch ausnutzen, wenn der Austausch der Dateien selbst über ein externes Programm erfolgt, z.B. mittels Syncthing [4]? Werfen wir einen Blick auf die Webseite dieses Projekts [4], dort findet man die folgende kurze Beschreibung: "Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it’s transmitted over the internet." In den Details erfährt man außerdem, daß die Kommunikation P2P und verschlüsselt erfolgt, Server im Wesentlichen nur zur Vermittlung einer Verbindung herangezogen werden. Meine Darbietung demonstriert den aktuellen Entwicklungsstand von K4/Clarissa mit Fokus auf die Kommunikation und Syncthing als eines der implementierten Transportsysteme. Syncthing beschäftigt sich zwar mit der Frage nach dem WIE des Transports; doch der Linuxtag möchte die technischen Lösungen beleuchten. Für Anwender ist es ziemlich egal, ob eine Sendung per Mail erfolgt oder über Syncthing - es obliegt dem Schöpfer eines Programms, eine für den Anwender optimale Entscheidung zu treffen, welcher Weg der geeignetste ist. Für die Präsentation selbst sind keine professionellen Programmierkenntnisse notwendig. Alle mit gesunder Neugier auf unkonventionelle Wege sind herzlich eingeladen. [1] Telegram - https://telegram.org [2] Matrix - https://matrix.org [3] XMPP - https://xmpp.org [4] Syncthing - https://syncthing.net