Vergleich XMPP/Matrix

- Lesezeit: 3 Minuten -

Vorwort

XMPP oder Matrix“ - Was ist besser? Diese Frage ist so nicht zu beantworten, da jedes der beiden freien und anbieterunabhängigen Systeme seine Vor- und Nachteile hat. Die Systeme sind nicht besser oder schlechter, sondern unterschiedlich in der Konzeption und deshalb nicht perfekt für jeden Anwendungsfall. Die manchmal vewendete Formulieurng „Matrix vs XMPP“ ist für beide Seiten kontraproduktiv, denn es geht nicht um ein „Gegeneinander“ sondern um das „Miteinander“.

Teilweise wird die Frage, welche App verwendet werden soll so beantwortet:

  • WhatsApp => Conversations (XMPP; Android) u.a.
  • Slack => Element (Matrix)

Das ist jedoch nur eine sehr grobe und subjektive Empfehlung. Wirklich wichtig und hilfreich sind konkrete Punkte …

Wesentliche Unterschiede

Merkmal Jabber (XMPP) Matrix (Matrix-Protokoll)
Generell

Protokollname XMPP
(Extensible Messaging and Presence Protocol)
Matrix
Sprache XML (extern)
(Extensible Markup Language)
JSON (extern)
(JavaScript Object Notation)
Grundgedanke Basis ergänzbar um viele Erweiterungen (XEP) monolithische Protokoll (alles in einem)
Fokus Flexibilität / Erweiterbarkeit Ausfallsicherheit von Chats/Chaträumen
Server

Ressourcenverbrauch (CPU, RAM) geringer als Matrix höher als Jabber(XMPP)
Ort der Datenspeicherung nur auf dem Server, auf dem der Chatraum eingerichtet ist auf jedem Server aller beteiligten Teilnehmer
Domain-Fähigkeit eines Servers Multi-Domain Single-Domain
Administration

Datenspeicherung deaktivierbar ja, kann vom Raumadministrator deaktiviert werden;
individuell vom Nutzer auch für jeden Chatraum und Kontakt
nein, kann nicht deaktiviert werden
Entzug Administrationsrecht in Chats möglich nicht möglich
Verschlüsselung von Chaträumen aktivierbar und deaktivierbar aktivierbar (NICHT umkehrbar!)
Nutzer

Unterstützung iOS Probleme bei Clients (nicht alle Funktionen werden von allen Clients unterstützt) volle Unterstützung
Nachrichteneingang Direktempfang falls TCP-Verbindung offen ist, ansonsten Info über Nachricht per Push-Nachricht Immer erst Push-Nachricht über neue Nachricht an Client, der die Nachricht dann vom Server abholt (polling)
Anzeige der Chatadresse in öffentlichen Chaträumen (anderen Teilnehmern) wird nicht angezeigt, kann vom Raumadministrator aktiviert werden Adressen sind immer öffentlich; eine Deaktivierung ist NICHT möglich.
Account-Fähigkeit (Anzahl Chatkonten) Multi-Account (mehrere) Single-Account

Tabelle: Stand Juli 2020 (blau markierte Texte = Änderungen seit 04/2020)


XMPP:

  • Daten für Chatraum sind auf jeweils 1 Server für alle Teilnehmer.
  • Es wird eine TCP-Verbindung genutzt, in die beide Seiten Daten ohne Aufforderung senden können.
  • Wird kein Push (google FCM) genutzt (z.B. bei der F-Droid-Version von Conversations) muss man die App im Vordergrund halten, was einen größeren Strombedarf erfordert.
  • Vorteil: „Grünere“ Nutzung der IT (weniger Ressourcenverbrauch)

Matrix:

  • Daten für Chatraum sind auf jeweils allen Servern der beteiligten Teilnehmer.
  • Das Protokoll HTTP ist zustandslos (‘stateless’) was eigentlich eher ungeeignet für Chat ist, da immer ein aktives Nachfragen (‘polling’) betrieben werden muss.
  • Dadurch ist der Strombedarf tendenziell größer - außer man vergößert den Abfrageintervall entsprechend, was dann ggfs. jedoch keiner „Sofortnachricht“ mehr entspricht.
  • Vorteil: Bei Ausfall/Wartung eines Servers können Teilnehmer von anderen Servern ohne Unterbrechung weiterschreiben.

Server / Performance

  • für die Nutzer in der Praxis irrellevant
  • für Ökologen und Theoretiker („Mehr Rechenleistung und mehr Speicherplatz <-> grüne IT“) relevant
  • für Serverbetreiber in Bezug auf Hardware zwecks Ressourcenbedarf wichtig

Entscheidungskriterien

Jabber(XMPP) und Matrix unterscheiden sich grundsätzlich in ihrer Systemarchitektur. Auch bei den jeweils vorhandenen Clients gibt es Unterschiede: So herrscht auf der einen Seite eine große Vielfalt mit unterschiedlichen Funktionen - auf der anderen Seite gibt es einen Referenzclient, der für alle Betriebssysteme die selben Funktionen anbietet.

Was ist für eine Entscheidung nun wichtiger: Systemmerkmale oder Clientfunktionalität ?

Es gibt keine allgemeingültige Antwort:
Langfristig kann es besser sein, das für sich besser passende System zu wählen - unabhängig von der Betrachtung der Clients. Kurzfristig ist vielleicht eine allumfassende Clientlösung wichtig. Vielleicht hilft hierbei auch die Überlegung, in welchen Bereichen (Clientverbesserung/-Anpassung oder System-/Protokollverbesserung) investiert werden soll/kann.

Ideal wäre eine Kooperation von Matrix und Jabber(XMPP) durch funktionierende Brücken. So wäre ein standardisierter Austausch von Nachrichten mit Anderen möglich - und trotzdem könnten Unternehmen/Behörden intern die Vorteile von ausfallsicheren Chaträumen genießen.