Skip to content

Architectures et implémentation par les éditeurs

Adrien Touzouli edited this page Mar 5, 2024 · 30 revisions

Dans l'architecture de Matrix il existe un lien fort entre le serveur de messagerie Matrix et l'identifiant (MXID) des utilisateurs qu'il héberge. Ceci implique qu'en fonction de l'architecture qui sera choisie, un utilisateur physique pourra avoir 1 ou plusieurs identifiants :

  • dans une architecture centralisée (1 seul serveur), chaque utilisateur ne possède qu'un seul identifiant
  • dans une architecture fédérée (X serveurs opérés par X éditeurs), un utilisateur physique peut avoir de 1 à X identifiants différents.

L'équipe d'EIMIS est actuellement (fin 2023) en cours d'évaluation des avantages et inconvénients de ces 2 scénarios afin de choisir lequel sera utilisé.

Cependant elle peut déjà fournir aux éditeurs de Messageries Instantanées de Santé les arbres de décision suivants concernant les choix qu'ils auront à faire en terme de mode de raccordement au réseau Matrix EIMIS

Scénario architecture centralisée (MXID unique)

flowchart TD
    D[En tant qu'éditeur <br> je veux me brancher à EIMIS <br> dans une architecture centralisée]
    D --> F{Quel type de raccordement <br> vais-je choisir?}
    F --> |bridge| G[le bridge doit être opéré par EIMIS]
    F --> |client Matrix| K[client Matrix]    
    K{Ma solution est-elle  <br> déjà basée sur Matrix?}
    K --> |oui| M[Je devrai utiliser <br> un client multi-account <br> branché sur serveur EIMIS]
    K --> |non| L[Je devrai utiliser <br> un client <br> branché sur serveur EIMIS]
Loading

Scénario architecture fédérée (MXID multiples)

flowchart TD
    O[En tant qu'éditeur <br> je veux me brancher à EIMIS <br> dans une architecture décentralisée]
    O --> A{Ma solution est-elle  <br> déjà compatible avec le protocole Matrix <br> et son principe de fédération?}
    A --> |oui| B
    B{Quel type de raccordement <br> puis-je choisir?}
    B --> |Fédération Matrix| C[Je fédère mon serveur <br>  Matrix avec celui d'EIMIS]
    B --> |client Matrix| D[Je devrai utiliser <br> un client multi-account <br> branché sur serveur EIMIS]
    A --> |non| F   
    F{Quel type de raccordement <br> puis-je choisir?}
    F --> |bridge| I[le bridge peut être opéré <br> ]
    F --> |client Matrix| J[Je devrai utiliser <br> un client <br> branché sur serveur EIMIS]
Loading

Synthèse des modes de raccordement

Bridge opéré par EIMIS

bridge opéré par EIMIS
L'éditeur développe un bridge et sa configuration, livre le tout à EIMIS pour être opéré sur son infrastructure.

Implications:

  • Le bridge devra être "certifié" par EIMIS pour être raccordé au serveur Matrix central
  • A chaque modification du bridge par l'éditeur la nouvelle version devra être livrée à EIMIS avec sa configuration
  • Le Bridge n'est pas un bridge Matrix standard et doit utiliser l'option JWT de Synapse. Grâce au jeton récupéré on peut ensuite demandé un token valide pour n'importe quel utilisateur.
  • Impact sur l'architecture de la solution éditeur et sur la certification HDS
  • Impact sur l'UI : dans les conversations EIMIS seules les fonctionnalités prises en charge par le bridge soient affichées

Bridge opéré par l'éditeur

bridge opéré par éditeur

L'éditeur développe un bridge et sa configuration.
Il opère ce bridge ainsi que le serveur Matrix auquel il est rattaché.
Le serveur Matrix de l'éditeur est fédéré avec le serveur Matrix d'EIMIS. Détails sur l’implémentation d'un bridge Matrix. Example de déploiement d'un bridge libre pour teams

Implications:

  • Bridge standard
  • Impact potentiel sur l'architecture de la solution éditeur et sur la certification HDS
  • Intégration de la brique de réconciliation des comptes (module Matrix + sdk forkés pas eimis)
  • Impact sur l'UI : dans les conversations EIMIS seules les fonctionnalités prises en charge par le bridge soient affichées

Client Matrix branché sur serveur EIMIS

Client branché sur synapse EIMIS
L'éditeur intègre dans son application un client Matrix.

Implications:

  • Impact sur l'UI de la solution éditeur
  • Intégration de la brique de réconciliation des comptes (sdk forkés pas eimis)

Client Matrix multi-account branché sur serveur EIMIS

Client multi-account branché sur synapse EIMIS
L'éditeur développe une fonctionnalité de type multi-comptes sur son client actuel de façon à pouvoir se connecter soit à son serveur Matrix, soit au serveur Matrix d'EIMIS.

Implications:

  • Impact sur l'UI de la solution éditeur
  • Intégration de la brique de réconciliation des comptes (sdk forkés pas eimis)

Fédération de serveurs Matrix

Fédération de serveurs Matrix
L'éditeur fédère son serveur Matrix avec celui d'EIMIS et voici les détails

Implications:

  • Intégration de la brique de réconciliation des comptes (module Matrix + sdk forkés pas eimis)