OpenMail

En suivant le raisonnement sur l’annuaire et la messagerie, on peut aller encore plus loin.

Finalement, rien n’empêche que les entités s’échangent directement les objets messages.

Lorsqu’une entité source souhaite envoyer un objet message à une autre entité cible, elle crée le lien :

  1. objet source = objet message
  2. objet cible = entité cible
  3. objet meta = entité annuaire
  4. signataire = entité source

Volontairement, on ne met pas d’objet méta, on ne passe pas par l’annuaire.

Ensuite, l’entité source se connecte à l’entité cible pour vérifier (une des seules choses qu’elle peut faire) si les liens de son propre objet à changer chez l’entité cible (présence d’un message par exemple).

L’entité cible, en tant que service et processus sur une machine, voit la connexion et l’interrogation de cet (copie) objet entité. Si c’est une entité à laquelle elle est liée, elle peut en retour aller vérifier si les liens de son propre objet à changé chez l’entité source. Et c’est gagné.

Une entité précédemment indisponible, en se reconnectant, va interroger toutes les entités auxquelles elle est lié pour voir si elle n’a pas manqué des messages. En voyant cette connexion, les autres entités vont faire de même avec la nouvelle arrivante. Ainsi, une diffusion immédiate des objets messages est faite.

Il faut cependant un mécanisme pour réguler les échanges en boucle infinie.

Conclusion.
Oui, on peut échanger des messages sans passer par un annuaire. La condition étant d’avoir une vue sur les connexions entrantes.
Oui, l’annuaire peut servir de relais de messages en cas de besoin. L’un n’empêche pas l’autre.
Oui, si l’annuaire est aussi relais, il fait office de serveur de messagerie à part entière.

Laisser un commentaire