Using a virtual machine instance as the basic unit of user execution in a server environment
First Claim
1. A method for servicing requests received by a server in a multiple-user environment, the method comprising the steps of:
- establishing a first session between said server and a first user;
establishing a second session between said server and a second user;
responding to requests that are received by said server in said first session by executing virtual machine code using a first virtual machine instance; and
responding to requests that are received by said server in said second session by executing virtual machine code using a second virtual machine instance;
wherein said first virtual machine instance and said second virtual machine instance are distinct instances of a same type of virtual machine;
wherein said first virtual machine instance exists within said server concurrently with said second virtual machine instance;
wherein said first virtual machine instance and said second virtual machine instance are two of a plurality of virtual machine instances, associated with said server, that share access to data stored in a shared state area allocated in volatile memory associated with said server;
wherein said plurality of virtual machine instances share read-only access to said data stored in said shared state area allocated in volatile memory within said server; and
wherein establishing the first session between said server and the first user includes establishing a first database session between a database system and the first user; and
establishing the second session between said server and the second user includes establishing a second database session between the database system and the first user.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for instantiating separate Java virtual machines for each session established by a server. Because each session has its own virtual machine, the Java programs executed by the server for each user connected to the server are insulated from the Java programs executed by the server for all other users connected to the server. The separate VM instances can be created and run, for example, in separate units of execution that are managed by the operating system of the platform on which the server is executing. For example, the separate VM instances may be executed either as separate processes, or using separate system threads. Because the units of execution used to run the separate VM instances are provided by the operating system, the operating system is able to ensure that the appropriate degree of insulation exists between the VM instances.
106 Citations
14 Claims
-
1. A method for servicing requests received by a server in a multiple-user environment, the method comprising the steps of:
-
establishing a first session between said server and a first user;
establishing a second session between said server and a second user;
responding to requests that are received by said server in said first session by executing virtual machine code using a first virtual machine instance; and
responding to requests that are received by said server in said second session by executing virtual machine code using a second virtual machine instance;
wherein said first virtual machine instance and said second virtual machine instance are distinct instances of a same type of virtual machine;
wherein said first virtual machine instance exists within said server concurrently with said second virtual machine instance;
wherein said first virtual machine instance and said second virtual machine instance are two of a plurality of virtual machine instances, associated with said server, that share access to data stored in a shared state area allocated in volatile memory associated with said server;
wherein said plurality of virtual machine instances share read-only access to said data stored in said shared state area allocated in volatile memory within said server; and
wherein establishing the first session between said server and the first user includes establishing a first database session between a database system and the first user; and
establishing the second session between said server and the second user includes establishing a second database session between the database system and the first user. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-readable medium carrying instructions for servicing requests received by a server in a multiple-user environment, the instruction comprising instructions for performing the steps of:
-
establishing a first session between said server and a first user;
establishing a second session between said server and a second user;
responding to requests that are received by said server in said first session by executing virtual machine code using a first virtual machine instance; and
responding to requests that are received by said server in said second session by executing virtual machine code using a second virtual machine instance;
wherein said first virtual machine instance and said second virtual machine instance are distinct instances of a same type of virtual machine;
wherein said first virtual machine instance exists within said server concurrently with said second virtual machine instance;
wherein said first virtual machine instance and said second virtual machine instance are two of a plurality of virtual machine instances, associated with said server, that share access to data stored in a shared state area allocated in volatile memory associated with said server;
wherein said plurality of virtual machine instances share read-only access to said data stored in said shared state area allocated in volatile memory within said server; and
wherein establishing the first session between said server and the first user includes establishing a first database session between a database system and the first user; and
establishing the second session between said server and the second user includes establishing a second database session between the database system and the first user. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification