Method, system, apparatus and program product for distribution and instantiation of software upgrades
First Claim
Patent Images
1. A method for a server computer to distribute and install software upgrades on client computers, comprising:
- under control of the server computer,defining contents of software version upgrade kits of software installed on client computers, the software version upgrade kits each being self-contained and comprising files, actions, and an upgrade wizard to upgrade a software component from one version to another version;
writing the contents of the software version upgrade kits to a database on the server computer as a table of contents, the table of contents showing for each of the upgrade kits the contents of that upgrade kit and any software components required for an upgrade using that upgrade kit; and
for each of multiple client computers,comparing the table of contents of the software version upgrade kits to software installed on that client computer to determine one or more software version upgrade kits that will each effect an upgrade on that client computer from a version of a software component currently installed on that client computer to an updated software component version; and
building copies of the determined software upgrade kits for that client computer from the table of contents; and
for each of the multiple client computers,determining whether software components for a program that is currently running on that client computer are up-to-date; and
when one or more software components of the program are not up-to-date,interrogating other installed software components on that client computer to determine the versions of those not-up-to-date software components that are installed on that client computer;
notifying the server computer of the determined installed versions of the not-up-to-date software components on that client computer;
downloading copies of software upgrade kits built on the server computer for that client computer to upgrade the not-up-to-date software components;
for each of the downloaded software upgrade kits, invoking the upgrade wizard for that software upgrade kit on that client computer to upgrade one of the not-up-to-date software components on that client computer, the upgrade wizard performing the software component upgrade by performing the actions of the upgrade kit and using the files of the upgrade kit, the upgrade wizard keeping track of the upgrade'"'"'s progress and, if an error is detected during the upgrade, automatically rolling back the changes and restoring the client computer to a pre-upgrade state; and
after the upgrading of the not-up-to-date software components, restarting execution of the program so as to use the upgraded software components.
2 Assignments
0 Petitions
Accused Products
Abstract
Distributing and instantiating software version upgrades in a distributed computing environment. This includes defining the required versions of software as the contents of a software version upgrade kit. This is written, e.g., as a table of contents or a list, to a database to generate software version upgrade kit tables. These tables are used to generate software version upgrade kits. The kits are then used as a source to download copies of the upgrade kits to clients to be upgraded. This enables upgrading the software on the client.
351 Citations
8 Claims
-
1. A method for a server computer to distribute and install software upgrades on client computers, comprising:
-
under control of the server computer, defining contents of software version upgrade kits of software installed on client computers, the software version upgrade kits each being self-contained and comprising files, actions, and an upgrade wizard to upgrade a software component from one version to another version; writing the contents of the software version upgrade kits to a database on the server computer as a table of contents, the table of contents showing for each of the upgrade kits the contents of that upgrade kit and any software components required for an upgrade using that upgrade kit; and for each of multiple client computers, comparing the table of contents of the software version upgrade kits to software installed on that client computer to determine one or more software version upgrade kits that will each effect an upgrade on that client computer from a version of a software component currently installed on that client computer to an updated software component version; and building copies of the determined software upgrade kits for that client computer from the table of contents; and for each of the multiple client computers, determining whether software components for a program that is currently running on that client computer are up-to-date; and when one or more software components of the program are not up-to-date, interrogating other installed software components on that client computer to determine the versions of those not-up-to-date software components that are installed on that client computer; notifying the server computer of the determined installed versions of the not-up-to-date software components on that client computer; downloading copies of software upgrade kits built on the server computer for that client computer to upgrade the not-up-to-date software components; for each of the downloaded software upgrade kits, invoking the upgrade wizard for that software upgrade kit on that client computer to upgrade one of the not-up-to-date software components on that client computer, the upgrade wizard performing the software component upgrade by performing the actions of the upgrade kit and using the files of the upgrade kit, the upgrade wizard keeping track of the upgrade'"'"'s progress and, if an error is detected during the upgrade, automatically rolling back the changes and restoring the client computer to a pre-upgrade state; and after the upgrading of the not-up-to-date software components, restarting execution of the program so as to use the upgraded software components. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A client-server computing system comprising a server computer and at least one client computer that periodically docks with the server computer, the server computer including a database management system and a database, the database being partially replicated from the server computer to the client computer during docking, the client-server system being configured to perform a method to apply upgrades from the server computer to software components resident on the client computer, the method comprising:
-
defining contents of version upgrade kits that each include files and actions and an indication of an upgrade wizard to upgrade one or more software components from one version to another version, the software components to be upgraded by at least some of the upgrade kits including database schema for the partially replicated database on the client computer; writing the contents of the version upgrade kits to a database as a table of contents, the table of contents showing the contents of each upgrade kit and software components required by an upgrade using an upgrade kit; determining one or more software components for a currently running database management software program on the client computer that are not up-to-date, the database management software program interacting with the partially replicated database on the client computer, those one or more software components including at least one of the database schema for the partially replicated database on the client computer; retrieving identifications from the table of contents of one or more version upgrade kits to download from the server computer to the client computer to effect upgrades of the determined software components from installed versions to required versions, the identified upgrade kits including one or more of the at least some upgrade kits that upgrade the database schema for the partially replicated database on the client computer; building copies of the identified upgrade kits and of additional upgrade kits based on the table of contents, the additional upgrade kits for performing upgrades of software components on the client computer that are not needed for the database management software program; during docking of the client computer with the server computer, downloading copies of the built upgrade kits from the server computer to the client computer, each of the built upgrade kits being self-contained; invoking the upgrade wizard to perform upgrades on the client computer of at least the determined software components based on the downloaded upgrade kits, the upgrading of each software component including identifying a state of the upgrade for that component and performing at least some of the actions of the one or more upgrade kits for that software component based on the identified state, the upgrade wizard keeping track of the upgrade'"'"'s progress and, if an error is detected during the upgrade, automatically rolling back the changes and restoring the client computer to a pre-upgrade state; after performing the software component upgrades, restarting the database management software program; and subsequent to the docking of the client computer with the server computer, determining that the client computer needs one or more of the software component upgrades corresponding to the additional upgrade kits and performing those one or more upgrades based on the previously downloaded additional upgrade kits. - View Dependent Claims (7, 8)
-
Specification