IP Library Granted Patent US 7,526,515
Granted Patent B2
US 7,526,515 · App. 10/761,998 · Granted Apr 28, 2009

Method and system for a grid-enabled virtual machine with movable objects

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,526,515
App. No.
10/761,998
Granted
Apr 28, 2009
Kind
B2
Abstract

A method, an apparatus, a computer program product, and a data processing system provide for operation of a virtual machine with embedded functionality for interoperating with other virtual machines in a computational grid. A plurality of virtual machines are run on one or more devices within a data processing system; each virtual machine in the plurality of virtual machines incorporates functionality for interoperating and associating with other virtual machines in a virtual machine cluster in a grid-like manner. Each virtual machine in the virtual machine cluster acts as a node within the virtual machine cluster. A virtual machine manages its objects in association with an object group, and each virtual machine may manage multiple object groups. The virtual machines share information such that the object groups can be moved between virtual machines in the virtual machine cluster, thereby allowing the virtual machine cluster to act as one logical virtual machine.

Claims (53)

1. A method for operating a virtual machine within a data processing system, the method comprising the computer-implemented steps of:

a processor;

the processor for storing an object in memory that is managed by a virtual machine that is running on a device within the data processing system;

associating the object with a plurality of objects within an object group;

associating the object group with the virtual machine, wherein the virtual machine incorporates functionality for interoperating with other virtual machines in a virtual machine cluster, and wherein each virtual machine in the virtual machine cluster acts as a node within the virtual machine cluster, and wherein associating the object group with the virtual machine comprises:

associating the object group with a thread managed by the virtual machine; and storing the object group in a thread local heap associated with the thread;

managing a plurality of object groups within each virtual machine of the virtual machine cluster;

allowing the object group to be moved from the virtual machine to a different virtual machine in the virtual machine cluster;

disassociating the object group from the virtual machine, wherein disassociating the object group from the virtual machine comprises:

disassociating the object group from the thread;

terminating the thread; and

in response to terminating the thread, managing the object group without an association between the object group and the thread managed by the virtual machine;

moving the object group to the different virtual machine in the virtual machine cluster; and

in response to moving the object group to the different virtual machine, associating the object group with the different virtual machine, wherein associating the object group with the different virtual machine comprises:

creating a first object reference for the object while the object is located on the virtual machine;

moving the object group with which the object is associated to the different virtual machine; and

creating a second object reference for the object while the object is located on the different virtual machine, wherein the first object reference and the second object reference are identical.

2. A computer program product on a computer readable medium for use in a data processing system for operating a virtual machine, the computer program product comprising:

a processor;

means for storing an object in memory that is managed by a virtual machine that is running on a device within the data processing system;

means for associating the object with a plurality of objects within an object group;

means for associating the object group with the virtual machine, wherein the virtual machine incorporates functionality for interoperating with other virtual machines in a virtual machine cluster, and wherein each virtual machine in the virtual machine cluster acts as a node within the virtual machine cluster, and wherein the means for associating the object group with the virtual machine comprises:

means for associating the object group with a thread managed by the virtual machine; and

means for storing the object group in a thread local heap associated with the thread;

means for managing a plurality of object groups within each virtual machine of the virtual machine cluster;

means for allowing the object group to be moved from the virtual machine to a different virtual machine in the virtual machine cluster;

means for disassociating the object group from the virtual machine, wherein the means for disassociating the object group from the virtual machine comprises:

means for disassociating the object group from the thread;

means for terminating the thread; and

in response to terminating the thread, managing the object group without an association between the object group and the thread managed by the virtual machine;

means for moving the object group to the different virtual machine in the virtual machine cluster; and

in response to moving the object group to the different virtual machine, means for associating the object group with the different virtual machine, wherein the means for associating the object group with the different virtual machine comprises:

means for creating a first object reference for the object while the object is located on the virtual machine;

means for moving the object group with which the object is associated to the different virtual machine; and

means for creating a second object reference for the object while the object is located on the different virtual machine, wherein the first object reference and the second object reference are identical.

3. An apparatus in a data processing system for operating a virtual machine, the apparatus comprising:

a processor;

means for storing an object in memory that is managed by a virtual machine that is running on a device within the data processing system;

means for associating the object with a plurality of objects within an object group;

means for associating the object group with the virtual machine, wherein the virtual machine incorporates functionality for interoperating with other virtual machines in a virtual machine cluster, wherein each virtual machine in the virtual machine cluster acts as a node within the virtual machine cluster, and wherein the means for associating the object group with the virtual machine comprises:

means for associating the object group with a thread managed by the virtual machine; and

means for storing the object group in a thread local heap associated with the thread;

means for managing a plurality of object groups within each virtual machine of the virtual machine cluster;

means for allowing the object group to be moved from the virtual machine to a different virtual machine in the virtual machine cluster;

means for disassociating the object group from the virtual machine, wherein the means for disassociating the object group from the virtual machine comprises:

means for disassociating the object group from the thread;

means for terminating the thread; and

in response to terminating the thread, means for managing the object group without an association between the object group and the thread managed by the virtual machine;

means for moving the object group to the different virtual machine in the virtual machine cluster; and

in response to moving the object group to the different virtual machine, means for associating the object group with the different virtual machine, wherein the means for associating the object group with the different virtual machine comprises:

means for creating a first object reference for the object while the object is located on the virtual machine;

means for moving the object group with which the object is associated to the different virtual machine; and

means for creating a second object reference for the object while the object is located on the different virtual machine, wherein the first object reference and the second object reference are identical.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2004
From: BROUSSARD, SCOTT J.; LIU, YING; SPRING, EDUARDO N.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014636/0248 →
Continuity (1)
Related Publication 20050160413A1 · Jul 21, 2005