1
La machine virtuelle virtuelleutopie et/ou réalité ?
Bertil Folliot Ian PiumartaLionel Seinturier Carine Baillarguet
LIP6 /CNRS - thème SRC, Université Paris 6INRIA Rocquencourt - projet SOR
[email protected]@lip6.frwww-sor.inria.fr/~vvm
2
Besoins des applications modernes
Environnement d'exécution actif
Adaptabilité/spécialisation : OS + langage
Flexibilité/extensibilité pour ajouter/modifier des fonctionnalités, en fonction de l'application, de son utilisation ou des évolutions matérielles
3
Machines virtuelles
Machines virtuelles “classiques” (ex : Java VM) En utilisation croissante pour résoudre les problèmes systèmes Applications portables, compactes, “sures”, (un peu) spécialisables
Chargement de bytecode, interprétation, JIT
MV classique
MyApplimain() {}
moteur d'exécutionchargeur d'objets
MAIS peu flexible (nouveau domaine => nouveau langage + nouvelle MV) pas adaptable (évolution du langage) pas intéropérable
4
Objectifs
Construire une plate-forme d'exécution (minimale) dans laquelle chaque expert informatique d'un domaine construit son environnement d'exécution (OS, API, langage) sur lequel les programmeurs développent les solutions
Adaptation et flexibilité et interopérabilité
5
Machine Virtuelle Virtuelle
MVV = une plate-forme d'exécution (MV) dans laquelle on construit son environnement d'exécution (appelé MVlet) : langage, API, modules systèmes, …
myPush { ... }getList { ... }def-ins myPushdef-prim getList
maVMlet interpréteur
optimiseur
générateurde code
code natif
ressource minimalemémoire, E/S, CPU
MV d'environnement système
MV d'environnement applicatif
type: maVMletmain() { ... }
monAppli
6
MVV & AOP
Programmation par aspects (AOP) améliorer et augmenter la modularité des applications gérer le code enchevêtré
Un aspect une unité de décomposition transverse [conception] aux fonctionalités de l'application une structure logicielle [implantation]
Transversalité des aspects inhérente dans les applications complexes traduit un besoin d'intégration de l'application dans son environnement ne peut pas forcément être traitée par les approches habituelles
7
MVV & AOP
Principe de la programmation par aspects
aspectaspect
tresseurd'aspects
Applicationaugmentéepar les aspects
compilation/interprétation
application
métamodèle
métamodèle
points dejonction
points dejonction
8
MVV & AOP
Gains escomptés
performances (recompilation dynamique) facilité d'écriture du tresseur (MVlet)
Niveaulangage
Niveau environnementd'exécution
méta-modèle
tresseur
accès réflexif au coded'une application
reconfigurationdynamique d'applications
9
MVV & Distribution des connaissances
Notion d'information active
La MVV sert de base pour concevoir un environnement d'exécution actif pour la mobilité et le partage d'information
Ajout dynamique de nouvelles connaissances (sous forme de règles, programmes, ...) pour traiter l'information
10
Réalisation
RVM et µ-MV Machines virtuelles à la Scheme Disponible (900Ko) sous licence GPL Générateur dynamique de code de MV Chargement dynamique de bibliothèque système
Applications Réseaux actifs : PLANlet et ANTSlet Satellite PLERS
reconfiguration logiciel pour le satellite COROT