1 Atelier GEDSIP 2007 Gautier Bastide bastide@ensm-douai.fr douai.fr Ecole des Mines de Douai Abdelhak Seriai seriai@ensm ensm-douai.fr Ecole des Mines de Douai Mourad Oussalah oussalah@lina.univ lina.univ-nantes.frnantes.fr LINA
2 Présentation de l adaptation structurelle Objectifs de l auto auto-adaptationadaptation structurelle Ré-ingénierie de composants logiciels pour leur préparation à l'auto-adaptation adaptation Conclusion et perspectives
3 Présentation de l adaptation structurelle Objectifs de l auto-adaptation structurelle Ré-ingénierie de composants logiciels pour leur préparation à l'auto-adaptation Conclusion et perspectives
4 Définition Capacité de modifier la structure d un composant tout en préservant son comportement. {S1,S2,S3} {S7,S8} {S4,S5} {S6} C1 {S9} Déploiement Mémoire insuffisante! Adaptation structurelle du composant C1 {S1} {S2} {S3} {S4} C2 C3 C5 {S5} {S6} C4 C1
5 Présentation de l adaptation structurelle Objectifs de l auto auto-adaptationadaptation structurelle Ré-ingénierie de composants logiciels pour leur préparation à l'auto-adaptation Conclusion et perspectives
6 Deux principaux objectifs Garantir la continuité de service Maintenir une qualité de service Comment? Optimiser le déploiement d un composant du composant en fonction des éléments du contexte Optimisation de l exploitation des ressources disponibles (répartition des charges) Optimisation par rapport aux modes de communications disponibles Optimisation par rapport à l utilisation Optimisation suivant le mode de fonctionnement du composant Etc.
7 Optimisation du déploiement du composant en fonction des éléments du contexte Quand? Définition de règles de déclenchement de l adaptation structurelle le Forme des règles : ECA (Évènement Condition Action) Exemple : Comment? Adapter la structure et ainsi le déploiement du composant! " # " #! $%&
8 Optimisation du déploiement du composant en fonction des éléments du contexte Comment? Principe : Adaptation en deux phases "'(! ( )& ' "
9 Présentation de l adaptation structurelle Objectifs de l auto-adaptation structurelle Ré-ingénierie de composants logiciels pour leur préparation à l'auto-adaptation adaptation Conclusion et perspectives
!" Principe : Générer un composant structurellement et dynamiquement auto-adaptatif adaptatif à partir d un composant existant 10 2 phases : Génération d un composant structurellement et dynamiquement adaptable Introduction de mécanismes permettant au composant d automatiser son processus d adaptation
#!" Génération d un composant structurellement et dynamiquement adaptable Composant sous format canonique Transformation du composant initial en composant composite dont les sous-composants sont incassables Par défaut : réification des interfaces en composants Possibilité de spécification par le concepteur de la structure des d composants incassables Processus réalisé en deux étapes Génération des << composants incassables >> Analyse et fragmentation de code Assemblage des composants générés Matérialiser les connexions entre les composants dépendants Encapsulation du résultat de l assemblage horizontal dans un composant composite 11
$!" Génération d un composant structurellement et dynamiquement adaptable Les rôles du composant composite Fournit les mêmes services fonctionnels que le composant initial Masque les services internes créés au cours des étapes d assemblage age Fournit des interfaces permettant de manipuler les sous-composants séparément Fournit un service d adaptation structurelle 12 StructAdapt StructAdapt Deployment Diary DiaryUpdate Meeting MeetingUpdate Absence AbsenceUpdate Right RightUpdate Shared-Diary Processus d adaptation structurelle Diary DiaryUpdate Meeting MeetingUpdate Absence AbsenceUpdate Right RightUpdate
!!" Introduction de mécanismes permettant au composant d automatiser son processus d adaptation Introduction de nouveaux composants dédiés Composant de gestion de contexte Composant décisionnel Composant d'adaptation 13 Moteur d adaptation Composant auto-adaptatif Moteur de déploiement Gestionnaire de comportement Gestionnaires de contexte Moteur de reconfiguration Moteur décisionnel Gestionnaire de contexte externe Gestionnaire de description de services
%!" Composant de gestion de contexte Élément de contexte dépendant de la structure d un composant Le contexte de déploiement : architecture matérielle Le contexte logiciel Le contexte d exploitation Composant décisionnel Composant d'adaptation 14
%!" Composant de gestion de contexte Élément de contexte dépendant de la structure d un composant Le contexte de déploiement : architecture matérielle # # # * # + %", # -.% Le contexte logiciel Le contexte d exploitation Composant décisionnel Composant d'adaptation 15
%!" Composant de gestion de contexte Élément de contexte dépendant de la structure d un composant Le contexte de déploiement : architecture matérielle Le contexte logiciel # # * # - # %/ 0 Le contexte d exploitation Composant décisionnel Composant d'adaptation 16
%!" Composant de gestion de contexte Élément de contexte dépendant de la structure d un composant Le contexte de déploiement : architecture matérielle Le contexte logiciel Le contexte d exploitation # - # - 1 * # -.% # + %", Composant décisionnel Composant d'adaptation 17
&!" Composant de gestion de contexte Composant décisionnel Rôle : Déterminer une spécification de la structure du composant conforme au contexte courant Comment? : Définition de règles d auto auto-adaptationadaptation +. ')% Types de règles pour l auto auto-adaptationadaptation Use-aware Resource-aware Service-dependency aware Composant d'adaptation 18
&!" Composant de gestion de contexte Composant décisionnel Comment? : Définition de règles d auto-adaptation adaptation Types de règles pour l auto-adaptation adaptation Use-aware Objectif : Permet la sélection des services en fonction de l'utilisateur et de l environnement d'utilisation Contexte utilisé : Contexte d exploitation Acteur : Administrateur de l application Forme de règles: CA Exemple : Sélection des services à déployer suivant le profil de l utilisateur Resource-aware Service-dependency aware Composant d'adaptation 19
&!" Composant de gestion de contexte Composant décisionnel Comment? : Définition de règles d auto auto-adaptationadaptation Types de règles pour l auto-adaptation adaptation Use-aware Resource-aware Objectif : Permet la sélection des services en fonction des ressources requises Contexte utilisé : Contexte de déploiement Acteur : Concepteur du composant Forme de règles: CA Exemple : si ressources requises < ressources disponibles déployer sur site Service-dependency aware Composant d'adaptation 20
&!" Composant de gestion de contexte Composant décisionnel Comment? : Définition de règles d auto auto-adaptationadaptation Types de règles pour l auto-adaptation adaptation Use-aware Resource-aware Service-dependency aware Objectif : permet la sélection des services en fonction de leurs dépendances Contexte utilisé : Contexte logiciel Acteur : Composant Forme de règles: voir transparents suivants Exemple : Regroupement en fonction des dépendances Composant d'adaptation 21
'!" Règle : Service-dependency aware Quoi? Sélection des services en fonction de leurs dépendances Pourquoi? Minimiser le surcoût lié aux communications entre les sous- composants générés Comment? Principe / "0 ) Réalisation 2 # 3 /0 # 3 / 0 * 22
(!" Règle : Service-dependency aware Calcul du couplage entre deux services S i et S j Calcul de la cohésion entre deux services S i et S j Calcul de proximité entre deux services S i et S j 23
(!" Règle : Service-dependency aware Calcul du couplage entre deux services S i et S j La probabilité que le service S i appelle S j tel que S j S fourni S requis, notée P use (S i, S j ) et inversement Le nombre moyen d'appels de S i à S j tel que S j S fourni S requis, noté M moy (S i, S j ) et inversement Les nombres moyens de paramètres pour l'appel des services S i et S j, notés Nb param (S i ) et Nb param (S j ) Les types des paramètres: pondération par la taille mémoire moyenne (en octet) des paramètres envoyés notées T param (S i ) et T param (S j ). 24 Calcul de la cohésion entre deux services S i et S j Calcul de proximité entre deux services S i et S j
(!" Règle : Service-dependency aware Calcul du couplage entre deux services S i et S j Calcul de la cohésion entre deux services S i et S j : La probabilité de mise à jour d'une ressource dans S i partagée avec S j tel que S j S fourni, notée P update (S i, S j ) et inversement La probabilité de déclencher une section critique dans S i relative à une ressource partagée avec S j tel que S j S fourni, notée P critical (S i, S j ) et inversement Le nombre de ressources partagées entre S i et S j, noté Nb rp (S i, S j ) Le type de ressources partagées entre S i et S j : pondération par la taille mémoire moyenne des ressources partagées, noté T rp (S i, S j ) 25 Calcul de proximité entre deux services S i et S j
(!" Règle : Service-dependency aware Calcul du couplage entre deux services S i et S j Calcul de la cohésion entre deux services S i et S j Calcul de proximité entre deux services S i et S j 26
)!" Règle : Service-dependency aware Principe de l algorithme de clustering Deux types de clusters # # -' # 4 ) Recherche les deux clusters les plus proches %% Deux cas possibles 3 % # * % 3 % # * Recalculer la proximité entre les nouveaux clusters Réitération tant que chaque cluster de service n est pas associé à un site 27
*!" Exemple 28 S 1 S 2 S 3 S 4 S 5 S 5 S 6 C C 2 1 Site 1 S 6 Site 2 C 3 Contexte applicatif
!" 29
#!" 30 S 1 S 2 S 3 S 4 S 5 S 5 S 6 C C 2 1 Site 1 S 2 S 4 S 5 S 5 S 6 C 1 C 2 S 1 Site 2 S 6 C 3 S 3 Site 1 Déclenchement de l adaptation structurelle et génération automatique du script d adaptation S 1 S 3 S 6 S 6 S 5 C 3 C 1 S 2 S 4 Site 2 Processus d adaptation structurelle dynamique
$!" Composant de gestion de contexte Composant décisionnel Composant d'adaptation Rôle : Construire, à la volée, de nouveaux composants à partir des composants incassables existants. 31 Principe : Composants formés par encapsulation des composants incassables au seins de sous-composants composites
!!" Composant de gestion de contexte Composant décisionnel Composant d'adaptation 32
33 +, Bilan Auto-adaptation structurelle dynamique Ré-ingénierie du composant sous format canonique Introduction de mécanismes d auto auto-adaptationadaptation Reconfiguration dynamique du composant Approche d auto-adaptation adaptation Génération automatique de la stratégie d adaptation
34 +, Perspectives Adaptation structurelle d application à base de composants Quoi Pourquoi 5 6 Comment - % # * # *
35 +, Perspectives Modèle de composants orientés services Quoi 7 8 $ # 4 +* Pourquoi # 9 # 4' # * # Comment - )
36 -. http://ocm.ensm ocm.ensm-douai.fr/bastide/