Patent ID: 8627274

Claim:
An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a knowledge base residing in the memory, the knowledge base comprising a plurality of configuration units, each configuration unit including functional information and corresponding virtualization information, wherein the functional information specifies software function and the corresponding virtualization information specifies metadata that describes how to package the software function within a virtual appliance; and a virtual appliance construction tool residing in the memory and executed by the at least one processor, the virtual appliance construction tool providing a user interface that allows a user to specify functional information in the user interface corresponding to the functional information stored in the plurality of configuration units in the knowledge base, wherein the user specifies the functional information in the user interface and does not select or otherwise specify in the user interface the corresponding virtualization information, the virtual appliance construction tool generating from the user-specified functional information in the user interface a virtual appliance functional model, querying the knowledge base to determine which configuration units have functional information that corresponds to the virtual appliance functional model without regard to the corresponding virtualization information, retrieving from the knowledge base both the functional information and the corresponding virtualization information for the configuration units that correspond to the virtual appliance functional model, and generating a virtual appliance blueprint that includes the configuration units that correspond to the virtual appliance functional model.