Designing Highly Flexible Virtual Machines: The JnJVM Experience

Gaël Thomas 1 Nicolas Geoffray 1 Charles Clément 1 Bertil Folliot 1
1 Regal - Large-Scale Distributed Systems and Applications
LIP6 - Laboratoire d'Informatique de Paris 6, Inria Paris-Rocquencourt
Abstract : Dynamic flexibility is a major challenge in modern system design to react to context or applicative requirements evolutions. Adapting behaviors may impose substantial code modification across the whole system, in the field, without service interruption and without state loss. This paper presents the JnJVM, a full Java virtual machine (JVM) that satisfies these needs by using dynamic aspect weaving techniques and a component architecture. It supports adding or replacing its own code, while it is running, with no overhead on unmodified code execution. Our measurements reveal similar performance when compared with the monolithic JVM Kaffe. Three illustrative examples show different extension scenarios: (i) modifying the JVMs behavior; (ii) adding capabilities to the JVM; and (iii) modifying applications behavior.
Document type :
Journal articles
Complete list of metadatas
Contributor : Lip6 Publications <>
Submitted on : Friday, September 11, 2015 - 3:43:01 PM
Last modification on : Wednesday, June 12, 2019 - 1:35:02 AM

Links full text



Gaël Thomas, Nicolas Geoffray, Charles Clément, Bertil Folliot. Designing Highly Flexible Virtual Machines: The JnJVM Experience. Software: Practice and Experience, Wiley, 2008, 38 (15), pp.1643-1675. ⟨10.1002/spe.887⟩. ⟨hal-01197381⟩



Record views