Noeud Central

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é.

Poignée de main

La poignée de main se déroule en deux étapes.

  1. envoi d’une requête de connexion au noeud central
  2. approbation du noeud central

Contenu de la requête

  • type : ”connection attempt
  • module type : type du module (par exemple, gestion de signaux, de conduite, etc). Il est possible qu’à terme, tous les types forment une arborescence pointée (A.B.C)
  • name : le nom du module se connectant (qui pourra servir à d’autres modules pour établir des relations de dépendance)
  • fqname, optionnel : le nom du module se connectant (réservé à l’affichage utilisateur)
  • version : la version actuelle du module
  • cohabitation, optionnel : ”none”, ”leader”, ”complete
    • none : pas de cohabitation possible entre modules de même type : c’est la valeur par défaut
    • leader : un référant est désigné par le noeud central, il recevra les messages adressés à ce type de modules
    • complete : 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 modules

Confirmation de connexion

Si tous s’est bien passé :

  • type : “connection succeed”

En cas de problème :

  • type : ”connection failed
  • content : “Raisons qui ne permettent pas cette connexion” (par exemple incompatibilité du mode de cohabitation)

Une fois connecté

Message de nouveau module

  • type : ”new module
  • module id: identifiant unique du module, fourni par le noeud central
  • module type : type du module (par exemple, gestion de signaux, de conduite, etc)
  • name : le nom du module se connectant (qui pourra servir à d’autres modules pour établir des relations de dépendance)
  • fqname, optionnel : le nom du module se connectant (réservé à l’affichage utilisateur)
  • version : la version actuelle du module

Envoyé par le noeud central

Message de suppression de module

  • type : ”module lost
  • module id: identifiant unique du module, fourni par le noeud central

Envoyé par le noeud central

Message d'inscription à des messages

  • type : ”message subscription
  • accept : une liste de type de messages acceptés par le module. Ces messages seront transmis par le noeud central au module concerné lors de leur réception. ”*” signifie tous les messages. Par défaut : [], aucun message. Il est possible que les types de messages évoluent vers une notation en arborescence
  • avoid : une liste de type de messages à ne pas transmettre. Par défaut []

Les 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.

Les leaders

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.

Messages de gestion du leadership

  • type : “leadership attribution”

Vous êtes le nouveau leader du groupe de module auquel vous appartenez. Envoyé par le noeud central.

  • type : “leadership destitution”

Vous venez de perdre le leadership du groupe. Envoyé par le noeud central.

  • type : “request leadership attribution”

Vous demandez à être le nouveau leader du groupe de module auquel vous appartenez. Envoyé par le module demandant.

  • type : “request leadership destitution”

Vous demandez à perdre le leadership du groupe. Envoyé par le module demandant.

documentation/protocole/noeudcentral.txt · Dernière modification: 19/10/2011 16:48 par Emmanuel
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki