Adaptation d'exécution de modèles : vers des iDSML adaptables
-
Upload
olivier-le-goaer -
Category
Software
-
view
84 -
download
2
Transcript of Adaptation d'exécution de modèles : vers des iDSML adaptables
Olivier Le Goaë[email protected]
GDR-GPL # Session IDMBordeaux, 2015
Adaptation d'exécution Adaptation d'exécution de modèlesde modèles
Vers des iDSML adaptablesVers des iDSML adaptables
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
Olivier Le Goaer @ GDR-GPL 2015
Compilation Compilation vs.vs. interprétation interprétation
Le modèle de mon système
S
Mon système exécutable
INTERPRETATION
Mon système exécutable =
le modèle à l’exécution
Design-timeDesign-time
Run-timeRun-time
COM
PILATIO
N
</xml>
sub{ }MDA ®
MM
exec(M)exec(M)
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 »)
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)
Olivier Le Goaer @ GDR-GPL 2015
Exemple de PDLExemple de PDL
Langage de description de processus (PDL)
Instant t
Instant t+1
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
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
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
Olivier Le Goaer @ GDR-GPL 2015
[email protected]@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
Olivier Le Goaer @ GDR-GPL 2015
[email protected] + [email protected] + 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
Olivier Le Goaer @ GDR-GPL 2015
Execution – Check – Action Execution – 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'adapterOpération booléenne de vérification (CHECK)
Entreprendre une adaptationOpération de modification (ACTION)
Orchestrer l'adaptationLier CHECKs et ACTIONs avec les opérations d'exécution existantes
EECCAAExecution – Check – Action
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
Olivier Le Goaer @ GDR-GPL 2015
iDSML adaptableiDSML adaptable
iDSML adaptable = iDSML augmenté par spécialisation● Partie adaptation + CHECK + ACTION
Olivier Le Goaer @ GDR-GPL 2015
Matrice exécution/adaptationMatrice exécution/adaptation
Opération Opération d'exécutiond'exécution
Opération d'adaptationOpération d'adaptationACTIONS
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é
men
ts d
e É
lém
ents
de
met
amo
dèl
em
etam
od
èle
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
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
Olivier Le Goaer @ GDR-GPL 2015
Adaptation générique Adaptation générique vs.vs. métier mé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 !
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)
EA
C
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)
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
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
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'orchestrationd'orchestration
Modèle d'orchestrationd'orchestration
Olivier Le Goaer @ GDR-GPL 2015
Modèle d'orchestrationd'orchestration
Modèle d'orchestrationd'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'orchestrationd'orchestration
Modèle d'orchestrationd'orchestration