The active documents are a technology consisting in adding executable code in the documents so that they can modify their environment for their specific needs.
For exemple, the union of a document in MP3 audio format and of WinAmp for i386 Windows constitutes an active document (no dependence on MP3 format but a new dependence on OS and hardware). In the same way, the union of a bytecoded program and of its interpreter or the union of a program and its runtime constitutes active documents, or more exactly an active applications.
This architecture doesn't harm the portability of the document if the executable code — the active part of the document — is bytecoded and executed by a virtual machine. This approach makes it possible to have effectiveness and portability and all the combinations between them.
The environment of an active application is necessarily a Virtual Virtual Machine. A new definition of Virtual Virtual Machine can be stated: a Virtual Virtual Machine is an execution environment for active application.
An active document is the union of :
An active application is the union of :
We realized two environments for active documents:
Nous présentons un premier exemple de document actif : les post-it dans les postscripts. Un post-it est une note insérée dans un PostScript. Deux types de notes existent : les notes textes (qui sont insérées dans le postscript et les notes ayant un type mime qui sont exécutées par l'interpréteur adéquat.
Possibilité d'ajouter des notes, du son et de la vidéo sur une page d'un document Postscript.
gv patché, introduction de type MIME, appel à un programme externe pour afficher les sous documents non-Postscript.
L'émergence de nouveaux domaines informatiques entraine de nouveaux besoins en termes de mécanismes systèmes que les environnements d'exécution traditionnels ne couvrent pas. Actuellement, il n'existe pas de solution pour ajouter ces mécanismes sans introduire d'hétérogénéité entre les différentes plate-formes d'exécution. Pour résoudre ce problème, nous proposons de placer le code non-standardisé de ces mécanismes dans l'application et d'exécuter ce nouveau type d'application, appelée « application active », dans un environnement générique et standard. Une application active adapte alors dynamiquement sa plate-forme d'exécution pour qu'elle corresponde à ses besoins spécifiques.
Pour valider notre approche, trois spécialisations de la JnJVM ont été implantées : elles construisent dynamiquement des JVM dédiées au tissage d'aspects, à la migration d'un fil d'exécution et à de l'analyse d'échappement.
Une description détaillée de l'architecture de la JnJVM est donnée dans la page qui lui est consacrée.