Auto-optimisation de la Qualité de Service dans les
Transcription
Auto-optimisation de la Qualité de Service dans les
Sujet de thèse septembre 2009 Auto-optimisation de la Qualité de Service dans les Architectures à base de services : application à l’économie d’énergie Equipe : Ascola (EMN/INRIA), LINA - UMR 6241 (Université de Nantes, EMN, CNRS) Encadrant scientifique : Thomas Ledoux Directeur de thèse : Pierre Cointe Thèmes de recherche/Mots clés Conception de langages dédiés et langages d’aspects, mécanismes de composition pour gérer la QoS dans les architectures orientées services, adaptation au contexte, gestion autonome des architectures pour optimiser la QoS, économie d’énergie. Contexte et problématique Les Web services sont disponibles aujourd’hui sur des architectures logicielles à large échelle (grille de calcul, réseaux mobiles, applications web de type mashup, domotique, etc.) caractérisées par des environnements hautement dynamiques. Les ressources matérielles et logicielles qu’ils offrent peuvent apparaître, disparaître ou leurs caractéristiques (bande passante, temps de réponse, capacités de stockage, de calcul, etc.) peuvent évoluer au cours du temps. L’adoption des architectures orientées services (SOA pour Service-Oriented Architecture), nécessite donc de mettre en place des solutions « agiles », c’est-à-dire capables d’évoluer pour prendre en compte les adaptations dynamiques. L’objectif est de garantir la qualité de service (QoS pour Quality of Service) attendue par les utilisateurs de telles architectures mais aussi d’optimiser cette qualité de service en fonction du contexte d’exécution augmentant ainsi les champs d’application. Avec l’émergence du développement durable, l’un des critères majeurs de QoS va devenir le taux de consommation d’énergie des ressources informatiques. Alors que les constructeurs fournissent déjà des résultats sur l’optimisation de la consommation d’énergie de leurs machines, les éditeurs et autres intégrateurs devront dans l’avenir optimiser la QoS de leurs architectures logicielles en terme de consommation d’énergie. A titre d’exemple, une requête Google consomme 0,0003 kWh ce qui correspond également à une émission de 7g de CO2 ! Plusieurs travaux abordent la problématique de gestion de QoS dans les architectures SOA mais aucun d’eux n’est actuellement satisfaisant. Certains n’adressent pas l’adaptabilité dynamique [1,2], d’autres le concept émergent de SLA (Service Level Agreement) [3], beaucoup de solutions utilisent une approche par canevas logiciel (framework) qui rend difficile la mise en œuvre fiable de telles architectures [4,5,6] et trop peu de travaux proposent plusieurs niveaux de QoS (garantie de livraison, sécurité, etc.) [3,15]. Enfin, l’optimisation de la consommation d’énergie dans les architectures SOA est encore peu abordé [19, 20]. En résumé, les approches actuelles n’offrent pas de garantie de composition dynamique, fiable de plusieurs préoccupations de QoS pour les architectures orientées services et adressent peu la problématique de la gestion de l’énergie. Approche proposée Une voie prometteuse pour aborder ce défi est d’utiliser une approche langage. De récents travaux comme AO4BPEL [3], Dynamo [7] ou MASC [8] préconisent soit l’utilisation des langages d’aspects [9] pour ajouter des préoccupations (par ex, garantie de livraison) sur les orchestrations SOA (AO4BPEL), soit l’utilisation de langages déclaratifs pour superviser la QoS et proposer des actions de recouvrement lors de violation (Dynamo, MASC). Sujet de thèse septembre 2009 Cependant, ces propositions offrent certaines limites (complexité, manque d’expressivité, problème de fiabilité, vérification syntaxique seulement basée sur XML) que nous nous proposons de résoudre par une approche basée sur les langages dédiés (DSL) [10]. Un langage dédié est créé pour résoudre certains problèmes spécifiques dans un domaine particulier (comme la consommation d’énergie par exemple). Son expressivité est restreinte, ce qui facilite l'analyse des programmes et permet d’offrir des garanties sur le code spécifié. Ensuite, pour construire une solution SOA « agile », capable de s’adapter dynamiquement au contexte d’exécution, notre proposition de langages dédiés va s’inscrire dans une infrastructure de type système autonome (autonomic computing) [11] et interagira avec la boucle de contrôle. Les systèmes autonomes étant caractérisés par leur capacité à s’autoorganiser et notamment à s’auto-optimiser [12], il sera alors possible de proposer une solution pour l’auto-optimisation de la QoS dans les architectures SOA. Plan de travail La thèse se déroulera selon les étapes suivantes : - A l’instar de AO4BPEL et la programmation par aspects, nous allons nous intéresser à la conception d’un langage de coupe sur les orchestrations BPEL (Business Process Execution Language) pour désigner les activités BPEL concernées par la QoS. Le point de départ de notre approche sera FPath [13], un langage dédié à la sélection et à la navigation dans les architectures de composants Fractal [14]. - Puis, il sera possible d’étendre ce langage pour raffiner les coupes sur des critères de QoS liés aux activités. Pour cela, un modèle de SLA devra être défini intégrant des critères classiques (temps de réponse, débit, disponibilité, etc.) mais surtout la consommation d’énergie. Ce nouveau langage constituera un DSL pour la sélection fine des activités BPEL selon leur QoS. - Ensuite, nous nous intéresserons au(x) langage(s) d’action associé(s) permettant de gérer la QoS sur les coupes sélectionnées. Le point de départ pourra être QoSL4BP [15], un langage dédié à la spécification de la QoS pour les orchestrations BPEL. QoSL4BP qui traite actuellement plusieurs préoccupations de QoS (gestion et violation des accords entre contractants, 2-3 mécanismes WS-* comme la sécurité) pourra être spécialisé pour adresser indépendamment qu’une seule préoccupation. Cette spécialisation débouchera alors sur la problématique de composition fiable de DSLs [18]. - Enfin, nous nous inspirerons des résultats du projet Selfware [12] pour proposer une infrastructure autonomique capable d’observer les fluctuations de l’environnement (WildCAT [16]), de fiabiliser les adaptations de l’orchestration (approche transactionnelle [17]). - Finalement, nous expérimenterons ces premiers résultats dans le domaine du GreenIT et plus précisément dans un contexte d’applications domotiques proposé dans le cadre de l’ADT INRIA Galaxy (http://galaxy.gforge.inria.fr), un projet inter-équipes INRIA qui vise au développement d’une plate-forme « SOA » agile. Positionnement Le sujet proposé est au coeur des activités scientifiques de l'équipe INRIA Ascola sur la structuration et l'évolution des logiciels, aussi bien dans le cadre de divers projets européens STREP (comme Ample) et nationaux ANR (comme SelfXL) que du développement du génie logiciel au sein de l’UMR LINA. Le domaine d’application proposé, c.à.d. l’optimisation de la consommation d’énergie, s’inscrit dans la recommandation « Défis sociétaux et environnementaux » transmise à l’INRIA dans le Rapport du Comité d’évaluation externe de l’INRIA fin 2008. Sujet de thèse septembre 2009 Profil du candidat Le candidat possèdera une certaine expérience dans le domaine du génie logiciel, en particulier, par la définition et l'implémentation de langages de programmation. Une connaissance approfondie dans un ou plusieurs des domaines suivants sera appréciée : langages dédiés, systèmes autonomes, architectures orientées services. Bibliographie 1. Cardoso, J., Sheth, A., Miller, J., Arnold, J., Kochut, K. – Quality of Service for Workflows and Web Service Processes. Web Semantics: Science, Services and Agents on the World Wide Web 1(3), 281–308 (2004). 2. Zeng, L., Benatallah, B., Ngu, A.H.H., Dumas, M., Kalagnanam, J., Chang, H. – QoS-Aware Middleware for Web Services Composition. IEEE Transactions on Software Engineering, 30(5), 311–327, (2004). 3. Anis Charfi and Mira Mezini – Aspect-Oriented Web Service Composition with AO4BPEL. In Proceedings of the 2nd European Conference on Web Services (ECOWS), volume 3250 of LNCS, pages 168–182. Springer, September 2004. 4. Canfora, G., Di Penta, M., Esposito, R., Perfetto, F., Villani, M.L. – Service composition (re)binding driven by application-specific QoS. In: Dan, A., Lamersdorf, W. (eds.) ICSOC 2006. LNCS, vol. 4294, pp. 141–152. Springer, Heidelberg (2006). 5. Momotko, M., Gajewski, M., Ludwig, A., Kowalczyk, R., Kowalkiewicz, M., and Zhang, J. Y. – Towards adaptive management of QoS-aware service compositions. Multiagent Grid Syst. Vol.3, Issue 3, p.299-312., Aug. 2007. 6. Ezenwoye, O., Sadjadi, S.M. – TRAP/BPEL: A Framework for Dynamic Adaptation of. Composite Services. Technical Report FIU-SCIS-2006-06-02 (2006) 7. Baresi, L., Guinea, S. – Dynamo and Self-Healing BPEL Compositions. In ICSE COMPANION 2007: Companion to the proceedings of the 29th International Conference on Software Engineering, pp. 69–70. IEEE Computer Society, Washington (2007) 8. Tosic, V., Erradi, A., Maheshwari, P.: WS-Policy4MASC – A WS-Policy Extension Used in the MASC Middleware. In: IEEE SCC, pp. 458–465. IEEE Computer Society, Los Alamitos (2007) 9. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier et John Irwin – Aspect-Oriented Programming. In Proceedings of ECOOP’97, LNCS 1241, Springer-Verlag, p.220-242, Jyväskyla, Finlande, June 1997. 10. Marjan Mernik, Jan Heering, Anthony M. Sloane. – When and how to develop domainspecific languages. ACM Computing Surveys, 37(4):316–344, 2005. 11. J.O Kephart, D.M Chess – The vision of autonomic computing. In IEEE Computer, Vol. 36, Issue: 1, January 2003. 12. The Selfware project (http://sardes.inrialpes.fr/selfware) – ANR/RNTL 2006-2008. 13. Pierre-Charles David, Thomas Ledoux, Marc Léger and Thierry Coupaye – FPath and FScript: Language Support for Navigation and Reliable Reconfiguration Fractal Architectures. In Special issue on Software Components - The Fractal Initiative. Annals of Telecommunications, Institut TELECOM and Springer-Verlag France, Vol. 64, No 1-2, January-February 2009. 14. E. Bruneton, T. Coupaye, M. Leclerc, V. Quema, J-B. Stefani. – An Open Component Model and Its Support in Java. Software Practice & Experience Journal, Special Issue on Autoadaptive and Reconfigurable Systems, 2006. Sujet de thèse septembre 2009 15. Fabien Baligand, Nicolas Rivierre, Thomas Ledoux – QoS Policies for Business Processes in Service Oriented Architectures. In 6th International Conference on Service Oriented Computing (ICSOC’08), Springer-Verlag, LNCS Vol. 5354, Vienna, Sydney, Australia, December 2008. 16. Pierre-Charles David, Thomas Ledoux – WildCAT: a generic framework for context-aware applications. In the 3rd International Workshop on Middleware for Pervasive and Ad-Hoc Computing (MPAC 2005), ACM Digital Library, Grenoble, France, November 2005. 17. M. Léger, T. Ledoux and T. Coupaye – Reliable dynamic reconfigurations in the Fractal component model. In the 6th Workshop on Adaptive and Reflective Middleware (ARM 2007), Nov. 2007 18. É. Tanter and J. Noyé – A Versatile Kernel for Multi-Language AOP. In R. Glück and M. Lowry, editors, Proceedings of the 4th ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE 2005), Springer-Verlag, volume 3676 of Lecture Notes in Computer Science, pages 173–188, Tallinn, Estonia, Sept./Oct. 2005. 19. Zhao Xiangpeng, Cai Chao, Yang Hongli, Qiu Zongyan – A QoS View of Web Service Choreography. In IEEE International Conference on e-Business Engineering (ICEBE'07), pp. 607-611, 2007. 20. D. Ardagna, C. Cappiello, M. Lovera, B. Pernici, M. Tanelli. – Active Energy-Aware Management of Business-Process Based Applications. Position Paper. ServiceWave 2008 Proceedings, 183-195, Madrid, Spain, December 2008