A method and apparatus enhancing software catalog manageability, providing
abstract software configuration, and desired state management. A first
mechanism enhances software catalog manageability. The first mechanism
includes a software model that separates metadata of software from actual
binaries of the software. A second mechanism abstracts software
configuration for automation. The second mechanism includes a
hierarchical software resource template structure that specifies
parameters, dependencies between parameters, features, options, and
parameters that cannot be predefined. A third mechanism provides for
desired state management and patch compliance assessments. The third
mechanism checks against a server template or software resource in a data
center model against what is installed on actual machines to determine
compliance.