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