System and method for collaborative hosting of applications, virtual machines, and data objects

Abstract
To provide collaborative hosting of applications, the present invention first generates a virtual operating system image consisting of operating system code, application code, runtime code and supporting data repositories. The virtual operating system image may then be sent to and deploying on a physical computer or computer terminal at another location.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, in which:



FIG. 1 shows a system for collaborative hosting of virtual machines and data objects according to the present invention.



FIG. 2 shows a request for a set of virtual machines and applications.



FIG. 3 shows data center creating virtual machines, deployed and tested at the datacenter.



FIG. 4 shows virtual machines transferred to the customer site.



FIG. 5 shows customer customizing and executing virtual machines at customer site.



FIG. 6 shows virtual machines executed on customer and/or data center physical machines.





DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT OF THE INVENTION

Referring now to the drawings, and more particularly to FIG. 1, there is shown a system for collaborative hosting of virtual machines and data objects according to the present invention. The system might be used for testing and developing specialized applications for a customer. A VM at a customer site is migrated to a hosting environment when the customer is satisfied with its integrity. The VM may later be moved back to the customer for customization and development. When an application spans multiple VMs 110a, 110b, 110c, 110d, 110e, 110f, 110g, 110n, 110o, 110p, 110q, 110r, 110s, 110t, such as a three-tier web transaction system, an entire set of machines 120a, 120b which the application spans may be migrated to a hosting center 150. Details of co-hosting process are shown on following figures.


Referring now to FIG. 2, there is shown a user 200 at a computer terminal 210 who is forwarding, via a network 220, a request to a data center 250 for virtual machines to be made available for use at a customer premises 290. The data center 250 includes physical machines in the form of servers 255a, 255b, 255c, and the customer premises 290 includes a physical machine in form of at least one workstation 295.


In FIG. 3, there is shown a datacenter 250, where required virtual machines 355a, 355b, 355c, 355d are created and tested by deploying them on the hardware 255a, 255b, 255c of the datacenter 250, and then executing and testing them.



FIG. 4 shows ready-to-run virtual machines 355a, 355b, 355c, and 355d that have been transferred via a network 420 from a data center 250 to a customer premises 290, where the virtual machines are executed.



FIG. 5 shows a user 200 at a terminal 210 customizing virtual machines 355a, 355b, 355c, and 355d and executing them on a physical machine 295 at the customer premises 290.


Finally, FIG. 6 shows virtual machines 355a, 355b, 355c, 355d which have been executed both on a customer's physical machine 295 and on datacenter physical machines 255a, 255b, 255c and then transferred via a network 420 between the customer premises 290 and datacenter 250 as needed.


While the invention has been described in terms of a single preferred embodiment, those skilled in the art will recognize that the invention can be practiced with modification within the spirit and scope of the appended claims.

Claims
  • 1. A method for collaborative hosting of applications, comprising the steps of: using a computer to generate a virtual operating system image, said virtual operating system image comprising one or more of operating system code, application code, runtime code, and supporting data repositories;sending said virtual operating system image and deploying said image at a computer; andmigrating a virtual machine between a hosting environment and said computer.
  • 2. The method of claim 1, wherein the virtual operating system image is sent via a network.
  • 3. The method of claim 2, wherein the network is the Internet.
  • 4. The method of claim 1, wherein the hosting environment is a data center.
  • 5. The method of claim 1, wherein said migrating step includes a movement back and forth between said hosting environment and said computer.
  • 6. A system for collaborative hosting of applications, comprising: a computer generating a virtual operating system image, said virtual operating system image comprising one or more of operating system code, application code, runtime code, and supporting data repositories;a computer at which said virtual operating system image is deployed; andmigrating a virtual machine between a hosting environment and said computer.
  • 7. The system of claim 6, wherein the virtual operating system image is sent via a network.
  • 8. The system of claim 7, wherein the network is the Internet.
  • 9. A machine-readable medium for collaborative hosting of applications, on which is provided: instructions for a computer to generate a virtual operating system image, said image comprising one or more of operating system code, application code, runtime code, and supporting data repositories;instructions for deploying said virtual operating system image at a computer; andinstructions for migrating a virtual machine between a hosting environment and said computer.
  • 10. The machine-readable medium of claim 9, wherein the virtual operating system image is sent via a network.
  • 11. The machine-readable medium of claim 10, wherein the network is the Internet.
  • 12. The machine-readable medium of claim 9, wherein the hosting environment is a data center.
  • 13. The machine-readable medium of claim 9, wherein said migrating step includes a movement back and forth between said hosting environment and said computer.