login
english version rss feed
Detailed view PhD thesis
Université de Marne la Vallée (18/10/2006), Jean Berstel (Dir.)
Attached file list to this document: 
PDF
Deleray_2006.pdf(2.5 MB)
Corosol : une machine virtuelle Java dynamiquement adaptative
Christophe Deleray1

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.
1:  LIGM - Laboratoire d'Informatique Gaspard-Monge
systèmes virtuels – Java – composants logiciels
http://igm.univ-mlv.fr/LIGM/thesis_habilitations/pdf/2006_deleray.pdf

Many tools were developed to make evolve in the course of time an application and/or its execution platform according to the appearance of new needs. Within the framework of Java, they are often appeared as new compilers handling a Java language enriched, advanced class loaders which modify the byte code of the application in order to add new properties to this one, or specialized virtual machines. However these various tools are not easily combinable between them and/or reusable apart from their context. This is why we propose, within the framework of Java, an opened virtual machine, entirely written as Java to preserve the portability, and able to evolve in the course of time. It has a component architecture which is inspired most accurately possible by the specification of Sun Microsystems. A Corosol component is an abstraction of the functional units of the Java virtual machine (like the class loaders or the threads), but also of the storage units (like the heap or the thread stacks) and all intern mechanisms related to the execution (like the method dynamic resolution). The Corosol architecture is described by interfaces, which specify the component services but also how they are integrated in Corosol and communicate between them. A default implementation is provided for each component. The implementation of each component can be selected before the starting of Corosol by simple parameter setting. However, the principal originality of our virtual machine is this powerful interface of introspection. Thanks to it, during its own execution, the application can consult the characteristics of its platform of execution in order to adapt its virtual machine. It also authorizes the application to create components for our virtual machine and to change the existing components by new ones. Our work mainly consisted to define and implements this introspection interface.

all articles on CCSd database...
all articles on CCSd database...
all articles on CCSd database...
all articles on CCSd database...
all articles on CCSd database...