IP Library Granted Patent US 8,868,608
Granted Patent B2
US 8,868,608 · App. 12/476,144 · Granted Oct 21, 2014

System and method for managing a virtual appliance lifecycle

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 8,868,608
App. No.
12/476,144
Granted
Oct 21, 2014
Kind
B2
Abstract

A system and method for managing a virtual appliance lifecycle is provided. In particular, a hosted web service may provide a collaborative environment for and unified environment for developing, configuring, personalizing, building, testing, deploying, and otherwise managing a lifecycle for one or more virtual appliances, wherein the collaborative and unified environment may provide various features for-creating virtual appliances, monitoring upstream changes and modifications to the virtual appliances, and providing real-time analysis and feedback during various phases of the virtual appliance lifecycle, among other things.

Claims (79)

1. A system for managing a virtual appliance lifecycle, comprising:

one or more physical processors programmed to execute one or more computer executable instructions which, when executed, cause the one or more physical processors to:

receive a request to create a software appliance, wherein the create request includes information identifying an image format for the software appliance;

identify a plurality of software components of the software appliance;

identify one or more source repositories containing the plurality of software components;

receive, from the one or more source repositories, one or more files corresponding to the plurality of software components;

create an image description for the software appliance that identifies the plurality of software components and the one or more source repositories;

build, on a first virtual machine, an image of the software appliance, wherein building the image comprises:

creating, in a physical extend of a space allocated to the first virtual machine, a file system layout for the image, wherein the file system layout includes a directory structure for the plurality of software components;

storing the one or more files to the file system layout in accordance with the directory structure;

identifying a conflict between, at least two of the plurality of software components;

resolving the conflict by removing one of the at least two of the plurality of software components from the image; and

formatting the image of the software appliance in accordance with the image format; and

transmit the image over a network to one or more devices configured to execute the image on a second virtual machine.

2. A system for managing a virtual appliance lifecycle, comprising:

a memory device having computer executable instructions; and

one or more physical processors coupled to the memory device, the one or more physical processors programmed to execute the computer executable instructions which, when executed, cause the one or more physical processors to implement a build engine configured to:

receive a build request for a software appliance, wherein the build request includes information identifying an image format for the software appliance;

identify, based on the build request, an image description for the software appliance that identifies a plurality of software components for the software appliance and one or more source repositories;

retrieve, from the one or more source repositories, one or more files corresponding to the plurality of software components;

build, on a first virtual machine, an image of the software appliance, wherein building the image comprises:

creating, in a physical extend of a space allocated to the first virtual machine, a file system layout for the image, wherein the file system layout includes a directory structure for the plurality of software components;

storing the one or more files to the file system layout in accordance with the directory structure;

identifying a conflict between at least two of the plurality of software components;

resolving the conflict by removing one of the at least two of the plurality of software components from the image; and

formatting the image in accordance with the image format; and

transmit the image over a network to one or more devices configured to execute the image on a second virtual machine, and

wherein the one or more physical processors are further caused to implement a development environment configured to create the image description.

3. The system of claim 2 , wherein the first virtual machine has a pre-configured state corresponding to an initialized state of the build engine, and the second virtual machine has a pre-configured state corresponding to an initialized state of a runtime environment.

4. The system of claim 2 , wherein the plurality of software components comprises one or more operating system components.

5. The system of claim 2 , wherein the development environment has access to a plurality of operating system components and is further configured to:

present to users of the system a plurality of appliance templates, each appliance template having less than the plurality of operating system components;

clone one of the plurality of appliance templates to create a base appliance derived from the cloned appliance template, wherein the cloned appliance template is cloned in response to the one or more appliance creation requests; and

modify the base appliance to implement one or more changes from the base appliance to the software appliance.

6. The system of claim 5 , wherein the development environment is further configured to:

construct an appliance family tree having a parent node and a child node arranged in a hierarchy, wherein the hierarchy represents a relationship between the base appliance and the software appliance; and

represent the one or more changes implemented for the software appliance.

7. The system of claim 5 , wherein the development environment is further configured to provide access for the software appliance to one or more of the users of the system.

8. The system of claim 2 , wherein the development environment is further configured to create the image description from an imported configuration file in response to one or more appliance creation requests.

9. The system of claim 2 , wherein the development environment is further configured to:

display information describing at least one of the plurality of software components or the one or more source repositories, wherein the displayed information includes a popularity metric for at least one of the plurality of software components.

10. The system of claim 2 , wherein, the development environment is further configured to apply one or more options to the image description in response to one or more appliance creation requests, wherein the options configure one or more of the plurality of software components, add custom files to the image description, and establish custom graphics for one or more of the plurality of software components.

11. The system of claim 2 , wherein the one or more physical processors are further caused to implement a virtualization environment configured to transmit the image over the network, and wherein the virtualization environment is further configured to provide one or more application program interfaces to communicate with one or more third-party applications that extend or modify functionality or behavior for one or more of the build engine, a runtime environment, the virtualization environment, or the development environment.

12. The system of claim 2 , wherein the image format includes at least one of a disk image format for deploying the image to physical media for execution, or a virtual disk image format for deploying the image to a virtual machine for execution.

13. The system of claim 2 , wherein the build engine is further configured to:

monitor one or more processes executed to build the image for the software appliance; and

generate one or more build logs describing the monitored one or more processes.

14. The system of claim 2 , wherein the one or more physical processors are further caused to capture a plurality of snapshots corresponding to a plurality of different states for the image during execution of the image on the second virtual machine.

15. The system of claim 14 , wherein the one or more physical processors are further caused to restore the image to a state corresponding to one or more of the plurality of snapshots.

16. The system of claim 14 , wherein the one or more physical processors are further caused to identify one or more changes between a first one and a second one of the plurality of snapshots.

17. The system of claim 2 , wherein the image includes a Preboot eXecution Environment configured to bootstrap a client device and load the image in a runtime environment at the client device.

18. The system of claim 2 , wherein the one or more physical processors are further caused to transmit the Image over the network to a runtime environment hosted on a web server.

19. The system of claim 2 , wherein the one or more physical processors are further caused to transmit the image over the network to a virtual server in a cloud computing environment.

20. A method for managing a virtual appliance lifecycle, the method being implemented on a computer system that comprises one or more physical processors executing one or more computer executable instructions which, when executed, perform the method, the method comprising:

receiving, by the one or more physical processors, a build request for a software appliance, wherein the build request includes information identifying an image format for the software component;

creating, by the one or more physical processors, an image description for the software appliance that identifies a plurality of software components of the software appliance and one or more source repositories;

identifying, by the one or more physical processors, based on the build request;

retrieving, by the one or more physical processors, from the one or more source repositories, one or more files corresponding to the plurality of software components;

building, by the one or more physical processors, on a first virtual machine, an image of the software appliance, wherein building the image comprises:

creating, in a physical extend of a space allocated to the first virtual machine, a file system layout for the image, wherein the file system layout includes a directory structure for the plurality of software components;

storing the one or more files to the file system layout in accordance with the directory structure;

identifying a conflict between at least two of the plurality of software components;

resolving the conflict by removing one of the at least two of the plurality of software components from the image; and

formatting the image in accordance with the image format; and

transmitting, by the one or more physical processors, the image over a network to one or more devices configured to execute the image on a second virtual machine.

21. The method of claim 20 , wherein the plurality of software components comprises one or more operating system components.

22. The method of claim 20 , wherein the one or more physical processors have access to a plurality of operating system components, and wherein creating the image description includes:

presenting a plurality of appliance templates, each appliance template having less than the plurality of operating system components;

cloning one of the plurality of appliance templates to create a base appliance derived from the cloned appliance template, wherein the cloned appliance template is cloned in response to the one or more appliance creation requests; and

modifying the base appliance to implement one or more changes from the base appliance to the software appliance.

23. The method of claim 22 , further comprising:

constructing an appliance family tree having a parent node and a child node arranged in a hierarchy, wherein the hierarchy represents a relationship between the base appliance and the software appliance; and

representing the one or more changes implemented for the software appliance.

24. The method of claim 20 , further comprising:

capturing, by the one or more physical processors, a plurality of snapshots corresponding to a plurality of different states for the image during execution of the image on the second virtual machine.

25. The method of claim 24 , further comprising:

restoring, by the one or more physical processors, the image to a state corresponding to one or more of the plurality of snapshots; and

identifying, by the one or more physical processors, one or more changes between a first one and a second one of the plurality of snapshots.

26. The method of claim 20 , wherein the image is transmitted over the network to at least one of a client device, a runtime environment hosted on a web server, or a virtual server in a cloud computing environment.

Assignments (19)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME - 042388/0386 AND REEL/FRAME - 044183/0577 Recorded Mar 18, 2019
From: JPMORGAN CHASE BANK, N.A.
To: SUSE LLC
Reel/Frame 048628/0221 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME - : 044183/0718 Recorded Mar 18, 2019
From: JPMORGAN CHASE BANK, N.A.
To: SUSE LLC
Reel/Frame 048628/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2019
From: MICRO FOCUS SOFTWARE INC.
To: SUSE LLC
Reel/Frame 048379/0548 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded May 13, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026275/0018 →
GRANT OF PATENT SECURITY INTEREST Recorded May 12, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2009
From: FRIEDMAN, NATHANIEL; SCHUMACHER, CORNELIUS; LESAGE, GARRETT; BORNKESSEL, DANIEL
To: NOVELL, INC.
Reel/Frame 022998/0390 →