—Adapt. logicielle Réfl. structurelle Connecteur proxy Réfl. comportementale Connecteur Javassist Réflexivité en BCM —
Mécanismes pour l’adaptabilité dynamique (rappel) I
Pour un système informatique, l’adaptation peut se décliner en
quatre grandes familles de mécanismes :
1paramétriques : changement de paramètres de configuration
n’impliquant pas un impact significatif sur les ressources
consommées ni sur celles nécessaires pour l’adaptation.
Exemples : taille de tampons bornés, nombre de threads, etc.
2ressources : changement dans la quantité de ressources mises à
la disposition de l’entité ayant un impact significatif à la fois sur la
QdS et sur le coût d’opération.
Exemples : allocation de machines virtuelles dans un centre de
calcul, variation de la fréquence de processeurs, etc.
3fonctionnelles : modification au contenu des programmes
entraînant un changement dans ses fonctionnalités et la QdS
associée.
Exemples : ajout/retrait/modification de code, recompilation et
optimisation de code, etc.
5 / 60
—Adapt. logicielle Réfl. structurelle Connecteur proxy Réfl. comportementale Connecteur Javassist Réflexivité en BCM —
Mécanismes pour l’adaptabilité dynamique (rappel) II
4architecturaux : modification à la structure des programmes
entraînant aussi un changement dans ses fonctionnalités et la
QdS associée, et pouvant demander de longs délais pour être
réalisées dans le cas des systèmes répartis.
Exemples : remplacement de bibliothèques dynamiques,
modification de l’assemblage de composants, déconnexion et
reconnexion dynamique de services web, etc.
Familles qui ont un recouvrement entre elles, et donc des
frontières floues.
Caractéristiques essentielles : impact sur la difficulté de réaliser
les adaptations, leur coût, les contraintes qu’elles imposent, la
prédictibilité de leurs effets.
6 / 60
—Adapt. logicielle Réfl. structurelle Connecteur proxy Réfl. comportementale Connecteur Javassist Réflexivité en BCM —
Classes et portée des mécanismes I
Outre les familles, on peut considérer un autre axe de
classification des mécanismes d’adaptation :
les opérations élémentaires, insécables et non-interruptibles,
comme la modification d’un paramètre, l’allocation d’une quantité
donnée d’une ressource monolithique ;
les opérations composites classiques : séquentielles,
conditionnelles, répétitives, etc.
les opérations composites temporisées et réparties, comme des
plans exécutés sur différentes entités, déployées sur différents
ordinateurs et l’expression de leurs dépendances temporelles,
temporisées et fonctionnelles ;
les opérations coordonnées, à petite, moyenne et grande échelle
nécessitant des mécanismes de propagation, de synchronisation
et de gestion des dépendences de types vagues de mises à jour
et front d’adaptation dans un réseau à grande échelle, par
exemple.
7 / 60
—Adapt. logicielle Réfl. structurelle Connecteur proxy Réfl. comportementale Connecteur Javassist Réflexivité en BCM —
Classes et portée des mécanismes II
Comme le suggère la nomenclature précédente, la description et
l’exécution d’adaptations à tout ou partie d’un programme,
éventuellement réparti, est lourde et suggère des langages et de
moteur d’exécution dédiés à ces opérations (DSL...).
Nous allons maintenant nous concentrer sur certaines opérations
élémentaires d’adaptations fonctionnelles et architecturales qui
ont été développées depuis une trentaine d’années dans le
domaine des langages de programmation et des modèles à
composants.
8 / 60