Malgré les avantages de l’approche architecturale, plusieurs problèmes se posent néanmoins concernant les adaptations dynamiques dans les architectures à composants. Les considérations suivantes sont ainsi à prendre en compte [ORE 98]:
Le modèle d’architecture d’un système doit rester cohérent avec son implémentation au cours de l’exécution et des adaptations. Les modèles de composants réflexifs résolvent ce problème en maintenant une connexion causale entre la représentation architecturale et le système à l’exécution.
Les adaptations dynamiques dans un système doivent préserver la cohérence de sa structure et la validité de son comportement, de même que certaines propriétés non-fonctionnelles (ex. sécurité, qualité de service, etc.), et ce en dépit de possibles défaillances. L’ajout et la vérification de contraintes ou de styles architecturaux permettent par exemple de restreindre les transformations possibles des architectures.
L’exécution des adaptations dynamiques doit être synchronisée avec l’exécution fonctionnelle du système. Il ne doit par exemple pas être possible pour un composant de continuer à invoquer des méthodes de l’interface fonctionnelle d’un autre composant alors qu‟ils sont en train d’être déconnectés.
Un problème complémentaire à la synchronisation est la gestion de l’état des composants adaptés et plus précisément le transfert d’état entre composants. Il peut ainsi être nécessaire de transférer l’état d’un ancien composant vers le nouveau composant qui le remplace dans l’architecture.
L’occurrence possible de plusieurs adaptations simultanément dans un système à l’exécution requiert une synchronisation pour éviter les conflits entre adaptations sous peine de mettre potentiellement le système dans un état incohérent.
Page suivante : 3.8 Performance de l’adaptation
Retour au menu : UTILISATION DES SCRIPTS POUR LE DEVELOPPEMENT DES COMPOSANTS COM ADAPTABLES