100 likes | 291 Views
La machine virtuelle virtuelle utopie et/ou réalité ?. Bertil Folliot Ian Piumarta Lionel Seinturier Carine Baillarguet LIP6 /CNRS - thème SRC, Université Paris 6 INRIA Rocquencourt - projet SOR Bertil.Folliot@lip6.fr Lionel.Seinturier@lip6.fr www-sor.inria.fr/~vvm.
E N D
La machine virtuelle virtuelleutopie et/ou réalité ? Bertil Folliot Ian Piumarta Lionel Seinturier Carine Baillarguet LIP6 /CNRS - thème SRC, Université Paris 6 INRIA Rocquencourt - projet SOR Bertil.Folliot@lip6.fr Lionel.Seinturier@lip6.fr www-sor.inria.fr/~vvm
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
moteur d'exécution chargeur d'objets MyAppli main() {} MV classique 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 • MAIS • peu flexible (nouveau domaine => nouveau langage + nouvelle MV) • pas adaptable (évolution du langage) • pas intéropérable
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é
monAppli type: maVMlet main() { ... } maVMlet myPush { ... } getList { ... } def-ins myPush def-prim getList interpréteur optimiseur code natif générateur de code ressource minimale mémoire, E/S, CPU 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, … MV d'environnement système MV d'environnement applicatif
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
aspect aspect tresseur d'aspects méta modèle méta modèle Application augmentée par les aspects points de jonction points de jonction application compilation/ interprétation MVV & AOP Principe de la programmation par aspects
Niveau langage Niveau environnement d'exécution accès réflexif au code d'une application méta-modèle reconfiguration dynamique d'applications tresseur MVV & AOP • Gains escomptés • performances (recompilation dynamique) • facilité d'écriture du tresseur (MVlet)
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
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