Method for Permitting Several Version of a Module to Coexist within a Virtual Machine
Original Publication Date: 2001-Mar-01
Included in the Prior Art Database: 2003-Jun-18
A method is proposed that permits to run several versions of a module within a virtual machine. This permits to have dynamic upgrades of a module without interrupting or disturbing in any manner services currently using the old version of the module. This proposal does not require the services to know that several versions of a module can be present simultaneously. This proposal also permits to select the version of the module to be used based on some external criteria like security rules or user profile. Background Virtual machines are becoming more and more popular. SmallTalk and Java for example are two languages that permit to create a program that will be executed within a virtual machine. There are several reasons for this popularity. Among others, a virtual machine is a secure environment in which access to external resources like network interfaces or disk or other processes can be severely controlled. Another reason to mention is portability, the virtual machine abstracts the underlying platform and therefore it is possible to execute a program written for a specific virtual machine on any platform that implements the virtual machine specifications. However these benefits can only be obtained because of some restrictions on what a program can do in a virtual machine and what a virtual machine shall provide to programs executing inside of it. Especially, most virtual machines do not allow to run different versions of the same code simultaneously. The reason is that the virtual machine is responsible in most cases for finding the code to be executed and translating it in a format understood by the underlying platform. Allowing several versions of the same code in one virtual machine would be a very strong requirement in the virtual machine specifications and could lead to security problems, therefore most of the benefits of a virtual machine would be lost.