Return to search

Corosol : une machine virtuelle Java dynamiquement adaptative

De nombreux outils ont été développés pour faire évoluer au cours du temps une application et/ou sa plate-forme d'exécution en fonction de l'apparition de nouveaux besoins. Dans le cadre de Java, ils se présentent souvent sous la forme de nouveaux compilateurs manipulant un langage Java enrichi, de chargeurs de classes évolués qui modifient le code compilé de l'application afin d'ajouter à celle-ci de nouvelles propriétés, ou encore de machines virtuelles spécialisées. Cependant ces différents outils sont diffcilement combinables entre eux et/ou réutilisables en dehors de leur contexte. C'est pourquoi nous proposons, dans le cadre de Java, une machine virtuelle ouverte et entièrement écrite en Java pour conserver la portabilité, capable d'évoluer au cours du temps. Elle dispose d'une architecture à composants qui s'inspire le plus fidèlement possible de la spécification de Sun Microsystems. Un composant de Corosol est une abstraction des unités fonctionnelles d'une machine virtuelle (comme le chargeur de classes ou les fils d'exécution), mais aussi des unités de stockage (comme le tas ou la pile d'exécution) et de tous les mécanismes internes liés à l'exécution (comme la résolution dynamique de méthodes). L'architecture de Corosol est décrite par des interfaces, qui spécifient les services des composants mais aussi comment ils s'intègrent dans Corosol et communiquent entre eux. Une implantation par défaut est fournie pour chaque composant. L'implantation de chaque composant peut être choisie avant le démarrage de Corosol par simple paramétrage. Cependant, l'originalité principale de notre machine virtuelle est une puissante interface d'introspection. Elle permet d'une part à l'application de consulter à tout instant les caractéristiques de sa plate-forme d'exécution afin de pouvoir s'y adapter. D'autre part, elle autorise l'application qui s'exécute à créer des composants pour la machine virtuelle à partir d'objets qui lui sont propres, et à changer les composants existants par les nouveaux, à n'importe quel moment. Notre travail a principalement consisté à définir et implanter cette interface d'introspection.

Identiferoai:union.ndltd.org:CCSD/oai:tel.archives-ouvertes.fr:tel-00628620
Date18 October 2006
CreatorsDeleray, Christophe
PublisherUniversité de Marne la Vallée
Source SetsCCSD theses-EN-ligne, France
LanguageFrench
Detected LanguageFrench
TypePhD thesis

Page generated in 0.002 seconds