Programmation par aspect et Machine Virtuelle Virtuelle



Documents pareils
1270 RSTI-TSI. Volume 23 - n 10/ Introduction

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

Vulgarisation Java EE Java EE, c est quoi?

Annexe : La Programmation Informatique

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Instrumentation de code Java

Java Aspect Components (JAC)

Chapitre 4: Introduction au Cloud computing

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Cloud Computing. Introduction. ! Explosion du nombre et du volume de données

Curriculum Vitae 1 er février 2008

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

Système d administration autonome adaptable: application au Cloud

Software Engineering and Middleware A Roadmap

Master (filière Réseau) Parcours Recherche: Systèmes Informatiques et Réseaux (RTS)

VMware Infrastructure The New Computing Platform. Stéphane CROIX Systems Engineer

Prise en compte des ressources dans les composants logiciels parallèles

Liste de conférences et revues Thème Com A

La technologie Java Card TM

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Chapitre 2 : Abstraction et Virtualisation

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Conception des systèmes répartis

Hébergement MMI SEMESTRE 4

La carte à puce. Jean-Philippe Babau

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

Machines virtuelles Cours 1 : Introduction

Introduction aux Machines Virtuelles avec VMKit

Communications performantes par passage de message entre machines virtuelles co-hébergées

Détection d'intrusions en environnement haute performance

Ecole Mohammadia d Ingénieurs Systèmes Répartis Pr. Slimane Bah, ing. PhD G. Informatique Semaine 24

L accès aux Clouds (Académiques)

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

en version SAN ou NAS

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing

Formula Negator, Outil de négation de formule.

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Virtualisation de postes de travail et d application. Jean-Claude DAUNOIS Senior Systems Engineer VMware

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

La gestion du poste de travail en 2011 : Panorama des technologies

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

vbladecenter S! tout-en-un en version SAN ou NAS

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

La Continuité d Activité

Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise

1 JBoss Entreprise Middleware

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

Systèmes d'informations historique et mutations

Java - la plateforme

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

Microsoft Dynamics AX. Solutions flexibles avec la technologie Microsoft Dynamics AX Application Object Server

Génération de code binaire pour application multimedia : une approche au vol

Introduction aux applications réparties

CAHIER DES CHARGES D IMPLANTATION

NFP111 Systèmes et Applications Réparties

Equilibrage de charge (Load

Architectures informatiques dans les nuages

Projet ViSaGe : implémentation de l administration et du monitoring de ViSaGe (Virtualisation du Stockage appliquée aux Grilles informatiques)

Le poste virtualisé. Vers la simplification du poste de travail. Stéphane Pichevin Responsable poste de travail virtualisé Sun Microsystems

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Délivrer des postes de travail virtuels et des applications virtuelles en utilisant des technologies Open Source

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

OmniVista 2700 Application complémentaires pour l OmniVista 2500 Network Management

La tête dans les nuages

Éléments de programmation et introduction à Java

Vers une meilleure gouvernance des plateformes d ingénierie

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

Mesure et modélisation de l énergie logicielle

DES SAUVEGARDES ET DES RESTAURATIONS DE DONNEES SANS CONTRAINTES DE LIEU NI DE TEMPS

L'automatisation open source pour SI complexes

Virtualisation & Sécurité

Portage d applications sur le Cloud IaaS Portage d application

INDUSTRIALISATION ET RATIONALISATION

Virtualisation pour un data centre flexible. Imed Chihi Fedora 12 Release Party, 05 Décembre 2009 ISET Charguia, Tunis

Guide de poche. Get Wyse. Go Far. * Bienvenue dans le Cloud Client Computing de Wyse. En savoir plus. * Avec Wyse, vous irez loin.

Serveur d'application à la juste taille

Windows Server Chapitre 1: Découvrir Windows Server 2008

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Fribourg. Une démarche de spécification, de. d applications à base de services Web auto-adaptables*

Mise en œuvre des serveurs d application

Assises de l Embarqué Projet ITEA2 Smart-Urban Spaces 28 Octobre Serge Chaumette, LaBRI, U. Bordeaux Jean-Pierre Tual, Gemalto

Section I: Le Contexte du DATA CENTER Pourquoi l AGILITE est Nécessaire dans le DataCenter

NIMBUS TRAINING. Administration de Citrix NetScaler 10. Déscription : Objectifs. Publics. Durée. Pré-requis. Programme de cette formation

Fusion : l interopérabilité chez Oracle

Caches web. Olivier Aubert 1/35

Java à Murex: un retour d'expérience. Jean-Pierre DACHER & Craig MORRISON

Sébastien Geiger IPHC Strasbourg

PRODUCTS LIST (updated 11th January 2010)

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Module BD et sites WEB

Introduction aux Bases de Données Relationnelles Conclusion - 1

Projet de Veille Technologique

Rapport d activité. Mathieu Souchaud Juin 2007

au Centre Inter-établissement pour les Services Réseaux Cédric GALLO

Architecture de la grille

RFID: Middleware et intégration avec le système d'information Olivier Liechti

Table des matières Chapitre 1 Virtualisation, enjeux et concepts Chapitre 2 Ligne de produit XEN

Transcription:

Programmation par aspect et Machine Virtuelle Virtuelle Bertil Folliot LIP6 / CNRS, Université Pierre et Marie Curie, Paris 6 INRIA Regal Bertil.Folliot@lip6.fr JTE ASF-SIGOPS, AOP, Lille, septembre 2005 Ce projet est, ou a été, partiellement financé par les projets RNRT Phenix (99S0361), France Télécom R&D ISA (001B117), GEMPLUS, le LIP6 (PLERS 2000), la communauté européenne (IST COACH-34445) et Web2Grid. Bertil.Folliot@lip6.fr http://vvm.lip6.fr AOP & MVV - 1 Plan 1. Problématique autour des environnements d'exécution 2. Objectifs de la Machine Virtuelle Virtuelle 3. Programmation de la MVV 4. MVV & AOP : exemples d applications 5. Conclusion AOP & MVV - 2

Introduction : besoins de la flexibilité logicielle Multitudes de normes et de standards (de facto ou de jure) ODP, CORBA, CCM, JAVA, EJB, DCOM,.NET, JINI, BLUETOOTH Technologies logicielles rigides (!) Multiplication des cas particuliers Qualité de Service, tolérance aux fautes, performances, taille Multiplication des «domaines informatiques» travail coopératif, télétravail, multimédia, mondes virtuels, réseaux actifs, domotique, informatique «embarqué», GRID Évolution rapide du matériel loi de Moore valide pour les X prochaines années (?) PC, PDA, Cartes à puces, étiquettes électroniques AOP & MVV - 3 Où est le problème? La recherche en système/intergiciel n est plus d en re-faire trop long, trop coûteux, trop rigide + cf. évolution du matériel Les besoins des «domaines informatiques» (applications émergentes) changent les objectifs des logiciels (performances) : répartition géographique des utilisateurs et des ressource, forte contrainte de sécurité (données sensibles, copyright, droits d'accès), modèles de données complexes et réparties, configurations dynamiques de partenaires hétérogènes, conditions d interactions inconnues lors de la conception. AOP & MVV - 4

Pourquoi est-ce un problème? Chaque «domaine» à un environnement d exécution adapté (langage, API, OS ou «colle OS») ex1 : impression - postscript / dvips - «imprimer» / printcap - sél. d imprimante ex2 : réseaux actifs - langage dédié (bytecode) / send-receive / OS? Le nombre de domaines est en forte augmentation fonction du matériel (PDA ) ou du logiciel - QdS (réalité virtuelle) Les besoins changent/évoluent au cours de l exécution cf. Internet (latence, bande passante, «hot spot of the week») spécifications initiales (matériel, QdS) NOUVEAUX langages et/ou API et/ou OS MAIS figé et/ou non interopérable et/ou difficile à réutiliser AOP & MVV - 5 Un exemple : les machines virtuelles Machines virtuelles classiques (ex : Java VM) En utilisation croissante pour résoudre les problèmes systèmes Applications portables, code compact sure, (un peu) spécialisable Chargement de bytecode, interprétation, JIT-C MyAppli main() { execution engine object - loader MV classique AOP & MVV - 6

Contre-exemple : les machines virtuelles Le «domaine» de la JVM suppose : beaucoup de mémoire, pas (peu) d accès à l OS, pas (beaucoup) de QdS f(matériel)? carte à puce (JavaCard), téléphone (KVM) f(propriétés)? persistance (Pjama), temps réel (RT-Java) f(temps qui passe)? gestion de crise (FT-Java) Les MVs sont une étape dans la bonne direction, MAIS : peu flexible (nouveau domaine => nouveau langage + nouvelle MV) peu adaptable difficilement interopérable AOP & MVV - 7 Alors quelle approche? Ne pas travailler pour le cas général (en général ça fonctionne bien), mais travailler sur le minimum (KISS) Extraire la complexité de la solution (système) vers une représentation de haut niveau Notre solution : Virtualiser la machine virtuelle = MVV coupe transversale depuis l application jusqu au matériel ou comment construire l environnement d exécution idéale (adaptée) à un problème particulier AOP & MVV - 8

Solution : les MVVs Virtualiser la machine virtuelle = MVV MVV = [MV]V est une plate-forme d'exécution (MV) dans laquelle on construit son environnement d'exécution (appelé MVlet) : langage, API, modules systèmes Une MVlet correspond à un domaine d'application Spécification exécutable de haut-niveau (écrite en langage VVM) Chargeable/déchargeable dynamiquement Vérification des propriétés Un mécanisme d'exécution au sein de la MVV pour toutes les MVlets Environnement d exécution «actif» AOP & MVV - 9 Architecture de la MVV My appli (type SuperVM) (something to do) My SuperVMlet Application loader (define-instruction ()) (define-object ()) (define-syntax ()) (define-primitives ()) (define-loader ()) (use-os-module ()) VMlet loader "SuperVM" "SuperVM" "SuperVM" Execution engine - Virtual processor Object memory VVM µ-vm {OS,ø} {CPU, memory, I/O} AOP & MVV - 10

Pourquoi l approche MVV résout le problème Adaptabilité/spécialisation du support d'exécution aux divers domaines - ou aux applications elles-mêmes (OS + langage) Flexibilité/extensibilité pour ajouter/modifier des fonctionnalités, en fonction de l'application, de son utilisation ou des évolutions matérielles (configuration/re-configuration + déploiement) Interopérabilité pour l'échange de données entre applications, pour la mobilité (code et/ou donnée) et pour favoriser la réutilisation Prise en compte de la logique métier (expérience PLERS) tout ne peut/ne doit être adaptable/flexible/interopérable AOP & MVV - 11 Programmation des VMlets Langage interne de la VVM [Scheme] Programmation de VMlets de langages de programmation : C (un lexeur/parseur) Java (un lexeur/parseur + une VM Java complète) [JnJVM] autres Programmation de VMlets de langages de programmation spécialisées (DSL) : Compilateur : multimédia [Compilette] Système : temps -réel [VMlet-BOSSA] Applications : réseaux actifs [ANTSlet/PLANet], cache Web [CNN], monitoring [C/SPAN] Méthodologies : VVM & AOP? AOP & MVV - 12

AOP (en bref) Séparation des préoccupations, modularisation, inversion de contrôle, adaptation Point de jonction + Tisseur (Langage de programmation + moteur statique/dynamique) AspectJ, AspectWerkz, Jac, Steamloom VMlet : généralisation de l AOP (ou le contraire)? Point de jonction : l adresse (l objet, la méthode, la classe, la bibliothèque, etc.) Tisseur manuel Aspects multiples Vérification AOP & MVV - 13 VMlets et aspects Compilation (non?) Système (oui!) : temps-réel, etc. Applications? AOP & MVV - 14

Système : VMlet-Bossa Application (pid 13024) VMlet-Bossa (use-os-module bossa ) Politique Linux Politique EDF (root) Loader : XWin VM temps-réel VVM µ-vm Linux {OS,ø} 2.4 (bossa) {CPU, memory, I/O} scheduler Bossa AOP & MVV - 15 Applications? Exemple d un cache Web Cache local de documents distants Trois politiques: remplacement, coopération, cohérence Pour le remplacement: pas d algorithme optimal algo. de système de gestion de fichiers (FIFO, LRU, LFU ) algo. spécifique au Web (Hybrid, LNC-R-W3, MIX, Greedy Dual Size ) Réalisation d une WebCacheLet - Avantages : Une nouvelle politique s'écrit (en Scheme) en ~10 minutes Se charge et se compile dans la MVV en 50 ms Se change (si elle était déjà compilée) en 0,57 ms Benchmarks : ajout/changement de politique, observation à la volée, mode trace L'API du cache Web EST le cache lui-même Est-ce un aspect? AOP & MVV - 16

VMlet Web cache filter Nouvelle politique : [E. Casalicchio and M. Colajanni, Scalable Web Cluster with Static and Dynamic Contents, Proceedings of the IEEE International Conference on Cluster Computing (CLUSTER 2000), Chemnitz, Germany, December 2000.] ;; VMlet new replacement policy (define filterpolicy (lambda (doc) (if (= 0 (:system.strncmp (:httphdr.typemime doc) "text" 4)) (GDS-cost doc) (SIZE-cost doc) ) ) ) AOP & MVV - 17 Tissage? VMlet de reconfiguration ;; VMlet reconfiguration function (define xevalswitch (lambda (newpolicy size) (let [(head 0) (oldcost 0)] (set! currentreview newpolicy) (set! head (getworst repository size)) (while head(set! oldcost (:docs.cost (:cell.data head))) (currentreview (:cell.data head)) (:httpr.updt repository (:cell.data head) oldcost) (set! head (:cell.next head)))))) ;; VMlet reconfiguration command (xevalswitch filterpolicy (/ (httpr.size repository) 5)) AOP & MVV - 18

Cache Web auto-adaptable VMlet cache Web flexible [CNN] + PANDORA (plate-forme de monitoring auto-adaptable) (+ qq. lignes de codes C d intégrations PANDORA/VVM) = Cache web flexible auto-adaptable [C/SPAN] AOP & MVV - 19 VVM et AOP : synthèse Les VMlets sont des aspects (qui sont des VMlets qui ) Le tisseur est une VMlet (qui est un aspect qui ), mais écrit par ~le même programmeur Le tissage et les aspects sont gérés par la VVM VMlet de Tissage d aspect? Langage d entrée : XML [VMletXML] (stage DEA 2003) Tisseur : VMletJAP (stage DEA 2005) Tisseur dynamique d aspects avec les performances d un tissage statique et qui reste flexible/adaptable/interopérable AOP & MVV - 20

Par rapport à l'existant Machines virtuelles spécialisables génération d'une MV en fonction des performances, de la taille du code, du domaine, etc. (JavaCard, PLAN, Harissa) : peu/pas extensible, le même travail doit être refait pour chaque domaine Système d'exploitation flexible / MOP changement de fonctionnalités et d'interfaces (SPIN, ExoKernel, Fluke, Xen) / Aperios : un unique langage dédié, difficile à manipuler (et à imposer) Systèmes embarqués MultOS, Windows CE, SCP, µclinux, KVM (Sun - réutilisation de CCG-LIP6) : différences avec la problématique? Interopérabilité des langages exécution de plusieurs langages (Java, Smalltalk, VisualBasic pour la Machine Virtuelle Universelle d'ibm) : basé sur une MV existante (Smalltalk), pas extensible AOP & MVV - 21 Conclusion : vers un environnement d'exécution actif Mise à jour de la plate-forme à la volée Délocalisation des fonctionnalités Interopérabilité extrême échanges de données et de fonctionnalités (même pour des application écrites dans différents langages) applets, agents Le (difficile) travail de construire l'environnement d'exécution, n'est fait qu'une fois pour un domaine optimisation agressive, spécialisation dynamique Facilité de programmation (langage de haut niveau et services systèmes dédiés au problème à résoudre) : réduction du temps de mise sur le marché, pas de langage de programmation unique. AOP & MVV - 22

Questions? AOP & MVV - 23 Références - VVM http://vvm.lip6.fr/ VVM : [Bertil Folliot, Ian Piumarta, Fabio Riccardi. Virtual Virtual Machine. Cabernet Radical Workshop, Crète, Septembre 1997.] [Ian Piumarta, Bertil Folliot, Lionel Seinturier, Carine Baillarguet. Highly configurable operating systems: the VVM approach. Proc. of ECOOP'2000 Workshop on Object Orientation and Operating Systems, Cannes, Juin 2000.] [Bertil Folliot, Ian Piumarta, Lionel Seinturier, Carine Baillarguet, Christian Khoury, Arthur Léger, Fréderic Ogel. Beyond flexibility and reflection: the virtual virtual machine approach. NATO Advanced Research Workshop, Environments, Tools and Applications for Cluster Computing. LNCS 2326, Springer-Verlag, pp. 17-26, 2002.] [Frédéric Ogel, Bertil Folliot, Ian Piumarta. On Reflexive and Dynamically Adaptable Environments for Distributed Computing. Proc. 3rd International Workshop on Distributed Auto-adaptive and Reconfigurable Systems, ICDCS 2003, IEEE, Providence, Rhode Island, Mai 2003.] YNVM : [Ian Piumarta, Frederic Ogel, Bertil Folliot. YNVM: dynamic compilation in support of software evolution. In Proc. Ingeneering Complex Object Oriented System for Evolution, OOPSLA, Tampa Bay, Floride, Octobre 2001.] VVM et ORB dynamique : [Bertil Folliot, Ian Piumarta, Lionel Seinturier. Middleware and Reflective Features of the Virtual Virtual Machine. Proc. of Workshop on Reflective Middleware, IFIP/ACM Middleware 2000, New York, USA, pp. 8-9, Avril 2000.] [Frédéric Ogel, Bertil Folliot, Ian Piumarta. On Reflexive and Dynamically Adaptable Environments for Distributed Computing. In Proc. 3rd International Workshop on Distributed Auto-adaptive and Reconfigurable Systems, ICDCS 2003, IEEE, Providence, Rhode Island, Mai 2003.] AOP & MVV - 24

Références : VMlets Réseaux actifs : [Christian Khoury, Bertil Folliot, Ian Piumarta. AAN: A Highly Reflective Active Network. In Proc. 20 st IASTED Applied Informatics Conference, Innsbruck, Autriche, Février 2002.] Web caching : [Ian Piumarta, Frederic Ogel, Carine Baillarguet, Bertil Folliot. Applying the VVM kernel to Flexible Web Caches. Proc IEEE Workshop on Hot Topics in Operating Systems, HOTOS-VII, Schloss Elmau, RFA, pp. 155, mai 2001.] extended version in research report INRIA. Corot : [Arthur Léger, Bertil Folliot, Damien Cailliau. Platform for Software Reconfiguration in Embedded Systems. Proc. of European Research Seminar on Advances in Distributed Systems, Bertinoro, Italie, Mai 2001.] [Damien Cailliau, Arthur Léger, Olivier Marin, Bertil Folliot. A joint middleware/configuration language approach for space embedded software update.proc. DAta Systems In Aerospace, DASIA 2001, (CSA, CNES, ESA), Nice, Mai 2001.] [Damien Cailliau, Arthur Léger, Bertil Folliot. Using high level configuration language for safer space software update. Proc. International Astronautical Congress de l'iaf, Toulouse, Octobre 2001.] Documents actifs : [Gaël Thomas, Bertil Folliot, Ian Piumarta. Documents actifs Journées des Jeunes Chercheurs en Systèmes, Chapitre français de l ACM-SIGOPS, Hammamet, Tunisie, pp. 441-447, Avril 2002.] AOP & MVV - 25