Visualiser une révision

XMPP_et_Matrix

SaintGermain : Traduction mot à mot de la FAQ sur XMPP de Matrix.org (21 juillet 2017 21:38:51)

Quelle est la différence entre Matrix et XMPP?
===============================================

L'équipe Matrix a utilisé XMPP (Openfire, ejabberd, spectrum, asmack, XMPPFramework) pour sa messagerie instantanée (IM) avant de commencer à expérimenter avec open HTTP APIs comme alternative vers 2012. Les principaux soucis XMPP qui nous ont dirigés vers cette direction sont:

- Pas particulièrement web-friendly - il est difficile de parler XMPP à partir d'un navigateur web. (N.B. de nos jours des options comme XMPP-FTW et Stanza.io peuvent aider les navigateurs à parler XMPP).
- Un seul serveur logique par MUC est un point unique de contrôle et de disponibilité. (les MUCs peuvent être répartis sur plusieurs serveurs physiques, mais ils se placent quand même derrière un point unique logique JID et domaine). FMUC améliore ce point avec une approche similaire à Matrix, mais au jour d'octobre 2015, il n'y a pas d'implémentation libre)
- La synchronisation de l'historique n'est pas une fonctionnalité principale
- Les passerelles vers les autres protocoles et la défragmentation des réseaux et applications de communication existantes ne sont pas une fonctionnalité principale
- Les Stanzas ne sont pas encadrés ou délivrés de manière fiable sans extensions (voir wiki.xmpp pour l'avis de XMPP sur cela)
- Le support des appareils multiples est limité (apparemment Carbons et MAM aident sur ce point)
- Les fonctionnalités de base sont tellement minimales que la fragmentations des fonctionnalités entre clients et serveurs deviennent courantes, particulièrement depuis que les profils d'interopérabilités pour les fonctionnalités sont à la traîne (à la date de juillet 2015)
- Pas de système d'identité fort (i.e. pas de standard E2E PKI, à moins que que l'on compte les certificats X.509, ce qui est questionable).
- Pas particulièrement bien conçu pour les cas d'utilisation de mobiles : push, transport avec optimisation de la bande passante (depuis que cet article a été écrit, un Push XEP est apparu, et wiki.xmpp.org prétend que XMPP marche bien sur un connexion à 9600bps + 30s de latence).

Le sujet XMPP vs Matrix semble faire ressortir le mauvais côté des gens. Plutôt que de se disputer sur quel standard de communication libre et interopérable marche le mieux, on devrait collaborer et tout relier ensemble. Plus il y a de fédération et d'interopérabilité, mieux c'est.

On pense que Matrix et XMPP sont assez différents ; dans son principe, Matrix peut être vu comme une base de données JSON, à terme cohérente, avec une API HTTP et une sémantique pubsub, alors que XMPP peut être vu comme un protocole de transmission de messages. Vous pouvez utiliser les deux pour construire un système de chat ; vous pouvez utiliser les deux pour construire un système de pubsub ; chacun possède des avantages et des inconvénients. Matrix a délibérément choisi une approche « kitchen sink » pour ses fonctionnalités de base. XMPP a choisi délibérément des fonctionnalités de base minimaux. Si XMPP répond à votre besoin, alors nous sommes sincèrement content pour vous :)
En attendant, plutôt que d'être en compétition, une passerelle XMPP comme xmpptrix beta de Skaverat ou matrix-xmpp-bridge de jfred ou le propre purple-matrix de Matrix.org a le potentiel de laisser les deux environnements coexister et de tirer le meilleur de chacun.