Upgrade of a program
First Claim
1. A method of performing an upgrade of a program on a processor having a state, the method comprising:
- receiving an upgraded version of the program into the processor;
creating a backup of the program in memory associated with the processor;
installing the upgraded version of the program;
rebooting the processor with the upgraded version of the program installed;
checking if the state of the processor is corrects;
setting a counter to indicate the number of times that the processor is rebooted; and
attempting to reboot the processor with the upgraded version of the program if the counter has not reached a predetermined threshold when the state of the processor is incorrect.
8 Assignments
0 Petitions
Accused Products
Abstract
A method and processor program product for performing an upgrade of a program on a processor are provided. An upgraded version of the program is received into the processor and a backup of the program is created in memory associated with the processor. The upgraded version of the program is then installed and the processor is rebooted. Prior to initializing other application drivers, a reboot driver checks if the state of the processor is correct. If the reboot driver determines that the state of the processor is incorrect, the system reverts to the backup of the program. In alternative embodiments, if the reboot driver determines that the state is incorrect, the system inhibits the loading of other application drivers. Additionally, the reboot driver may set a counter to indicate the number of times that the processor is rebooted. If the counter has not reached a predetermined threshold, the system attempts to reboot the processor with the upgraded version of the program. If the counter reaches the predetermined threshold, the system reverts to the backup of the program.
109 Citations
56 Claims
-
1. A method of performing an upgrade of a program on a processor having a state, the method comprising:
-
receiving an upgraded version of the program into the processor;
creating a backup of the program in memory associated with the processor;
installing the upgraded version of the program;
rebooting the processor with the upgraded version of the program installed;
checking if the state of the processor is corrects;
setting a counter to indicate the number of times that the processor is rebooted; and
attempting to reboot the processor with the upgraded version of the program if the counter has not reached a predetermined threshold when the state of the processor is incorrect. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
reverting to the backup of the program if the state of the processor is incorrect.
-
-
3. A method according to claim 1, further comprising:
inhibiting the loading of application drivers if the state is incorrect.
-
4. The method according to claim 1, wherein configuration data for the backup is stored in non-volatile memory.
-
5. The method according to claim 1, wherein the processor is a first server in a server cluster.
-
6. The method according to claim 5, further comprising:
-
communicating to a second server that an upgrade is to occur in the first server; and
confirming that second server is running a program which is compatible with the upgraded program prior to beginning the installation.
-
-
7. The method according to claim 6, further comprising:
receiving a signal prior to the first server beginning installation of the upgrade indicating that the second server will receive input and send output formerly associated with the first server.
-
8. The method according to claim 7, further comprising:
notifying the second server that the first server is in the process of rebooting.
-
9. The method according to claim 8, further comprising:
sending a confirmation to the second server that the first server has been upgraded.
-
10. The method according to claim 9, further comprising:
upgrading the second server.
-
11. The method according to claim 5, further comprising:
-
communicating to a second server that an upgrade is to occur in the first server;
sending a message to check if the second server is running a program which is compatible with the upgraded program prior to beginning the installation;
receiving at the first server a signal to abort the upgrade if the second server is not running a compatible version of the program.
-
-
12. The method according to claim 1, further comprising:
reverting to the backup after rebooting the processor a predetermined number of times.
-
13. The method according to claim 12, wherein the second server is part of a server cluster with the first server.
-
14. The method according to claim 12, wherein the upgraded program is sent to the first server from a remote location.
-
15. The method according to claim 12, wherein the installation of the upgrade is performed automatically.
-
16. The method according to claim 12, wherein no user input device or viewing device is attached to the first server which is upgraded.
-
17. The method according to claim 1, further comprising:
storing a number based on the counter in a database.
-
18. The method according to claim 17, wherein the database is the registry of an operating system.
-
19. A method of performing an upgrade of a program on a processor having a state, the method comprising:
-
receiving an upgraded version of the program into the processor;
creating a backup of the program in memory associated with the processor;
installing the upgraded version of the program;
rebooting the processor with the upgraded version of the program installed;
checking if the state of the processor is correct prior to running the upgraded version of the program;
inhibiting the loading of application drivers if the state is incorrect setting a counter to indicate the number of times that the processor is rebooted; and
attempting to reboot the processor with the upgraded version of the program if the counter has not reached a predetermined threshold when the state of the processor is incorrect. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
retrieving the backup of the program from memory if the state of the processor is incorrect.
-
-
21. The method according to claim 20, further comprising:
incrementing a counter each time the processor is rebooted.
-
22. The method according to claim 21, further comprising:
attempting to reboot the processor with the upgraded version of the program until the counter has reached a predetermined threshold.
-
23. The method according to claim 22, wherein the step of retrieving the backup program does not occur until the counter has reached the predetermined threshold.
-
24. The method according to claim 21, further comprising:
storing a number based on the counter in a database.
-
25. The method according claim 24, wherein the database is the registry of an operating system.
-
26. The method according to claim 19, wherein configuration data for the backup is stored in non-volatile memory.
-
27. The method according to claim 19, wherein the processor is a first server in a server cluster.
-
28. The method according to claim 27, further comprising:
-
communicating to a second server that an upgrade is to occur in the first server; and
confirming that the second server is running a program which is compatible with the upgraded program prior to beginning the installation.
-
-
29. The method according to claim 28, wherein the second server is part of a server cluster with the first server.
-
30. The method according to claim 28, wherein the upgraded program is sent the first server from a remote location.
-
31. The method according to claim 28, wherein the installation of the upgrade is performed automatically.
-
32. The method according to claim 28, wherein no user input device or viewing device is attached to the first server.
-
33. The method according to claim 27, further comprising:
-
communicating to a second server that an upgrade is to occur in the first server;
sending a message to check if the second server is running a resident program which is compatible with the upgraded program prior to beginning the installation; and
receiving at the first sever a signal to abort the upgrade if the second server is not running a compatible version of the upgraded program.
-
-
34. The method according to claim 33, further comprising:
sending a signal from the first server prior to the first server beginning installation of the upgrade indicating that the second server will receive input and send output formerly associated with the first server.
-
35. The method according to claim 34, further comprising:
notifying the second server that the first server is in the process of rebooting.
-
36. The method according to claim 35, further comprising:
sending a confirmation to the second server that the first server has been upgraded.
-
37. The method according to claim 36, further comprising:
upgrading the second server.
-
38. The method according to claim 33, further comprising:
-
sending from the first server a data stream including an expansion descriptor to the second server if the resident program running is compatible with the upgraded program, wherein the resident program and the upgraded program are in an object oriented environment; and
parsing the expansion descriptor from the data stream in the resident program.
-
-
39. The method according to claim 38, wherein the upgraded program has a parent object with an initial group of fields and an inherited child object with an initial group of fields.
-
40. The method according to claim 39, further comprising:
setting a data storage location for a new field in a corresponding child object of the resident program to a default if there is no new field data in the expansion descriptor corresponding to the new field in the corresponding child object of the resident program.
-
41. The method according to claim 39, further comprising:
-
identifying a child object identifier representative of the child object in the expansion descriptor in the resident program; and
identifying the data associated with a new field in the expansion descriptor in the resident program.
-
-
42. The method according to claim 41, further comprising:
updating a new field of a child object of the resident program corresponding to the child object identifier if the data structure of the corresponding child object of the resident program has a data storage location for the new field.
-
43. The method according to claim 41, further comprising:
ignoring the data associated with the new field in the expansion descriptor located in the resident program if the data structure of the corresponding child object of the resident program does not have a data storage location for the data associated with the new field.
-
44. A processor program product on a processor readable medium for use with a processor having a state, comprising:
-
processor code for rebooting the processor subsequent to an upgraded version of a processor program being installed;
processor code for checking if the state of the processor is set correctly;
processor code for inhibiting the loading of application drivers if the state is incorrect;
processor code for setting a counter to indicate the number of times that the processor is rebooted; and
processor code for attempting to reboot the processor with the upgraded version of the program if the counter has not reached a predetermined threshold when the state of the processor is incorrect. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
processor code for recalling a backup of the program from memory if the state of the processor is incorrect and the counter has reached the predetermined threshold; and
processor code for reinstalling the backup of the program.
-
-
46. The processor program product according to claim 44, further comprising:
-
processor code for sending a message from the processor located in a first server to a second server when an upgrade is to occur in the first server;
processor code for sending a message from the first server to check if the second server is running a resident program which is compatible with the upgraded program prior to beginning the installation; and
processor code for receiving at the first server a signal to abort the upgrade if the second server is not running a compatible version of the upgraded program.
-
-
47. The processor program product according to claim 46, wherein the second server is part of a server cluster with the first server.
-
48. The processor program product according to claim 47, further comprising:
processor code for sending a message for transferring control of input and output to the second server prior to the first server beginning installation of the upgrade.
-
49. The processor program product according to claim 47, wherein the upgraded program has a parent object with an initial group of fields and an inherited child object with an initial group of fields.
-
50. The processor program product claim 49, further comprising:
processor code for updating a new field of a child object of the resident program corresponding to the child object identifier if the data structure of the corresponding child object of the resident program has a data storage location for the new field.
-
51. The processor program product according to claim 49, further comprising:
processor code for ignoring the data associated with the new field in the expansion descriptor located in the resident program if the data structure of the corresponding child object of the resident program does not have a data storage location for the data associated with the new field.
-
52. The processor program product according to claim 46, further comprising:
-
processor code for sending form the first server a data stream including an expansion descriptor to the second server if the resident program running is compatible with the upgraded program, wherein the resident program and the upgraded program are in an object oriented environment; and
processor code for parsing the expansion descriptor from the data stream in the resident program.
-
-
53. The processor program product according to claim 52, further comprising:
processor code for setting a data storage location for a new field in a corresponding child object of the resident program to a default if there is no new field data in the expansion descriptor corresponding to the new field in the corresponding child object of the resident program.
-
54. The processor program product according to claim 52, further comprising:
-
processor code for identifying a child object identifier representative of the child object in the expansion descriptor in the resident program; and
processor code for identifying the data associated with a new field in the expansion descriptor in the resident program.
-
-
55. The processor program product according to claim 52, further comprising:
processor code for sending a confirmation to the second server that the first server has been upgraded.
-
56. A digital storage medium encoded with instructions which, when loaded into a first processor performs an upgrade of a program, the digital storage medium comprising:
-
receiving means for receiving the upgrade into the first processor and recognizing that the program is an upgrade of a current program which is resident on the first processor;
copy means for initiating copying the current program and initiating storage of a backup copy of the current program in memory;
installation means for installing the upgrade and rebooting the first processor;
counter means setting a counter to indicate the number of times that the processor is rebooted; and
rebooting means for attempting to reboot the processor with the upgraded version of the program if the counter has not reached a predetermined threshold when the state of the processor is incorrect;
inhibiting means for inhibiting the loading of application drivers if the state is incorrect in the first processor after rebooting; and
reversion means for recalling the backup copy of the current program and causing the installation of the backup copy if the installation of the upgrade fails.
-
Specification