UniComCtrl::Protocole de communication v2.1

Un article de OpenIHS.org.

La trame de communication peut se représenter de la manière suivante :

Image:Unicomctrl_pdc.png

  • Le champ H (entête) est obligatoire et donc toujours présent.
  • Le champ P (nom pair à pair) contient le "peer name" ou nom du destinataire ou originaire de la trame. Ce champs peut être vide (absent) si l'origine/destination du message est le serveur.
  • Les champs L et V sont indissociables et forment le champ B (corp du message). Si le champ V est absent, le champ L l'est aussi.
    • Le champ V contient les données à envoyer.
    • Le champ L contient la longueur du champs V.

[modifier] Champ H : entête de la trame

Le champ H est un mot (octet) de 8 bits et se décompose de la manière suivante :

Image:Unicomctrl_pdc_h.png

  • Les bits de 0 à 3 contiennent les drapeaux (flags).
  • Les bits de 4 à 7 servent à coder le type de la trame.

Liste des drapeaux :

  • bit 0 : mode de communication
    • à 0 : asynchrone.
    • à 1 : synchrone.
  • bit 1 :
    • à 0 : normal.
    • à 1 : "administration" si le type est requête, ou "2 dimensions" si le type est list.
  • bit 2 : champ P
    • à 0 : absent.
    • à 1 : présent.
  • bit 3 : champ B (L + V)
    • à 0 : absent.
    • à 1 : présent.

Liste des types :

  • 0x0 : Service temporairement indisponible.
  • 0x1 : Destination inaccessible.
  • 0x2 : Opération non permise.
  • 0x3 : Opération nom supportée.
  • 0x4 : Données binaire.
  • 0x5 : Requête.
  • 0x6 : Erreur
  • 0x7 : Message
  • 0x8 : Liste.
  • 0x9 : Évènement de connexion envoyé au plugin quand un client effectue la requête use <plugin> ou envoyé au client si d'une part le client a envoyé la commande use all et qu'un plugin effectue la requête insert <plugin> (on suppose que le client à les droit nécessaire pour utiliser ce plugin).
  • 0xA : Évènement de déconnexion envoyé au plugin quand un client effectue la requête reset ou si il se déconnecte et vice-versa.
  • 0xB : Non utilisé.
  • 0xC : Non utilisé.
  • 0xD : Non utilisé.
  • 0xE : Non utilisé.
  • 0xF : Non utilisé.

[modifier] Champ P : nom du destinataire ou originaire

Le champ P est une suite de caractères suivit du caractère '\0'.

Image:Unicomctrl_pdc_p.png

[modifier] Champ B (L+V) : corp du message

Le champ B est composé de l'octet Lh suivit, selon les cas, des octets L1..4, suivit des octets du champs V

Image:Unicomctrl_pdc_lv.png

  • Si la longueur du champ V est inférieure à 128 octets :
    • Le bit 0 de Lh sera à 0.
    • La longueur du champs V sera codée sur les bits 1 à 7 de Lh.
    • Les octets L1..4 seront absents.
  • Si la longueur du champ V est suppérieure ou égale à 128 octets :
    • Le bit 0 de Lh sera à 1.
    • La longueur du champs V sera codée sur les octets L1..4 avec l'octet de poids fort en premier et celui de poids faible en dernier.
Compte svn/dav & co
Divers
Administration