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

31
Olivier Le Goaër [email protected] GDR-GPL # Session IDM Bordeaux, 2015 Adaptation d'exécution Adaptation d'exécution de modèles de modèles Vers des iDSML adaptables Vers des iDSML adaptables

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

iDSMLiDSML

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

iDSML adaptableiDSML adaptable

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

Famille d'iDSML adaptableFamille d'iDSML adaptable

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

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 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

PerspectivesPerspectives

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

Questions ?Questions ?