Mobilité et persistance des applications dans l'environnement Java - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2001

Mobility and Persistence of Applications in the Java Environment

Mobilité et persistance des applications dans l'environnement Java

Résumé

This work tackles the problem of applications mobility and applications persistence in heterogeneous environments. These functions have many fields of use such as dynamic load balancing in distributed systems, fault tolerance and dynamic reconfiguration of distributed applications. Applications mobility and persistence have been largely addressed at the operating system level and at the programming language/model level. However, few works were done at the virtual machine level. The goal of this thesis is to propose mobility and persistence functions at the Java virtual machine level. The Java environment provides many useful tools for making code and data mobile or persistent but it does not address threads' execution state mobility and persistence. We provide such functionalities, following two principles : portability across heterogeneous platforms with respect to applications performance. Indeed, regarding performance, an important effort was made by Java's designers in terms of execution optimization and Just-In-Time (JIT) compilation. Our solution allows us to provide mobility and persistence functions that are portable even in the presence of JIT compilation. This is performed by basing our solution, on the one hand, on techniques of dynamic type inference via flow analysis, and on the other hand, on techniques of dynamic de-optimization of compiled Java code. Our mobility and persistence services were implemented as an extension of Sun Microsystems' Java virtual machine. They are operational and were used in a metacomputing platform for fault tolerance purpose. Nowadays, this solution is the unique approach that is complete without inducing any performance overhead for applications.
Les travaux de cette thèse portent sur la mobilité et la persistance des applications dans des environnements hétérogènes. Ces fonctions sont utiles à la répartition dynamique de charge dans les systèmes distribués, à la reconfiguration dynamique d'applications réparties ou à la mise en place de techniques de tolérance aux pannes. La mobilité et la persistance des applications ont largement été abordées au niveau du système d'exploitation ou au niveau du langage/modèle de programmation. Mais très peu de travaux ont été menés au niveau des machines virtuelles. L'objet de cette thèse est l'étude et la réalisation de fonctions de mobilité et de persistance dans la machine virtuelle Java. L'environnement Java fournit des outils pour la mobilité et la persistance du code et des données mais il n'adresse pas le problème de mobilité ni de persistance de l'état d'exécution des processus légers (threads). Les travaux de cette thèse portent sur la conception de tels services, une conception guidée par deux principes : la portabilité sur des environnements hétérogènes et le respect des performances des applications. Pour des besoins de performances, plusieurs efforts ont été faits par les concepteurs de Java en matière d'optimisation de l'exécution et de compilation à la volée. Notre solution permet de fournir des fonctions de mobilité et de persistance portables même en présence de compilation à la volée. Ceci est mis en oeuvre en reposant, d'une part, sur des techniques d'inférence dynamique du type des données sur la pile d'exécution à partir du code Java exécuté et, d'autre part, sur des techniques de dés-optimisation dynamique du code Java compilé à la volée. Nos services ont été réalisés via une extension de la machine virtuelle Java de Sun Microsystems. Ils sont opérationnels et ont pu être validés pour des besoins de tolérance aux pannes dans une plate-forme de metacomputing. Notre solution est actuellement l'unique approche qui est complète et qui élimine toute pénalité sur l'exécution des applications.
Fichier principal
Vignette du fichier
tel-00004669.pdf (999.22 Ko) Télécharger le fichier
Loading...

Dates et versions

tel-00004669 , version 1 (16-02-2004)

Identifiants

  • HAL Id : tel-00004669 , version 1

Citer

Sara Bouchenak. Mobilité et persistance des applications dans l'environnement Java. Réseaux et télécommunications [cs.NI]. Institut National Polytechnique de Grenoble - INPG, 2001. Français. ⟨NNT : ⟩. ⟨tel-00004669⟩
294 Consultations
691 Téléchargements

Partager

Gmail Facebook X LinkedIn More