Sharing Live Appliances
First Claim
1. A computer-implemented method comprising:
- receiving in a computer a request to run a live appliance, the live appliance providing a computing environment that a user can run on the computer, the live appliance being defined by a data source that includes a version description for a current version of a virtual machine image;
determining whether the computer has subscribed to the live appliance, and if not, subscribing to the live appliance on the computer, reading the data source for the live appliance, and using the current version description to initiate downloading of the current version of the virtual machine image to the computer;
when the computer has subscribed to the live appliance, detecting whether a change has occurred in the data source that changes the version description designated as the current version description, and if a change has occurred, reading updated data from the data source, the updated data designating a second version description as the current version description, the second version description describing a different second version of the virtual machine image as the current version of the virtual machine image;
obtaining the current version of the virtual machine image as described by the second version description; and
running the current version of the virtual machine image.
5 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer program apparatus, implementing techniques for publishing, subscribing to, or playing live appliances. A live appliance includes a current virtual machine image. In publishing, a proxy file of a live appliance file type is provided to the publisher. The type is mapped to a live appliance player; so that when a proxy file is opened, the current virtual machine image is run. The player automatically binds a writeable file system external to the virtual machine image to the image to provide file storage that is accessible from within the virtual machine image and from a host operating system. The player also creates a subscription to the live appliance on the host computer if one does not exist when the proxy file is run. With the subscription, the player runs the then-current virtual machine image whenever the live appliance is run.
-
Citations
144 Claims
-
1. A computer-implemented method comprising:
-
receiving in a computer a request to run a live appliance, the live appliance providing a computing environment that a user can run on the computer, the live appliance being defined by a data source that includes a version description for a current version of a virtual machine image;
determining whether the computer has subscribed to the live appliance, and if not, subscribing to the live appliance on the computer, reading the data source for the live appliance, and using the current version description to initiate downloading of the current version of the virtual machine image to the computer;
when the computer has subscribed to the live appliance, detecting whether a change has occurred in the data source that changes the version description designated as the current version description, and if a change has occurred, reading updated data from the data source, the updated data designating a second version description as the current version description, the second version description describing a different second version of the virtual machine image as the current version of the virtual machine image;
obtaining the current version of the virtual machine image as described by the second version description; and
running the current version of the virtual machine image. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method comprising:
-
uploading a virtual machine image to a distribution service; and
posting a live appliance to a subscription service by providing data source information to the subscription service, the data source information including version information describing a version of a virtual machine image, the version having a virtual machine version configuration. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. A system comprising:
-
one or more computers coupled in data communication with each other and to a data communication network to interact with users; and
a post interface, an upload interface, and a system database implemented on the one or more computers;
the post interface being operable to receive post input over the network from a publisher user posting a live appliance to the system, the post input including data source information, the data source information including version information describing a version of a virtual machine image, the version having a virtual machine version configuration, in response to which the system registers the live appliance, creates a corresponding data source including the data source information, and stores the corresponding data source in the system database;
the upload interface being operable to receive upload input over the network from the publisher user, the upload input comprising the version of the virtual machine image, and to store the virtual machine image in the system database;
the system being operable to provide a proxy for the live appliance to the publisher user in response to the publisher posting the live appliance. - View Dependent Claims (43, 44, 45, 46, 47, 48, 49, 50, 51)
-
-
52. A computer-implemented method comprising:
-
in response to a user action opening a proxy file on a computer, automatically invoking a player application on the computer, the player application performing player actions comprising;
using the proxy file to locate the current version of the virtual machine image; and
causing the current version of the virtual machine image to be run by a virtual machine monitor. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60, 61, 62)
-
-
63. A memory for storing data for access by an application program being executed on a data processing system, comprising:
-
a data structure stored in the memory, the data structure comprising;
a proxy for a live appliance;
a data source; and
one or more virtual machine version configurations, each version configuration including one or more links to a corresponding virtual machine image;
wherein;
the proxy includes a source identifier that can be resolved to a location of the data source;
the data source includes data designating one of the versions of the virtual machine image as the current version, the current version being described by a current version description; and
each version configuration contains configuration data describing the corresponding virtual machine image. - View Dependent Claims (64, 65, 66, 67, 68, 69, 70, 71, 72)
-
-
73. A computer-implemented method comprising:
receiving in a user interface of a computer an uninterrupted user action opening a proxy document and, in response to the user action and without further user intervention, performing actions comprising;
identifying, based on information in the proxy document, a live appliance;
determining whether the computer has subscribed to the live appliance and, if not, subscribing to the live appliance; and
running a current version of a virtual machine image from the live appliance, the live appliance including one or more versions of the virtual machine image. - View Dependent Claims (74, 75, 76, 77, 78, 79)
-
80. A computer program product, tangibly stored on a machine-readable medium, the product comprising instructions operable when executed by a computer to perform operations comprising:
receiving in a user interface of the computer an uninterrupted user action opening a proxy document and, in response to the user action and without further user intervention, performing actions comprising;
identifying, based on information in the proxy document, a live appliance;
determining whether the computer has subscribed to the live appliance and, if not, subscribing to the live appliance; and
running a current version of a virtual machine image from the live appliance, the live appliance including one or more versions of the virtual machine image. - View Dependent Claims (81, 82, 83, 84, 85)
-
86. A computer-implemented method, comprising:
-
registering a live appliance file type on a computer to associate the file type with a player application on the computer, wherein;
running the player application in response to a user action or a programmatic action opening a first document of the file type on the computer, the player application performing actions comprising;
acting on the first document by reading feed data from a first live appliance data feed source, the data feed source being the first document or being identified by a source locator in the first document;
reading a first virtual machine image, the virtual machine image being in the feed source or being identified by an image locator in the feed source; and
causing the first virtual machine to be run by a virtual machine monitor. - View Dependent Claims (87, 88)
-
-
89. A computer program product, tangibly stored on a machine-readable medium, the product comprising instructions operable when executed by a computer to perform operations comprising:
-
registering a live appliance file type on the computer to associate the file type with a player application on the computer, wherein;
running the player application in response to a user action or a programmatic action opening a first document of the file type on the computer, the player application performing actions comprising;
acting on the first document by reading feed data from a first live appliance data feed source, the data feed source being the first document or being identified by a source locator in the first document;
reading a first virtual machine image, the virtual machine image being in the feed source or being identified by an image locator in the feed source; and
causing the first virtual machine to be run by a virtual machine monitor. - View Dependent Claims (90, 91)
-
-
92. A computer-implemented method comprising:
receiving in a user interface of a computer an uninterrupted user action opening a proxy document having a live appliance file type and, in response to the user action and without further user intervention, automatically invoking a player application on the computer, the player application performing actions comprising;
identifying a remote source identifying a current version of a virtual machine image based on information in the proxy document;
determining whether a copy of the current version of the virtual machine image has been downloaded to the computer and if not, beginning to download the virtual machine image to the computer; and
running the virtual machine image on a virtual machine monitor on the computer. - View Dependent Claims (93, 94)
-
95. A computer program product, tangibly stored on a machine-readable medium, the product comprising instructions operable when executed by a computer to perform operations comprising:
receiving in a user interface of the computer an uninterrupted user action opening a proxy document having a live appliance file type and, in response to the user action and without further user intervention, automatically invoking a player application on the computer, the player application performing actions comprising;
identifying a remote source identifying a current version of a virtual machine image based on information in the proxy document;
determining whether a copy of the current version of the virtual machine image has been downloaded to the computer and if not, beginning to download the virtual machine image to the computer; and
running the virtual machine image on a virtual machine monitor on the computer. - View Dependent Claims (96, 97)
-
98. A system comprising:
-
a computer comprising memory, the memory storing instructions operable when executed by the computer to perform operations comprising;
receiving in a user interface of a computer an uninterrupted user action opening a proxy document and, in response to the user action and without further user intervention, performing actions comprising;
identifying, based on information in the proxy document, a live appliance;
determining whether the computer has subscribed to the live appliance and, if not, subscribing to the live appliance; and
running a current version of a virtual machine image from the live appliance, the live appliance including one or more versions of the virtual machine image.
-
-
99. A system comprising:
-
a computer with a player application installed on the computer, a live appliance file type being registered on the computer to associate the file type with the player application on the computer;
a computer comprising memory, the memory storing instructions operable when executed by the computer to perform operations comprising;
running the player application in response to a user action or a programmatic action opening a first document of the file type on the computer, the player application performing actions comprising;
acting on the first document by reading feed data from a first live appliance data feed source, the data feed source being the first document or being identified by a source locator in the first document;
reading a first virtual machine image, the virtual machine image being in the feed source or being identified by an image locator in the feed source; and
causing the first virtual machine to be run by a virtual machine monitor.
-
-
100. A system comprising:
-
a computer with a player application installed on the computer;
the computer comprising memory, the memory storing instructions operable when executed by the computer to perform operations comprising;
receiving in a user interface of a computer an uninterrupted user action opening a proxy document having a live appliance file type and, in response to the user action and without further user intervention, automatically invoking the player application on the computer, the player application performing actions comprising;
identifying a remote source identifying a current version of a virtual machine image based on information in the proxy document;
determining whether a copy of the current version of the virtual machine image has been downloaded to the computer and if not, beginning to download the virtual machine image to the computer; and
running the virtual machine image on a virtual machine monitor on the computer.
-
-
101. A computer program product, tangibly embodied in a computer-readable medium, comprising instructions operable to cause a computer to perform operations comprising:
-
receiving in a computer a request to run a live appliance, the live appliance providing a computing environment that a user can run on the computer, the live appliance being defined by a data source that includes a version description for a current version of a virtual machine image;
determining whether the computer has subscribed to the live appliance, and if not, subscribing to the live appliance on the computer, reading the data source for the live appliance, and using the current version description to initiate downloading of the current version of the virtual machine image to the computer;
when the computer has subscribed to the live appliance, detecting whether a change has occurred in the data source that changes the version description designated as the current version description, and if a change has occurred, reading updated data from the data source, the updated data designating a second version description as the current version description, the second version description describing a different second version of the virtual machine image as the current version of the virtual machine image;
obtaining the current version of the virtual machine image as described by the second version description; and
running the current version of the virtual machine image. - View Dependent Claims (102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129)
-
-
130. A method comprising:
binding data files for a virtual machine image to the virtual machine image automatically from outside the virtual machine image, the data files being also visible as local files on the computer, the data files being bound by being mounted as a directory hierarchy within or as a home directory or a user profile in the virtual machine image. - View Dependent Claims (131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141)
-
142. A computer program product, tangibly embodied in a computer-readable medium, comprising:
-
a dependent helper in a virtual machine image to implement a user file system protocol to read and write the data files on a local data store, the dependent helper being operable to perform actions comprising;
binding data files for the virtual machine image to the virtual machine image automatically from outside the virtual machine image, the data files being also visible as local files on the computer, the data files being bound by being mounted as a directory hierarchy within or as a home directory or a user profile in the virtual machine image; and
a player operable to perform actions comprising;
configuring a host computer to provide a guest operating system with the user file system for reading and writing the data files. - View Dependent Claims (143, 144)
-
Specification