Patent ID: 6990660

Claim:
An automated method for at least attempting to update software in a system having a first target computer in a non-update state connected across a network to an update server in a pre-update state, the system also having a package computer which is inaccessible to the first target computer but accessible to the update server, and a repository component accessible to the first target computer and the update server, the method comprising the steps of: putting at least one patch fingerprint which defines a specific software update into the repository component, the patch fingerprint comprising a patch signature and an existence test, wherein the patch signature is used to request information from the first target computer and the existence test uses the patch signature to determine whether the specific software update is needed on the first target computer; gathering information about the first target computer and sending the information back to the repository component; comparing at least a portion of the gathered information with the patch fingerprint using the existence test to determine whether the specific software update has a dependency on at least one of another specific software update, a specific software, and a specific hardware and if the specific software update is absent from the first target computer; if a known condition is met, then placing at least one task identifier on an update task list, the task identifier specifying the first target computer, the update task list stored at the update server, the task identifier also specifying at least one download address which references a location on the package computer that contains a software update for the first target computer; starting a task in response to the task identifier, the task attempting a first download of the software update from the package computer to the update server; if the first download completes successfully, then attempting a second download of the software update from the update server to the first target computer; and monitoring the attempted downloads for an outcome.