Olivier Le Goaër
olivier.legoaer@univ-pau.fr
GDR-GPL # Session IDM
Bordeaux, 2015
Adaptation d'exécutionAdaptation d'exécu...
Olivier Le Goaer @ GDR-GPL 2015
Plan de la présentationPlan de la présentation
 Contexte : iDSML
 Problématique : iDSML ...
iDSMLiDSML
Olivier Le Goaer @ GDR-GPL 2015
CompilationCompilation vs.vs. interprétationinterprétation
Le modèle de
mon système
S
Mon ...
Olivier Le Goaer @ GDR-GPL 2015
Métaphore Harry PotterMétaphore Harry Potter
« Carte du maraudeur » (i.e. modèle)
Usage st...
Olivier Le Goaer @ GDR-GPL 2015
iDSML :iDSML : interpreted DSMLinterpreted DSML
 Et si on animait/actionnait les modèles ...
Olivier Le Goaer @ GDR-GPL 2015
Exemple de PDLExemple de PDL
 Langage de description de processus (PDL)
Instant t
Instant...
Olivier Le Goaer @ GDR-GPL 2015
Le iDSML « PDL »Le iDSML « PDL »
 iDSML = Metamodèle augmenté
● Partie statique : sert à ...
Olivier Le Goaer @ GDR-GPL 2015
Le iDSML « PDL »Le iDSML « PDL »
 iDSML = Metamodèle augmenté
● Partie statique : sert à ...
Olivier Le Goaer @ GDR-GPL 2015
Le iDSML « PDL »Le iDSML « PDL »
 iDSML = Metamodèle augmenté
● Partie statique : sert à ...
iDSML adaptableiDSML adaptable
Olivier Le Goaer @ GDR-GPL 2015
Model@run.timeModel@run.time
 Terme surchargé
● Traite majoritairement de
l'adaptation lo...
Olivier Le Goaer @ GDR-GPL 2015
Model@run.time + iDSMLModel@run.time + iDSML
 Traiter le cas particulier où le système
co...
Olivier Le Goaer @ GDR-GPL 2015
Execution – Check – ActionExecution – Check – Action
« Au cours de l'exécution de mon proc...
Olivier Le Goaer @ GDR-GPL 2015
Soyons pragmatique...Soyons pragmatique...
 Comment savoir si je suis en retard ?
● En l'...
Olivier Le Goaer @ GDR-GPL 2015
iDSML adaptableiDSML adaptable
 iDSML adaptable = iDSML augmenté par
spécialisation
● Par...
Olivier Le Goaer @ GDR-GPL 2015
Matrice exécution/adaptationMatrice exécution/adaptation
OpérationOpération
d'exécutiond'e...
Famille d'iDSML adaptableFamille d'iDSML adaptable
Olivier Le Goaer @ GDR-GPL 2015
Regroupement familial...Regroupement familial...
 Devient rapidement compliqué de gérer t...
Olivier Le Goaer @ GDR-GPL 2015
Hiérarchies de famillesHiérarchies de familles
Famille X
{Uri metamodèle X}
 Diagramme de...
Olivier Le Goaer @ GDR-GPL 2015
Adaptation génériqueAdaptation générique vs.vs. métiermétier
 Générique
● Stéréotypé « do...
Olivier Le Goaer @ GDR-GPL 2015
Diagramme pour l'exemple PDLDiagramme pour l'exemple PDL
Orchestration d'adaptationOrchestration d'adaptation
Olivier Le Goaer @ GDR-GPL 2015
OrchestrationOrchestration
 La sémantique d'adaptation naît de
l'orchestration des ECA en...
Olivier Le Goaer @ GDR-GPL 2015
iDSML d'orchestration ?iDSML d'orchestration ?
 L'orchestration de l'adaptation est écrit...
Olivier Le Goaer @ GDR-GPL 2015
Co-exécution de modèlesCo-exécution de modèles
Moteur pour Ω
Moteur pour Ω
Modèle de
type ...
Olivier Le Goaer @ GDR-GPL 2015
Modèle d'orchestrationModèle d'orchestration
 Inspiré des langages workflows
● Flot de co...
PerspectivesPerspectives
Olivier Le Goaer @ GDR-GPL 2015
Le graal de l'adaptation...Le graal de l'adaptation...
Moteur pour Ω
Moteur pour Ω
Modèle ...
Olivier Le Goaer @ GDR-GPL 2015
Modèle
d'orchestration
d'orchestration
Modèle
d'orchestration
d'orchestration
Le graal de ...
Questions ?Questions ?
Prochain SlideShare
Chargement dans…5
×

Adaptation d'exécution de modèles : vers des iDSML adaptables

844 vues

Publié le

Cette présentation traite de la question de l'adaptation des iDSML (interpreted DSML).

Publié dans : Logiciels
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
844
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
3
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Adaptation d'exécution de modèles : vers des iDSML adaptables

  1. 1. Olivier Le Goaër olivier.legoaer@univ-pau.fr GDR-GPL # Session IDM Bordeaux, 2015 Adaptation d'exécutionAdaptation d'exécution de modèlesde modèles Vers des iDSML adaptablesVers des iDSML adaptables
  2. 2. Olivier Le Goaer @ GDR-GPL 2015 Plan de la présentationPlan de la présentation  Contexte : iDSML  Problématique : iDSML adaptable  Vers la notion de famille  Orchestration d'adaptation  Perspectives
  3. 3. iDSMLiDSML
  4. 4. Olivier Le Goaer @ GDR-GPL 2015 CompilationCompilation vs.vs. interprétationinterprétation Le modèle de mon système S Mon système exécutable IN TER PR ETATIO N Mon système exécutable = le modèle à l’exécution Design-timeDesign-time Run-timeRun-time C O M PILATIO N </xml> sub{ } MDA ® MM exec(M)exec(M)
  5. 5. Olivier Le Goaer @ GDR-GPL 2015 Métaphore Harry PotterMétaphore Harry Potter « Carte du maraudeur » (i.e. modèle) Usage statique du modèle (design-time) Usage dynamique du modèle (run-time) ● Informe sur la structure du château Poudlard (pièces et passages) ● Informe sur les déplacements des personnes en temps réel (leurs « pas »)
  6. 6. Olivier Le Goaer @ GDR-GPL 2015 iDSML :iDSML : interpreted DSMLinterpreted DSML  Et si on animait/actionnait les modèles ? ● Simulation, V&V, prototypage rapide... ● Sauter carrément la phase d'implémentation  Moteur d'exécution (ou interpréteur) ● Implémente une sémantique d'exécution donnée sous une forme opérationnelle (i.e. qui va manipuler le modèle) – Par le biais d'un langage « d'animation » ou « d'action »Par le biais d'un langage « d'animation » ou « d'action » – Par le biais d'un langage de transformation (non abordé ici)Par le biais d'un langage de transformation (non abordé ici)  Nature exécutable des modèles (CIEL2015) ● Comportement du système incarné pleinement par le modèle ● Notion d'état courant (inclue celui initial) ● Notion de « pas » d’exécution (calcul du prochain état)
  7. 7. Olivier Le Goaer @ GDR-GPL 2015 Exemple de PDLExemple de PDL  Langage de description de processus (PDL) Instant t Instant t+1
  8. 8. Olivier Le Goaer @ GDR-GPL 2015 Le iDSML « PDL »Le iDSML « PDL »  iDSML = Metamodèle augmenté ● Partie statique : sert à représenter la structure du modèle (AST) ● Partie dynamique (état courant) + sémantique opérationnelle
  9. 9. Olivier Le Goaer @ GDR-GPL 2015 Le iDSML « PDL »Le iDSML « PDL »  iDSML = Metamodèle augmenté ● Partie statique : sert à représenter la structure du modèle (AST) ● Partie dynamique (état courant) + sémantique opérationnelle Opération d'exécution (sémantique) Partie dynamique
  10. 10. Olivier Le Goaer @ GDR-GPL 2015 Le iDSML « PDL »Le iDSML « PDL »  iDSML = Metamodèle augmenté ● Partie statique : sert à représenter la structure du modèle (AST) ● Partie dynamique (état courant) + sémantique opérationnelle Opération d'exécution (sémantique) Partie dynamique
  11. 11. iDSML adaptableiDSML adaptable
  12. 12. Olivier Le Goaer @ GDR-GPL 2015 Model@run.timeModel@run.time  Terme surchargé ● Traite majoritairement de l'adaptation logicielle  Avantage ● Offre un support de raisonnement (abstraction) pour l'adaptation  Inconvénient ● Maintenir le lien causal : M doit rester le reflet fidèle de S M S adaptation ? représentation modification Boucle d'adaptation
  13. 13. Olivier Le Goaer @ GDR-GPL 2015 Model@run.time + iDSMLModel@run.time + iDSML  Traiter le cas particulier où le système considéré est un modèle à l’exécution  Aplatir la boucle est un choix raisonnable ● évacue la problématique du lien causal... ● ...mais fait naître un modèle M'' plus riche (moins abstrait ?) M S = exec(M') adaptation ? représentation modification S = exec(M'') adaptation ? modification flatteningflattening
  14. 14. Olivier Le Goaer @ GDR-GPL 2015 Execution – Check – ActionExecution – Check – Action « Au cours de l'exécution de mon processus, si je suis en retard, alors je dois y remédier » Détecter la nécessiter d'adapter Opération booléenne de vérification (CHECK) Entreprendre une adaptation Opération de modification (ACTION) Orchestrer l'adaptation Lier CHECKs et ACTIONs avec les opérations d'exécution existantes EECCAA Execution – Check – Action
  15. 15. Olivier Le Goaer @ GDR-GPL 2015 Soyons pragmatique...Soyons pragmatique...  Comment savoir si je suis en retard ? ● En l'état, rien ne me permet de détecter cette situation – « Exige de confronter la réalité de l'exécution avec ce qui est modélisé »« Exige de confronter la réalité de l'exécution avec ce qui est modélisé »  Et si oui, que dois-je faire ? ● Sauter une activité ? La supprimer ?... cela a-t-il même un sens ? ● Pas facile de savoir avec aussi peu d'information Plus le métamodèle PDL est spécialisé (étendu + contraint), plus il est aisé de faire émerger des CHECK et des ACTIONS CONSTAT
  16. 16. Olivier Le Goaer @ GDR-GPL 2015 iDSML adaptableiDSML adaptable  iDSML adaptable = iDSML augmenté par spécialisation ● Partie adaptation + CHECK + ACTION
  17. 17. Olivier Le Goaer @ GDR-GPL 2015 Matrice exécution/adaptationMatrice exécution/adaptation OpérationOpération d'exécutiond'exécution Opération d'adaptationOpération d'adaptation ACTIONS Partie statique Read only Create/Update/Delete Partie dynamique Create/Update/Delete Create/Update/Delete Partie adaptation Read only Create/Update/Delete Opération d'exécution N/A Substitute Opération d'adaptation N/A Substitute Bilan des manipulations de modèle autorisées ÉlémentsdeÉlémentsde metamodèlemetamodèle
  18. 18. Famille d'iDSML adaptableFamille d'iDSML adaptable
  19. 19. Olivier Le Goaer @ GDR-GPL 2015 Regroupement familial...Regroupement familial...  Devient rapidement compliqué de gérer tous les éléments introduits par spécialisation ● Quel métamodèle ? Avec quels E, pour quels C, avec quels A ?  Solution : regrouper tous les éléments connexes dans une brique de base réutilisable appelée famille ● Une famille est liée à un métamodèle donné ● Elle offre la garantie que les E, C et A ont été prévus pour s'appliquer à tout modèle instance de ce métamodèle ● L'ingénieur logiciel « pioche » dans les E,C et A pour définir la sémantique d'adaptation de son choix
  20. 20. Olivier Le Goaer @ GDR-GPL 2015 Hiérarchies de famillesHiérarchies de familles Famille X {Uri metamodèle X}  Diagramme de famille ● Syntaxe « à la UML » ● Héritage multiple possible  Hiérarchie ● Principe de substitution : une adaptation écrite pour X est valable aussi pour X' ● Degré de réutilisation inversement proportionnel au niveau de profondeur Famille X' {Uri metamodèle X'} E C A E C A
  21. 21. Olivier Le Goaer @ GDR-GPL 2015 Adaptation génériqueAdaptation générique vs.vs. métiermétier  Générique ● Stéréotypé « domain » ● C et A s'écrivent de manière totalement indépendante du contenu du modèle ● Haut degré de réutilisation. Plus difficile à identifier.  Métier ● Stéréotypé « business » ● C et/ou A s'écrivent en présupposant le contenu du modèle ● Faible de degré de réutilisation. Très facile à trouver. « Si je suis en retard dans mon processus, je saute la prochaine activité qui l'autorise » « Si je suis en retard dans ma 'préparation des légumes', je saute l'activité 'aiguiser couteaux' » Fonctionne quel que soit le processus modélisé (dev. logiciel, recette cuisine, ...) Ne fonctionne que pour les recettes de cuisine !
  22. 22. Olivier Le Goaer @ GDR-GPL 2015 Diagramme pour l'exemple PDLDiagramme pour l'exemple PDL
  23. 23. Orchestration d'adaptationOrchestration d'adaptation
  24. 24. Olivier Le Goaer @ GDR-GPL 2015 OrchestrationOrchestration  La sémantique d'adaptation naît de l'orchestration des ECA ensemble ● Intercepter l'exécution E ● Vérifier les conditions C ● Appliquer les actions A le cas échéant  Techniques envisageables ● Programmation classique – E,C et A mélangés à travers le langage d'actionE,C et A mélangés à travers le langage d'action ● Programmation par contrat – Précondition (C) sur opération d'exécution (E) avec branchement vers bloc APrécondition (C) sur opération d'exécution (E) avec branchement vers bloc A ● Programmation par aspect – Point cut (E&C) et advice around (A)Point cut (E&C) et advice around (A) E A C
  25. 25. Olivier Le Goaer @ GDR-GPL 2015 iDSML d'orchestration ?iDSML d'orchestration ?  L'orchestration de l'adaptation est écrite programmatiquement par l'ingénieur ● Manque d'abstraction ● Difficile à changer. Impossible de le faire « à chaud »  Aller plus loin en la modélisant à son tour ● Externaliser l'orchestration de l'adaptation dans un modèle à part, conforme à un metamodèle ● Ce modèle DOIT être exécutable : nécessite un iDSML  Le moteur d’exécution sera écrit une fois pour toute ● Sémantique d'exécution opérationnelle … d'adaptation (o_O)
  26. 26. Olivier Le Goaer @ GDR-GPL 2015 Co-exécution de modèlesCo-exécution de modèles Moteur pour Ω Moteur pour Ω Modèle de type Ω Modèle de type Ω Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur d'orchestration CallBack() sur C et A et E Délégation sur E Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Modèle de type Ω Modèle de type Ω iDSML Ω iDSML d'orchestration
  27. 27. Olivier Le Goaer @ GDR-GPL 2015 Modèle d'orchestrationModèle d'orchestration  Inspiré des langages workflows ● Flot de contrôle minimaliste entre les E, les C et les A ● + système de « tags » pour le flot de données (travaux en cours) E A C Process::run() Instant t
  28. 28. PerspectivesPerspectives
  29. 29. Olivier Le Goaer @ GDR-GPL 2015 Le graal de l'adaptation...Le graal de l'adaptation... Moteur pour Ω Moteur pour Ω Modèle de type Ω Modèle de type Ω Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur d'orchestration CallBack() sur C et A et E Délégation sur E Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Modèle de type Ω Modèle de type Ω Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur d'orchestration CallBack() sur C et A et E Délégation sur E Modèle d'orchestration d'orchestration Modèle d'orchestration d'orchestration
  30. 30. Olivier Le Goaer @ GDR-GPL 2015 Modèle d'orchestration d'orchestration Modèle d'orchestration d'orchestration Le graal de l'adaptation...Le graal de l'adaptation... Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur d'orchestration Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur pour Ω Moteur pour Ω Modèle de type Ω Modèle de type Ω CallBack() sur C et A et E Délégation sur E Modèle de type Ω Modèle de type Ω Modèle d'orchestration d'orchestration Modèle d'orchestration d'orchestration
  31. 31. Questions ?Questions ?

×