1.4 Abstraction des composants virtuels

Plusieurs modèles permettent de représenter les interactions entre les composants logiques d’un système et leurs dépendances. L’un des premiers de ces modèles a été le modèle Input-Process-Output (IPO), suivi de son évolution, le modèle Hierarchical Input-Process-Output (HIPO) [10]. Ces modèles permettent de conceptualiser les composants logiques d’une solution ainsi que leurs entrées et sorties. L’évaluation des entrées et sorties entre les composants logiques et les composants virtuels permet de décrire les interactions possibles entre les composants de la couche de virtualisation.

Les premiers éléments de haut niveau identifiés par le modèle IPO sont les entrées et les sorties. Pour une solution monolithique, trois possibilités d’entrée et de sorties entre un composant logique et un composant virtuel sont offertes : celle où le composant virtuel est une source de données; celle où il est une cible de données; et celle où il peut être la source et la cible du seul composant logique de la solution. Dans un environnement réparti, un autre scénario s’ajoute : le cas où le composant virtuel est la sortie d'un composant logique et l’entrée d’un autre composant logique, par l’intermédiaire d’un second composant virtuel et d’un lien de communication. Alors, le composant virtuel sert à la communication entre deux composants logiques d'une même solution. La disponibilité de ces deux composants virtuels ainsi que du lien de communication n’a d’impact que sur le composant parent, puisque la dépendance est unidirectionnelle.

Le modèle IPO identifie aussi une caractéristique supplémentaire : lorsque l’information est transformée entre l’entrée et la sortie du composant virtuel par un processus. Enfin, une dernière caractéristique doit être prise en considération, lors de l’évaluation d’un composant virtuel. La capacité d’un composant à persister de l’information, donc lorsque le composant virtuel conserve un état entre deux appels.

Le sens d’une dépendance entre un composant logique et un composant virtuel ne représente pas la direction de la circulation de l’information. Une dépendance unidirectionnelle peut avoir un retour d’information, peu importe le sens de la dépendance, tant que la requête initiale est dans le sens de la dépendance.

Bien qu’un composant logique puisse avoir des entrées et des sorties d’un même composant virtuel, certaines combinaisons ne sont pas possibles. Dans certains contextes, un composant logique pourrait avoir le même composant virtuel en entrée et en sortie, sans en transformer l’information ni en modifier l’état tel qu’illustré dans la figure 1.9. Le composant logique dans cette figure pourrait alors être découpé en deux composants logiques distincts, qui dépendent chacun d’un composant logique et qui sont liés par un lien de communication. Alors, en ayant comme prémisse qu’une dépendance bidirectionnelle est découpée de cette façon, une hypothèse peut être posée : un composant virtuel ne transforme pas l’information, ne conservant pas d’état, et ne peut pas être l’entrée et la sortie d’un même composant.

Figure 1.9 — Découpage d'une dépendance bidirectionnelle

Si un composant virtuel transforme l’information et ne conserve pas d’état, il n’est pas possible que ce composant soit unidirectionnel, basé sur le modèle IPO décrit plus tôt. En effet, un composant virtuel transformant l’information doit recevoir l’information à transformer et doit retourner de l’information suite à la transformation. Aussi, un composant virtuel traitant l’information et n’ayant pas de retour d’information n’est pas un composant virtuel. C’est un service exposé par une interface publique, et consommé par une solution externe ou c’est un composant logique à part entière qui ne peut pas être virtualisé. Puisque les composants de traitement ne sont pas des liens de communication, il est inutile d’avoir un composant virtuel de traitement n’ayant pas de retour d’information. Un composant virtuel de traitement est donc nécessairement bidirectionnel.

Finalement, si un composant virtuel conserve un état, il peut être utilisé autant en entrée, pour consulter de l’information, qu’en sortie pour conserver de l’information. Il peut aussi être utilisé autant en entrée qu’en sortie d’un même composant logique, tout comme il peut être utilisé en entrée et en sortie de plusieurs composants logiques.

Figure 1.10 — Composant virtuel d’immuabilité

Il est possible de dénoter des types de composants virtuels couvrant tous les cas probables d’interaction entre un composant logique et un composant virtuel :

une dépendance virtuelle de transition est un composant servant de sortie ou d’entrée à un composant logique, sans en transformer l’information ni conserver d’état, et qui est relié à un autre composant virtuel de communication ayant l’interaction inverse avec un autre composant logique, tel qu’un lien logique de communication;

un composant virtuel d’immuabilité sert à la fois d'entrée et de sortie à un composant ou à plusieurs composants, et conserve un état entre les appels, comme un entreposage sur média de masse (une base de données, un fichier, etc.);

un composant virtuel de traitement sert autant d’entrée et de sortie à un composant, et transforme l’information. Ce composant virtuel doit être une fonction au sens strict .

Le tableau suivant représente les interactions possibles entre un composant et les caractéristiques d’abstraction d’un composant virtuel. Ces caractéristiques d’abstraction prennent en considération les entrées et les sorties d’un même composant logique vers un seul composant virtuel. Bien que certaines interactions semblent impossibles, elles seront notées comme improbables, puisque l’essai ne couvre pas toutes les circonstances possibles de ces combinaisons.

Tableau 1.1 — Interactions possibles entre un composant logique et un composant virtuel

Entrée seulement

Sortie seulement

Entrée et sortie

Aucune transformation, ni état

Possible

Possible

Improbable

Transformation effectuée

Improbable

Improbable

Possible

Conserve un état

Possible

Possible

Possible

Des combinaisons possibles du précédent tableau découlent donc les trois types de composants virtuels. Dans cet essai, les composants virtuels, combinés aux composants logiques, forment les deux seuls types de composants constituant une solution, les composants physiques étant abstraits par les composants virtuels ou pris en compte dans la disponibilité des composants logiques.

Table des matières · 7/26