Patent ID: 8595724

Claim:
A method for providing a virtual machine, the method comprising: storing software elements in a software element database, the software elements having a software element hierarchy including an operating system level, wherein the software elements include software element definitions including a software element name and a software element version associated for each software element definition; assigning a score to at least one of the software elements based at least in part upon the software element's hierarchy level, wherein the assigned scores provide priority to a given level of the hierarchy over levels of the hierarchy lower than the given level; providing virtual machine templates in a library, wherein the virtual machine templates include at least one software element associated with a software element from the software element database; providing a user interface for a user to specify desired software elements to be included in the virtual machine; calculating a score value for at least one virtual machine template from the library based on the scores assigned to the software elements, wherein a software element is a match if a software element name and a software element version match a software element name and software element version in the specified desired software elements; obtaining from the library, a selected virtual machine template having the highest score values; and, delivering the selected virtual machine template as the virtual machine to the hypervisor.