Skip to content

Concepts élémentaires

Floww edited this page Nov 16, 2013 · 7 revisions

Composant

Le composant est une notion élémentaire dans l’architecture de ce simulateur. Sa faible définition lui apporte une grande souplesse suffisante pour permettre à un développeur de l’adapter à son problème.

Un composant se définit en 5 points :

  • Un identifiant statique (nom)
  • Un identifiant d’instance unique
  • Une stratégie d’instance
  • Ensemble de propriétés (clé = valeur)
  • Ensemble de sous-composants

De façon synthétique, le composant est la représentation d’un principe physique ou logique à un niveau de détail donné pour lequel il délégue son comportement à une stratégie d’instance : l’implémentation. L’identifiant d’instance unique a vocation à différencier deux instances d’un même composant ; exemple arbitraire : j’ai deux composants “Carte” dans mon contexte de simulation.

Dans le cadre de l’échange de flux, le composant a été spécifié en trois types pour intérargir :

  • Composant entrée : élément esclave réagissant sur intéraction (ex : Carte)
  • Composant sortie : élément maître ou autonome réagissant sur évènement (ex : TPE)
  • Composant entrée / sortie : deux notions précédentes réunies (ex : FO)

Stratégie

Alors que le composant définit la structure et encapsule les données, la stratégie définit à elle seule l’implémentation. Une stratégie se traduit par l’implémentation de l’interface IStrategy définissant trois phases fondamentales :

-Initialisation

  • appelée au début de la simulation sur chaque composant
  • la stratégie peut initialiser des paramètres fonctionnels du composant
  • la stratégie peut initialiser des paramètres techniques du composant
  • la stratégie peut inscrire le composant à des évènements globaux

-Traitement d’un message

  • appelé lors de l’arrivée d’un message sur le composant
  • la stratégie peut traiter ce dernier
  • la stratégie peut répondre au composant appelant

-Traitement d’un évènement

  • appelé lors du déclenchement d’un évènement sur le contexte
  • la stratégie peut traiter et réagir à ce dernier

Médiateur

Le médiateur permet à deux composants de communiquer entre eux ; il est comparable au moyen de communication, pour exemple : le cable ethernet entre une carte ethernet et un switch. Ce concept découle du patron de conception qui apporte un couplage faible entre les composants et définit puis caractérise une communication entre deux composants.

Il facilite donc les communications et permet de définir leur nature :

  • communication unilatérale : A envoie un message à B
  • communication bidirectionnelle : A envoie un message à B et répond.

Des médiateurs techniques ont aussi été créés pour gérer dynamiquement quelques cas spécifiques et ainsi déporter la complexité au framework et non au développeur :

  • communication transférée : un composant logique transfère le message au composant physique (ex : le TPE transfère au chipset)
  • communication pontée : encapsulation de deux médiateurs en un seul (ex : le chipset du TPE pilote le lecteur de puce, les médiateurs TPE <-> Chipset et TPE <-> Lecteur de puce seront pontés).
  • communication inversée : inverse A et B dans un médiateur bidirectionnelle (utilisé dans le cadre du pontage).

La notion de médiateur nous permettra à terme de connaître les composants pouvant communiquer avec un composant donné au travers de notre bibliothèque.