Patent ID: 7743373
Filing Date: 2010-06-22
Classification: G06F

Abstract:
1. A method in a data processing system for managing software provisioning, the method comprising: separating metadata of a definition of a software from executable binaries of the software using a software model, the software model including a software catalog, at least one software module representing the metadata, at least one software installable representing specific versions of the executable binaries, and at least one installation mechanism for installing the at least one software installable, wherein the metadata describes functions the software performs and what attributes are used to install the software; validating installation requirements of the software against functional capabilities of a target system; responsive to validating the installation requirements, traversing a set of software installables based on a priority; responsive to traversing the set of software installables, identifying a best software installable from the set of software installables for installation of the software based on installation prerequisites of each software installable in the set of software installables; responsive to identifying the best software installable, invoking the best software installable to install the software; abstracting installation configuration parameters and settings of the software using at least one software resource template, wherein the at least one software resource template is hierarchical and comprises a derived and simple parameter, wherein values of the derived parameter compose of one or more tokens with at least one token derived from another parameter, and wherein the simple parameter holds its own value; realizing the at least one software resource template structure to a target system structure, wherein the realizing comprises: creating instances of the software on the target system using the target system structure, the instances of the software including dependencies between software modules that correspond to dependencies between parameters of the at least one software resource template; responsive to detecting a change to the at least one software resource template, creating a new software resource template capturing the change; responsive to a software installation, comparing software resources deployed on a target system with software resources defined in a server template; determining a difference between the software resources deployed and the software resources defined; analyzing a list of approved and available patches in a software catalog, the list of approved and available patches being defined in a metadata of a software definition; identifying candidate patches that should be applied to a target system from the list of approved and available patches; comparing the candidate patches with patches installed on the target system; determining a difference between the candidate patches and patches installed; and presenting the difference between the software resources deployed and the software resources defined and the difference between the candidate patches and patches installed to a user.