Le noeud central est le module qui organise et centralise les différentes communications entre module. Toute connexion commence par une poignée de main.
Les requêtes prennent toutes un id, qui n’est pas précisé pour éviter la redondance. De même, le type de requête est précisé dans son contenu même si celui-ci fera l’objet d’un traitement séparé.
La poignée de main se déroule en deux étapes.
connection attempt”none”, ”leader”, ”complete”none : pas de cohabitation possible entre modules de même type : c’est la valeur par défautleader : un référant est désigné par le noeud central, il recevra les messages adressés à ce type de modulescomplete : cohabitation possibles entre modules de ce même type. Il n’y a pas de référant désigné. Les messages adressés à ce type de module sont envoyés à tous les modulesSi tous s’est bien passé :
En cas de problème :
connection failed”new module”Envoyé par le noeud central
module lost”Envoyé par le noeud central
message subscription”*” signifie tous les messages. Par défaut : [], aucun message. Il est possible que les types de messages évoluent vers une notation en arborescenceLes messages doivent passer par l’un des filtres “accept”, puis ne pas correspondre n’importe lesquels des filtres “avoid”.
Ce message n’est pas transmis aux autres modules.
Par défaut, le noeud central n’accepte qu’une connexion par type de module. Il est néanmoins possible d’en connecter plusieurs si le premier à se connecter active un des modes possibles lors de sa connexion. Le premier module choisie le mode, et les autres devront choisir le même. (À défaut, la connexion leur sera refusée)
En mode exclusif, seul un module d’un type donné peut se connecter.
En mode complet, il n’y a aucune restriction sur le nombre de connexion d’un même type de module.
En mode “leader”, le nombre de connexion n’est pas non plus limité, mais un leader est désigné parmis les modules se connectant. Le leader est, au début, le premier module à se connecter. Dans ce mode, chaque module peut demander à être le leader. Chaque module peut également tenter d’abandonner le rôle de leader.
Dans tous les cas, c’est le noeud central qui défini qui devient leader.
Vous êtes le nouveau leader du groupe de module auquel vous appartenez. Envoyé par le noeud central.
Vous venez de perdre le leadership du groupe. Envoyé par le noeud central.
Vous demandez à être le nouveau leader du groupe de module auquel vous appartenez. Envoyé par le module demandant.
Vous demandez à perdre le leadership du groupe. Envoyé par le module demandant.