Institut national de recherche scientifique français Univerité Pierre et Marie Curie Université Paris Diderot - Paris 7

PALISADE

lundi 15 janvier 2018, par LoĂŻc Gueguen

Contexte

Lorsque l’on transmet des commandes vers un instrument (les tĂ©lĂ©commandes) ou lorsque l’on reçoit les donnĂ©es transmises par cet instrument (les tĂ©lĂ©mĂ©tries), il y a un Ă©change de donnĂ©es qui s’Ă©tablit entre deux systèmes, l’instrument et les moyens de test, selon un protocole de communication prĂ©cis qui dĂ©finit le format des Ă©changes (structure des paquets, valeurs des diffĂ©rents champs, etc.). Tous ces Ă©changes se font dans un format binaire et non dans un langage naturel directement exploitable : il est nĂ©cessaire d’utiliser des logiciels pour transformer ces donnĂ©es dans un format utilisable par les ingĂ©nieurs et les scientifiques.

Chaque nouvel instrument possède son propre langage dĂ©pendant de diffĂ©rents facteurs comme le protocole utilisĂ© pour la communication ou la structure des donnĂ©es Ă©changĂ©es. Cela signifie donc qu’il est nĂ©cessaire, pour chaque nouvel instrument, de rĂ©Ă©crire de nouveaux logiciels Ă  mĂŞme d’interprĂ©ter les donnĂ©es Ă©changĂ©es. Ce besoin est encore plus flagrant quand on considère que les mĂŞmes donnĂ©es seront interprĂ©tĂ©es diffĂ©remment selon les corps de mĂ©tiers (lĂ  oĂą un Ă©lectronicien verra une tension au sortir d’un capteur, un scientifique lira une intensitĂ© lumineuse) et que leur format pourra Ă©voluer dans le temps (le format peut changer pendant les phases de conception, d’intĂ©gration et mĂŞme pendant l’utilisation de l’instrument en cas de modification volontaire de son fonctionnement).

Il devenait donc nĂ©cessaire de faciliter et d’accĂ©lĂ©rer le dĂ©veloppement de ces logiciels.

Le projet PALISADE

Pour rĂ©pondre Ă  ce besoin, l’Ă©quipe Logiciel instrumentaux a dĂ©veloppĂ© un ensemble d’outils rassemblĂ©s dans le projet PALISADE (Parsing Library and Structural Description).

Ce projet est constituĂ© de deux entitĂ©s :

  • un langage de description,
  • une bibliothèque de composants logiciels.

L’idĂ©e est d’utiliser le langage pour dĂ©crire le format des donnĂ©es. Nous appellerons par la suite cette description une mĂ©ta-dĂ©finition. Les composants logiciels sont capables de rĂ©cupĂ©rer cette mĂ©ta-dĂ©finition et de se structurer de manière Ă  pouvoir interprĂ©ter correctement les donnĂ©es. Si une mĂ©ta-dĂ©finition diffĂ©rente est fournie, les composants se restructurent dynamiquement et s’adaptent au nouveau format. Par la suite nous utiliserons l’anglicisme parser pour dĂ©signer ces composants.

Les donnĂ©es binaires prĂ©sentĂ©es au parser seront interprĂ©tĂ©es et rendues dans un format gĂ©nĂ©rique facilement utilisable par le programme de traitement (processus d’analyse), et des donnĂ©es fournies dans ce format gĂ©nĂ©rique seront interprĂ©tĂ©es pour obtenir un format binaire (processus de compilation).

PALISADE
PALISADE

Le langage de méta-définition

Ce mĂ©ta langage a Ă©tĂ© entièrement dĂ©fini via XML et XML Schema. Il fournit un ensemble de structures classiques (boucles, expressions conditionnelles, gestion de variables, utilisation de formules…) qui permettent de simplement dĂ©crire la structure des diffĂ©rents flux de donnĂ©es associĂ©s Ă  l’instrument. La simplicitĂ© d’utilisation de XML, associĂ©e Ă  l’expressivitĂ© du langage dĂ©fini par PALISADE, permet d’Ă©crire simplement une mĂ©ta-dĂ©finition, facile Ă  comprendre et Ă  modifier.

La bibliothèque de composants logiciels

La bibliothèque est construite autour d’un ensemble de composants coopĂ©rants que nous avons nommĂ© parser, chargĂ© des opĂ©rations d’analyse et de compilation. Outre ces composants, la bibliothèque fournit diffĂ©rents outils pĂ©riphĂ©riques permettant, par exemple, de traiter en aval les donnĂ©es produites par le parser ou de gĂ©rer les diffĂ©rents fichiers de mĂ©ta-dĂ©finition.

La bibliothèque a été développée en C++ en utilisant les différents paradigmes de la programmation objet. Fortement modulaire, elle peut rapidement et simplement être enrichie.

Contact : LoĂŻc Gueguen