2.4 Une approche : la duplication

Puisque tous les composants logiques d'une solution sont indispensables pour que celle-ci offre la totalité des services pour lesquels elle a été conçue, la duplication de ces composants ou des composants virtuels de la solution permet d'amoindrir l'impact de la dispersion d'une solution. Un composant logique qui dépend d’un unique composant virtuel n’a qu’une seule source permettant de lui fournir l’information requise pour qu’il soit fonctionnel. En dupliquant ce composant virtuel, la défaillance de l’un d’entre eux n’empêche pas l’autre de fonctionner. Plus de duplicatas de ce composant virtuel sont accessibles, moins il y a de risque que le composant logique devienne dysfonctionnel suite à l’indisponibilité d’un ou plusieurs duplicatas du composant virtuel. La disponibilité de l’information provenant d’un composant virtuel est influencée directement par le nombre de duplicatas permettant l’accès à cette information.

Afin d’accéder à l’information provenant de duplicatas, des mécanismes additionnels doivent être implémentés par le composant consommant l’information des duplicatas. Des annuaires de duplicatas de composants, des mécanismes de découverte de composants et des mécanismes de bascule automatique entre duplicatas en sont des exemples. Le détail de ces implémentations n’est pas adressé dans le cadre de la présente analyse, puisqu’il fait partie intégrante des composants logiques; il est tenu pour acquis que ces mécanismes sont en place et parfaitement fonctionnel.

D’autres mécanismes peuvent être mis en place à même l’implémentation des composants logiques. Par exemple, le traitement asynchrone permet à un composant logique de réessayer d’accéder un composant virtuel en cas de panne. Ces mécanismes font partie intégrante de l’implémentation du composant logique ou virtuel et sont abstraits du cadre de l’essai.

Un composant virtuel additionnel est considéré comme un duplicata lorsque les caractéristiques décrites dans les sections 2.4.1 à 2.4.3 sont rencontrées. Ces caractéristiques s’ajoutent aux caractéristiques des types de composants virtuels définies dans les sections 1.5.1 à 1.5.3.

Le cadre de l’essai se limite aux composants virtuels découlant des combinaisons possibles des caractéristiques du modèle IPO. L’analyse se limite donc à la réplication des composants virtuels de transition, de traitement et d’immuabilité.

2.4.1 Réplication de composant virtuel de transition

Les composants virtuels de transition n’ont pas de données persistantes; une réplication d’un tel composant, en conservant la même entrée et la même sortie, permet d’avoir une meilleure disponibilité. Il est aussi possible d’établir certaines caractéristiques pour qu’un composant virtuel de transition soit considéré comme un duplicata d’un autre composant virtuel de transition.

La section 1.3.1 décrit qu’une hiérarchie de composants crée des relations parent-enfant lorsqu’un composant dépend d’un autre. Tandis que les composants virtuels de transition dupliqués sont utilisés pour la redondance, des mécanismes internes au composant parent et, potentiellement, au composant enfant doivent être mis en place afin d’utiliser un duplicata de ce composant virtuel lorsqu’il y a une panne. Dans le cas où l’information transite par l’intermédiaire de tous les duplicatas, le composant logique parent et le composant logique enfant doivent synchroniser l’information reçue, puisque l’implémentation physique de ces composants virtuels n’est pas connue et que l’information pourrait ne pas être reçue dans le même ordre que celui où elle a été envoyée.

Figure 2.2 — Réplication des composants virtuels de transition

Les caractéristiques additionnelles d’un duplicata d’un composant virtuel de transition sont :

que l’entrée de chaque duplicata soit reliée au même composant que l’original; et

que la sortie de chaque duplicata soit le même composant que l’original.

2.4.2 Réplication de composants virtuels de traitement

Les composants virtuels de traitement, comme ceux de transition, n’ont pas de données persistées. Un composant de ce type peut donc être dupliqué, de la même façon qu’un composant virtuel de transition.

Par contre, les caractéristiques ajoutées aux caractéristiques de base d’un composant virtuel de traitement ne sont pas les mêmes que celles ajoutées aux composants virtuels de transition. Pour les composants virtuels de traitement, il faut que le traitement réalisé par le duplicata soit le même que celui réalisé par l’original, en plus qu’il soit reproductible, et qu’il ne conserve pas d’état, tel que mentionné dans la section 1.5.1. Le traitement soit local à la dépendance de traitement, sans accès à des dépendances d’immuabilité.

2.4.3 Réplication des composants virtuels d’immuabilité

Les composants virtuels d’immuabilité ont une caractéristique qui complique la réplication : ce sont les seuls composants virtuels qui doivent conserver un état.

La réplication de ces composants n’est donc pas possible, à moins de déterminer l’état du composant simultanément pour tous les duplicatas du composant. Dans le cas où l’original serait manquant, son duplicata pourrait alors prendre la relève puisqu’il aurait conservé le même état. Le même mécanisme devrait être mis en place et synchronisé entre tous les composants logiques, inclus ou non dans la solution logicielle analysée.

Une caractéristique se démarque : tous les duplicatas du composant virtuel par lesquels le composant logique doit pouvoir persister ou lire l’état doivent le faire de façon atomique, du moins du point de vue du composant logique consommant le service de ces composants virtuels dupliqués. L’accès à l’information doit se faire de façon à ce qu’un seul composant puisse écrire, ou de façon à ce que plusieurs composants puissent lire cet état d’un même composant virtuel d’immuabilité, à un instant . De cette façon, l’état est persisté pour tous les duplicatas, ou ne l’est pour aucun. Lors de sa lecture, l’information devrait être identique à travers tous les duplicatas de ce composant, puisque l’information a été persistée par des composants logiques comportant des mécanismes le permettant de manière atomique, conséquente, isolée et durable (ACID). La prochaine section en décrit les limitations.

Table des matières · 13/26