Administration Autonome d’Applications Réparties

DANIEL HAGIMONT


Problématique

Les environnements informatiques d’aujourd’hui sont de plus en plus sophistiqués. Ils intègrent de nombreux logiciels complexes qui coopèrent dans le cadre d’une infrastructure logicielle, potentiellement à grande échelle. Ces logiciels se caractérisent par une grande hétérogénéité, en particulier en ce qui concerne les modèles de programmation utilisés pour les concevoir et les développer. De plus, ces logiciels fournissent des fonctions d’administration elles aussi marquées par une grande hétérogénéité en termes d’interfaces d’utilisation.
Parmi ces opérations d’administration, on trouve principalement :
L’administration des logiciels dans une infrastructure répartie pose de nombreux problèmes, provenant de la complexité des logiciels ainsi que du fait qu’elle est généralement effectuée par des humains :

Approche

Une approche prometteuse pour traiter ces problèmes est de concevoir un logiciel d’administration autonome (ou auto-géré). Un tel logiciel est alors utilisé pour installer, déployer et configurer les logiciels administrés. Ce logiciel peut également observer l’environnement d’exécution et les logiciels qu’il administre, et réagir à des événements comme des pannes ou des montées de la charge, afin de reconfigurer les logiciels de façon autonome (sans intervention humaine). Les principaux avantages de cette approche sont :
Dans le groupe de recherche que j’anime, nous explorons la conception et la réalisation d’un logiciel d’administration autonome, baptisé Jade [2,4]. Jade repose sur les concepts suivants :
Un prototype a été développé et est opérationnel. Il met en oeuvre une administration autonome visant la réparation des applications en cas de pannes et l'adaptation dynamique de ces applications afin de gérer le passage à l'échelle. Il sera étendu afin de traiter d’autres aspects d’administration. Je décris dans la section suivante quatre cibles applicatives sur lesquels nous avons entrepris des travaux.

Applications

Serveurs de données s’exécutant sur une grappe de machines
Un domaine d’application privilégié est celui des serveurs de données s’exécutant sur une grappe de machines. Nous étudions actuellement l’exemple des serveurs Web à contenu dynamique [6]. Dans un tel serveur, une application interagit avec des clients au travers de pages Web générées dynamiquement. Un exemple caractéristique est un serveur de commerce électronique comme eBay.
Une des technologies disponibles pour construire ce type d’application est de la développer suivant une architecture J2EE, composée d’un serveur Web, d’un serveur de Servlets, d’un serveur d’EJB (programmes Java) et d’un serveur de base de données. Le serveur Web gère les pages statiques de l’application. Le serveur de Servlets est chargé de générer les pages Web dynamiques (partie présentation). Le serveur EJB inclut les programmes constituant le code métier de l’application (par exemple la gestion d’enchères dans une application de type eBay). La base de donnée gère les données persistantes de l’application. Ces différents composants peuvent être dupliqués sur des machines de la grappe pour des raisons de performances et de disponibilité ; ils sont interconnectés pour former une architecture logicielle répartie sur la grappe.
Cependant, en cas de panne affectant un des composants de cette architecture ou en cas de surcharge affectant le service fourni aux clients, l’architecture logicielle ainsi que son implantation sur la grappe doivent être reconsidérés. Alors que traditionnellement, une intervention humaine est nécessaire pour modifier l’implantation de l’application sur la grappe, Jade permet de décrire un comportement autonome visant à détecter les événements sensibles et à réparer l’application. Dans le cas d’une panne, le composant fautif est redémarré sur une nouvelle machine (allouée dynamiquement) et les liaisons arrivant au et partant du composant fautif sont mises à jour. Un comportement autonome équivalent est décrit pour prendre en compte une surcharge du serveur, ou tout autre aspect d’administration.

Application multimédia répartie
Un autre domaine d’application potentiel pour la validation de ces travaux est celui des applications multimédia réparties utilisées dans un contexte ubiquitaire. L’informatique ubiquitaire est caractérisée par des conditions d’exécution très variées nécessitant des adaptations. Les applications multimédia réparties sont très sensibles aux conditions d’exécution : capacités de traitement des machines impliquées, capacités des réseaux traversés, capacités d’affichage des terminaux utilisés, mais également nature des logiciels (codecs) utilisés sur les différentes machines. Il est alors intéressant d’adapter ces applications en cours d’exécution afin de mieux gérer la qualité de service.
Dans cet axe de travail, nous étudions l’adaptation dynamique des applications multimédia, de façon transparente aux applications installées sur les machines clientes et serveurs. Les adaptations sont mises en oeuvre sur des sites intermédiaires (proxy) et elles consistent à transformer les données multimédia à la volée pour en changer les caractéristiques (taille, format d’encodage, facteur de compression …), ce qui impacte significativement les performances des applications. Les proxies sont configurés dynamiquement en fonction des besoins, sous la forme d’une architecture à composants. Cette architecture peut être adaptée dynamiquement (et de façon autonome) si les besoins changent en cours d’exécution. Des résultats prometteurs ont été obtenus, démontrant l’intérêt d’une gestion autonome dans le contexte des applications multimédia [3].

Plate-forme de messagerie asynchrone
Le troisième domaine d’application de ces travaux que nous envisageons est l’administration d’une plate-forme de messagerie asynchrone. Ces plate-formes sont très utilisées comme support pour implanter des systèmes de Médiation. La société ScalAgent [13], créée par des anciens membres du projet INRIA Sirac, développe des solutions de médiation pour des clients comme Schneider Electric en s’appuyant sur l’intergiciel JORAM, initialement développé dans Sirac. JORAM [9] est une plate-forme de messagerie asynchrone conforme à la spécification JMS (Java Messaging Service) [10], fournissant des fonctions avancées de messagerie (communication point à point ou publish/subscribe). Un environnement JORAM est composé d’un ensemble de serveurs installés dans une infrastructure répartie (par exemple le réseau privé d’une entreprise), ces serveurs étant chargés de l’acheminement des messages. L’installation, la configuration et la maintenance de ces serveurs est une tâche d’administration complexe. Des outils d’administration sont nécessaires pour déployer une architecture de serveurs, et la mettre à jour en cas de pannes ou de déséquilibre (surcharge sur un des serveurs).
Notre objectif est de démontrer que ces tâches d’administration peuvent être avantageusement prises en charge par un logiciel d’administration autonome tel que Jade, qui permet d'observer les conditions d’exécution et de reconfigurer l’architecture des serveurs JORAM en conséquence. Dans ce contexte, les politiques d’administration à implanter couvrent les problèmes de la performance, de la disponibilité et de la fiabilité, mais également les aspects de sécurité.

Grilles de calcul
Une infrastructure logicielle de calcul intensif sur une grille est caractérisée par une grande complexité qui rend difficile sa configuration et son administration. L'utilisation du logiciel d'administration autonome Jade permet de simplifier le déploiement et la configuration des applications sur la grille, et de faire évoluer dynamiquement la configuration de ces applications en fonction des besoins et des disponibilités en ressources.
Une première expérimentation a été menée avec Diet, un ordonanceur de calcul sur la grille implanté au Laboratoire d'Informatique du Parallélisme à Lyon. Nous avons utilisé Jade pour gérer le déploiement et la reconfiguration en cas de panne de Diet sur un ensemble de machines d'une grille.

Contexte scientifique

Dans le domaine des systèmes et applications répartis, les dix dernières années ont vu une évolution constante vers plus de flexibilité. Cette flexibilité a été introduite initialement dans des outils de développement (langages et compilateurs), puis dans des outils de construction (configuration) et de déploiement. Les travaux les plus récents visent des adaptations dynamiques des logiciels, et la définition de politiques d’adaptation associées à ces logiciels ; on parle alors de systèmes et applications autonomes, ou encore d’administration autonome. En 2002-2003, une initiative d’IBM [1] a défini plus clairement les défis liés à la définition de systèmes autonomes, et a marqué la création d’une communauté très active.
En 2004, la première conférence internationale sur les systèmes autonomes (ICAC) a été organisée [8]. Le programme de cette conférence montre que l’attention a principalement été portée sur l’optimisation et les performances, et en second plan sur la tolérance aux pannes. De nombreux autres aspects d’administration devront être étudiés, en particulier la sécurité.
Plusieurs articles [7,11,12,14] ont proposé d’exploiter les architectures logicielles à composants pour la construction de systèmes autonomes.

Bibliographie

[1] Autonomic computing: IBM’s perspective on the state of information technology. http://researchweb.watson.ibm.com/autonomic/.
[2] S. Ben Atallah, D. Hagimont, S. Jean, N. de Palma. A first step toward autonomous clustered J2EE applications management. In 1st International Workshop on Operating Systems, Programming Environments and Management Tools for High-Performance Computing on Clusters (COSET-1), Saint- Malo, France, June 2004.
[3] S. Ben Atallah, O. Layaïda, N. De-Palma, D. Hagimont. Dynamic Configuration of Multimedia Applications In Proceedings of the 6th IFIP/IEEE International Conference on Management of Multimedia Networks and Services (MMNS), Belfast, Northern Ireland, September 2003.
[4] S. Bouchenak, F. Boyer, D. Hagimont, S. Krakowiak, N. Depalma, V. Quéma, J.-B. Stefani, Architecture-Based Autonomous Repair Management: Application to J2EE Clusters, 2nd International Conference on Autonomic Computing (ICAC) - short paper, Seattle, June 2005.
[5] E. Bruneton, T. Coupaye, M. Leclercq, V. Quéma and J.-B. Stefani. An Open Component Model and its Support in Java. In Proceedings of the International Symposium on Component-based Software Engineering, Edinburgh, Scotland, may 2004.
[6] E. Cecchet, A. Chanda, S. Elnikety, J. Marguerite and W. Zwaenepoel. Performance Comparison of Middleware Architectures for Generating Dynamic Web Content. In Proceedings of the 4th ACM/IFIP/USENIX International Middleware Conference (Middleware), Rio de Janeiro, Brazil, June 16-20, 2003.
[7] I. Georgiadis, J. Magee, and J. Kramer. Self-organizing software architecture for distributed systems. In Proceedings of the 1st Workshop on Self-Healing Systems, WOSS 2002. ACM, 2002.
[8] ICAC-2004, International Conference on Autonomic Computing, New York, May 2004 http://www.caip.rutgers.edu/~parashar/ac2004/organization.html
[9] JORAM: Java (TM) Open Reliable Asynchronous Messaging http://joram.objectweb.org/
[10] Java Message Service (JMS) http://java.sun.com/products/jms/
[11] H. Liu and M. Parashar, "Component-based programming model for autonomic applications," in Proceedings of the International Conference on Autonomic Computing (ICAC-04), (New York, NY), May 2004.
[12] P. Oriezy,M. Gorlick, R. Taylor, G. Johnson, N. Medvidovic, A. Quilici, D. Rosenblum, and A. Wolf. An Architecture- Based Approach to Self-Adaptive Software. IEEE Intelligent Systems 14(3), 1999.
[13] ScalAgent Distributed Technologies, http://www.scalagent.com/
[14] S. White, J. Hanon, I. Whalley, D. Chess, and J. Kephart. An Architectural Approach to Autonomic Computing. In Proceedings IEEE Int. Conference on Autonomic Computing (ICAC 2004), 2004.

Publications sur ces travaux

[5.25]  N. de Palma, S. Jean, S. Ben Atallah, D. Hagimont, J2EE Applications Deployment: A first Experiment, International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’04), Las Vegas, June 2004. [PDF]

[5.28]  S. Bouchenak, F. Boyer, D. Hagimont, S. Krakowiak, N. Depalma, V. Quéma, J.-B. Stefani, Architecture-Based Autonomous Repair Management: Application to J2EE Clusters, 2nd International Conference on Autonomic Computing (ICAC) - short paper, Seattle, June 2005.

[5.30]    S. Bouchenak, F. Boyer, D. Hagimont, S. Krakowiak, A. Mos, N. Depalma, V. Quema, J.-B. Stefani, Architecture-Based Autonomous Repair Management: An Application to J2EE Clusters, 24th IEEE Symposium on Reliable Distributed Systems (SRDS), Orlando, Florida, October 2005. [PDF]

[5.31]   S. Sicard, N. Depalma, D. Hagimont, J2EE Server Scalability through EJB Replication,  ACM Symposium on Applied Computing (SAC)Special Track on Distributed Systems and Grid Computing, Dijon, France, April 2006. [PDF]

[5.32]   J. Philippe, N. Depalma, S. Bouchenak, J. Kornas, D. Hagimont, Offline Profiling for Guaranteed Performance in Multi-Tiered Web Applications, International Conference on Internet Computing, Las Vegas, USA, June 2006. [PDF]

[5.33]  D. Hagimont, S. Bouchenak, N. De Palma, C. Taton, Autonomic Management of Clustered Applications, IEEE International Conference on Cluster Computing, Barcelona September 25th-28th, 2006. [PDF]

[5.34]  B. Claudel, N. De Palma, R. Lachaize, D. Hagimont, Self-protection for Distributed Component-Based Applications, Eighth International Symposium on Stabilization, Safety, and Security of Distributed Systems, Dallas, USA, November 2006. [PDF]

[7.8]  S. Ben Atallah, D. Hagimont, S. Jean, N. de Palma, A first step towards autonomous clustered J2EE applications management, First International Workshop on Operating Systems, Programming Environments and Management Tools for High-Performance Computing on Clusters, Saint-Malo, June 2004. [PDF]

[7.9]  S. Bouchenak, N. de Palma, D. Hagimont, Autonomic administration of clustered J2EE applications, IFIP/IEEE International Workshop on Self-Managed Systems & Services, Nice, May 2005. [PDF]

[7.10] C. Taton, S. Bouchenak, F. Boyer, NI de Palma, D. Hagimont and A. Mos, Self-Manageable Replicated Servers. In VLDB Workshop on Design, Implementation, and Deployment of Database Replication (WDIDDR), at 31st International Conference on Very Large Data Bases, Trondheim, Norway, August 2005. [PDF]

[7.11] C. Taton, S. Bouchenak, N. Depalma, D. Hagimont, S. Sicard, Self-Sizing of Clustered Databases,  2nd IEEE International Workshop on Autonomic Communications and Computing (ACC 2006), Niagara-Falls, June 2006. [PDF]

Transparents

Financements contractuels

Ces travaux menés à l'IRIT bénéficient du support de l'ANR (Agence Nationale de la Recherche) au travers des projets suivants :

Contact

Daniel Hagimont
Web : http://www.enseeiht.fr/~hagimont
Email : Daniel.Hagimont@enseeiht.fr
Phone : (+33) 561 588 383 (GMT+1)
Fax : (+33) 561 588 306