Claims
- 1. A method in a data processing system for updating a software component, the method comprising the computer implemented steps of:
determining whether to update the software component; responsive to a determination to update the software component, updating the software component to form an updated software component; automatically testing the updated software component; and responsive to a failure in testing the updated component, performing a corrective action.
- 2. The method of claim 1, wherein the determining step comprises:
determining whether an update is present for the software component; responsive to the update being present for the software component, determining whether the update should be applied to the software component; and responsive to a determination to apply the update to the software component, applying the update to the software component to form the updated software component.
- 3. The method of claim 1, wherein the corrective action includes rolling back the updated software component to a state prior to the update being made.
- 4. The method of claim 1, wherein the corrective action includes at least one of identifying an alternative update, rolling back the updated software component to the software component without the update, installing a different software component, and installing the alternative update.
- 5. The method of claim 1, wherein the testing step comprises:
identifying a test to perform from a database of tests to form an identified test; and performing the identified test of the updated component.
- 6. The method of claim 1, wherein the update is a new parameter for a configuration file.
- 7. The method of claim 1, wherein the update is to an executable file for the software component.
- 8. The method of claim 1 further comprising:
storing data on at least one of updates, roll backs, test results from testing of the updated component, occurrences of faults between sets of users, occurrences of faults between specific types of software components, and occurrences of faults between sets of operating systems.
- 9. The method of claim 1, wherein the automatically testing step uses at least one of performance testing, on-the-fly-regression testing, unit testing, and compatibility testing.
- 10. The method of claim 1, wherein a first party is a source of the software update and a second party provides a policy used in determining whether to update the software component.
- 11. The method of claim 1, wherein the determining step comprises:
determining whether the update is available; and if the update is available, determining whether to apply the update using a pattern of occurrences of faults correlating to at least one of specific types of software sources, users, types of operating systems, and types of data processing systems.
- 12. The method of claim 1 further comprising:
determining whether the software component was successfully updated to form the updated software component; and responsive to a failure to successfully update the software component, sending a notification of the failure.
- 13. The method of claim 1 further comprising:
determining whether the software component was successfully updated to form the updated software component; and responsive to a failure to successfully update the software component, reattempting updating of the software component.
- 14. The method of claim 13, wherein the notification is sent after at least two attempted updates to the software component have failed.
- 15. A computer process in a data processing system for deploying an update to a plurality of nodes in a network data processing system, the computer process comprising:
identifying nodes within the plurality of nodes in the network data processing system having a software component requiring an update to form a set of identified nodes; initiating updating of the set of identified nodes with the update to generate a set of updated nodes; automatically testing the set of updated nodes; and responsive to a test failure in a node in the set of updated nodes, performing a corrective action.
- 16. The computer process of claim 15, wherein the corrective action is at least one of sending a notification of the test failure, reattempting updating of nodes having the test failure, rolling back the update, and installing a different software component.
- 17. The computer process of claim 15 further comprising:
determining whether a failure occurred in a node when updating the software component in the set of identified nodes; and responsive to a failure in updating the software component in at least two nodes in the set of nodes, sending a notification of the failure.
- 18. The computer process of claim 15, further comprising:
determining whether a failure occurred in a node when updating the software component in the set of identified nodes; and responsive to a failure in updating the software component in the node, reattempting updating of the software component in the node.
- 19. The computer process of claim 18 further comprising:
responsive to a second failure to update the software component in the node, sending a notification of the failure.
- 20. The computer process of claim 15 further comprising:
storing data on metrics of at least one of successful deployments of updates in the plurality of nodes and results from testing of updates.
- 21. The computer process of claim 20 further comprising:
analyzing the data to identify patterns of test failures in the plurality of nodes.
- 22. The computer process of claim 21 further comprising:
modifying an identification of nodes within the plurality of nodes to receive future updates in a manner reducing test failures, wherein the identification is based on the patterns of test failures.
- 23. The computer process of claim 21 further comprising:
modifying an identification of nodes within the plurality of nodes to receive future updates in a manner in which some nodes in the plurality of nodes cease to receive updates for the software component, wherein the identification is based on the patterns of test failures.
- 24. The computer process of claim 21 further comprising:
modifying an identification of nodes within the plurality of nodes to receive future updates in a manner in which some nodes in the plurality of nodes cease to receive updates for the software component, wherein the some nodes are nodes in which failures are likely to occur and wherein the identification is based on the patterns of test failures.
- 25. The computer process of claim 21 further comprising:
modifying an identification of nodes within the plurality of nodes to receive future updates in a manner in which some nodes in the plurality of nodes receive the update at an accelerated rate, wherein the identification is based on the patterns of test failures.
- 26. A computer implemented process in a computer for updating a software component, the computer implemented process comprising:
determining whether to update the software component, wherein the software component is executing on the computer; responsive to a determination to update the software component, identifying a second computer also containing the software component for deployment of an update to the software component; initiating means for initiating an update of the software component on the second computer to generate an updated software component on the second computer, wherein the computer continues to execute the software component; automatically testing the updated software component on the second computer; and responsive to a failure in testing the updated component, performing a corrective action.
- 27. The method of claim 26, wherein the testing step includes:
migrating clients of the software component executing on the computer to the updated software component on the second computer.
- 28. The method of claim 27 further comprising:
responsive to successful testing of the software component, removing the software component on the computer from service.
- 29. A data processing system for updating a software component, the data processing system comprising:
a bus system; a communications unit connected to the bus system; a memory connected to the bus system, wherein the memory includes a set of instructions; and a processing unit connected to the bus system, wherein the processing unit executes the set of instructions to determine whether to update the software component; update the software component to form an updated software component in response to a determination to update the software component; automatically test the updated software component; and perform a corrective action in response to a failure in testing the updated component.
- 30. A data processing system for deploying an update to a plurality of nodes in a network data processing system, the data processing system comprising:
a bus system; a communications unit connected to the bus system; a memory connected to the bus system, wherein the memory includes a set of instructions; and a processing unit connected to the bus system, wherein the processing unit executes the set of instructions to identify nodes within the plurality of nodes in the network data processing system having a software component requiring an update to form a set of identified nodes; initiate an updating of the set of identified nodes with the update to generate a set of updated nodes; automatically test the set of updated nodes; and perform a corrective action in response to a test failure in a node in the set of updated nodes.
- 31. A data processing system for updating a software component, the data processing system comprising:
a bus system; a communications unit connected to the bus system; a memory connected to the bus system, wherein the memory includes a set of instructions; and a processing unit connected to the bus system, wherein the processing unit executes the set of instructions to determine whether to update the software component in which the software component is executing on the computer; identify a second computer also containing the software component for deployment of an update to the software component in response to a determination to update the software component; initiate an update of the software component on the second computer to generate an updated software component on the second computer in which the computer continues to execute the software component; automatically test the updated software component on the second computer; and perform a corrective action in response to a failure in testing the updated component.
- 32. A data processing system for updating a software component, the data processing system comprising:
determining means for determining whether to update the software component; updating means, responsive to a determination to update the software component, for updating the software component to form an updated software component; testing means for automatically testing the updated software component; and performing means, responsive to a failure in testing the updated component, for performing a corrective action.
- 33. The data processing system of claim 32, wherein the determining means is a first determining means and further comprises:
second determining means for determining whether an update is present for the software component; third determining means, responsive to the update being present for the software component, for determining whether the update should be applied to the software component; and applying means, responsive to a determination to apply the update to the software component, for applying the update to the software component to form the updated software component.
- 34. The data processing system of claim 32, wherein the corrective action includes rolling back the updated software component to a state prior to the update being made.
- 35. The data processing system of claim 32, wherein the corrective action includes at least one of identifying an alternative update, rolling back the updated software component to the software component without the update, installing a different software component, and installing the alternative update.
- 36. The data processing system of claim 32, wherein the performing means is a first performing means and wherein the testing means comprises:
identifying means for identifying a test to perform from a database of tests to form an identified test; and second performing means for performing the identified test of the updated component.
- 37. The data processing system of claim 32, wherein the update is a new parameter for a configuration file.
- 38. The data processing system of claim 32, wherein the update is to an executable file for the software component.
- 39. The data processing system of claim 32 further comprising:
storing means for storing data on at least one of updates, roll backs, test results from testing of the updated component, occurrences of faults between sets of users, occurrences of faults between specific types of software components, and occurrences of faults between sets of operating systems.
- 40. The data processing system of claim 32, wherein the automatically testing means uses at least one of performance testing, on-the-fly-regression testing, unit testing, and compatibility testing.
- 41. The data processing system of claim 32, wherein a first party is a source of the software update and a second party provides a policy used in determining whether to update the software component.
- 42. The data processing system of claim 32, wherein the determining means comprises:
first means for determining whether the update is available; and second means, responsive to the update being available, for determining whether to apply the update using a pattern of occurrences of faults correlating to at least one of specific types of software sources, users, types of operating systems, and types of data processing systems.
- 43. The data processing system of claim 32, wherein the determining means is a first determining means and further comprising:
second determining means for determining whether the software component was successfully updated to form the updated software component; and sending means, responsive to a failure to successfully update the software component, for sending a notification of the failure.
- 44. The data processing system of claim 32, wherein the determining means is a first determining means and the updating means is a first updating means, further comprising:
second determining means for determining whether the software component was successfully updated to form the updated software component; and second updating means, responsive to a failure to successfully update the software component, for reattempting updating of the software component.
- 45. The data processing system of claim 44, wherein the notification is sent after at least two attempted updates to the software component have failed.
- 46. A data processing system for deploying an update to a plurality of nodes in a network data processing system, the data processing system comprising:
identifying means for identifying nodes within the plurality of nodes in the network data processing system having a software component requiring an update to form a set of identified nodes; initiating means for initiating updating of the set of identified nodes with the update to generate a set of updated nodes; testing means for automatically testing the set of updated nodes; and performing means, responsive to a test failure in a node in the set of updated nodes, for performing a corrective action.
- 47. The data processing system of claim 46, wherein the corrective action is at least one of sending a notification of the test failure, reattempting updating of nodes having the test failure, rolling back the update, and installing a different software component.
- 48. The data processing system of claim 46 further comprising:
determining means for determining whether a failure occurred in a node when updating the software component in the set of identified nodes; and sending means, responsive to a failure in updating the software component in at least two nodes in the set of nodes, for sending a notification of the failure.
- 49. The data processing system of claim 46, wherein the updating means is a first updating means and further comprising:
determining means for determining whether a failure occurred in a node when updating the software component in the set of identified nodes; and second updating means, responsive to a failure in updating the software component in the node, for reattempting updating of the software component in the node.
- 50. The data processing system of claim 49 further comprising:
sending means, responsive to a second failure to update the software component in the node, for sending a notification of the failure.
- 51. The data processing system of claim 46 further comprising:
storing means for storing data on metrics of at least one of successful deployments of updates in the plurality of nodes and results from testing of updates.
- 52. The data processing system of claim 51 further comprising:
analyzing means for analyzing the data to identify patterns of test failures in the plurality of nodes.
- 53. The data processing system of claim 52 further comprising:
modifying means for modifying an identification of nodes within the plurality of nodes to receive future updates in a manner reducing test failures, wherein the identification is based on the patterns of test failures.
- 54. The data processing system of claim 52 further comprising:
modifying means for modifying an identification of nodes within the plurality of nodes to receive future updates in a manner in which some nodes in the plurality of nodes cease to receive updates for the software component, wherein the identification is based on the patterns of test failures.
- 55. The data processing system of claim 52 further comprising:
modifying means for modifying an identification of nodes within the plurality of nodes to receive future updates in a manner in which some nodes in the plurality of nodes cease to receive updates for the software component, wherein the some nodes are nodes in which failures are likely to occur and wherein the identification is based on the patterns of test failures.
- 56. The data processing system of claim 52 further comprising:
modifying means for modifying an identification of nodes within the plurality of nodes to receive future updates in a manner in which some nodes in the plurality of nodes receive the update at an accelerated rate, wherein the identification is based on the patterns of test failures.
- 57. A data processing system for updating a software component, the data processing system comprising:
determining means for determining whether to update the software component, wherein the software component is executing on the computer; identifying means, responsive to a determination to update the software component, for identifying a second computer also containing the software component for deployment of an update to the software component; iniating means for initiating an update of the software component on the second computer to generate an updated software component on the second computer, wherein the computer continues to execute the software component; testing means for automatically testing the updated software component on the second computer; and performing means, responsive to a failure in testing the updated component, for performing a corrective action.
- 58. The data processing system of claim 57, wherein the testing means includes:
migrating means for migrating clients of the software component executing on the computer to the updated software component on the second computer.
- 59. The data processing system of claim 58 further comprising:
removing means, responsive to successful testing of the software component, for removing the software component on the computer from service.
- 60. A computer program product in a computer readable medium for updating a software component, the computer program product comprising:
first instructions for determining whether to update the software component; second instructions, responsive to a determination to update the software component, for updating the software component to form an updated software component; third instructions for automatically testing the updated software component; and fourth instructions, responsive to a failure in testing the updated component, for performing a corrective action.
- 61. A computer program product in a computer readable medium for deploying an update to a plurality of nodes in a network data processing system, the computer program product comprising:
first instructions for identifying nodes within the plurality of nodes in the network data processing system having a software component requiring an update to form a set of identified nodes; second instructions for initiating updating of the set of identified nodes with the update to generate a set of updated nodes; third instructions for automatically testing the set of updated nodes; and fourth instructions, responsive to a test failure in a node in the set of updated nodes, for performing a corrective action.
- 62. A computer program product in a computer readable medium for updating a software component, the computer program product comprising:
first instructions for determining whether to update the software component, wherein the software component is executing on the computer; second instructions, responsive to a determination to update the software component, for identifying a second computer also containing the software component for deployment of an update to the software component; third instructions for initiating an update of the software component on the second computer to generate an updated software component on the second computer, wherein the computer continues to execute the software component; fourth instructions for automatically testing the updated software component on the second computer; and fifth instructions, responsive to a failure in testing the updated component, for performing a corrective action.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is related to the following applications entitled: “Method and Apparatus for Publishing and Monitoring Entities Providing Services in a Distributed Data Processing System”, Ser. No. ______, attorney docket no. YOR920020173US1; “Composition Service for Autonomic Computing”, Ser. No. ______, attorney docket no. YOR920020176US1; “Self-Managing Computing System”, Ser. No. ______, attorney docket no. YOR92002018US1; and “Adaptive Problem Determination and Recovery in a Computer System”, Ser. No. ______, attorney docket no. YOR920020194US1; all filed even date hereof, assigned to the same assignee, and incorporated herein by reference.