System for automated problem detection, diagnosis, and resolution in a software driven system
First Claim
1. A method for diagnosing and resolving problems in software-based systems, comprising:
- automating detecting said problems using software;
automating resolving said problems using software;
interrogating a local database to drive said automated detecting and said automated resolving;
storing executable code in said local database having a plurality of entries to define said automated detecting and said automated resolving;
updating said local database from a central database having a plurality of entries, said updating being initiated automatically without user intervention;
recording a count of said automated resolutions for each entry in said local database;
updating said central database with said count to generate a central total count in said central database of said automated resolutions;
updating a local total count in said local database from said central total count in said central database as part of said periodic update; and
computing priorities of said plurality of entries in said local database using said local total count.
5 Assignments
0 Petitions
Accused Products
Abstract
In many systems, computer software is a common source of failure or instability. The proliferation of multiple interacting applications from several different software vendors leads to “emergent” problems that are difficult or impossible to predict or prevent. The problems are compounded by the use of networks, which introduce the added complexity of applications on multiple machines interacting in complex scenarios. As a result, many business and home users are hindered from using software-based systems to their fullest potential. More effective use of these systems can be aided by an application which can provide services for monitoring, diagnosing, and solving problems that occur in the operation of the machines at a customer facility. In the system described herein, a database contains entries with executable code that can make use of these services in order to monitor, diagnose, and solve specific problems. Each entry in the database addresses a specific problem. The executable code is designed to isolate and recognize the problem, and then implement a fix or workaround for that problem. The executable code is designed to completely automate the entire process of detection and resolution of the problem. Further, manual intervention may be employed to complete the diagnosis or solution.
-
Citations
25 Claims
-
1. A method for diagnosing and resolving problems in software-based systems, comprising:
-
automating detecting said problems using software;
automating resolving said problems using software;
interrogating a local database to drive said automated detecting and said automated resolving;
storing executable code in said local database having a plurality of entries to define said automated detecting and said automated resolving;
updating said local database from a central database having a plurality of entries, said updating being initiated automatically without user intervention;
recording a count of said automated resolutions for each entry in said local database;
updating said central database with said count to generate a central total count in said central database of said automated resolutions;
updating a local total count in said local database from said central total count in said central database as part of said periodic update; and
computing priorities of said plurality of entries in said local database using said local total count. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
identifying hardware and software components that exist at a local site of said software-based system;
creating a selection from said entries in said central database that corresponds to said hardware and software components; and
modifying said local database to cause it to match said selection.
-
-
8. The method of claim 7, wherein said modifying further comprises:
- comparing said local database to said selection to determine differences; and
using said differences to perform said modification.
- comparing said local database to said selection to determine differences; and
-
9. The method of claim 8, wherein said comparing further comprises comparing a signature of said local database to a signature of said selection, wherein said signatures are adapted for detecting of said differences between entries.
-
10. A method for diagnosing and resolving problems in software-based systems, comprising:
-
automating detecting of said problems using software;
automating resolving of said problems using software;
interrogating a local database to drive said automating detecting and said automating resolving;
storing executable code in said local database to define said automating detecting and said automating resolving;
updating said local database from a central database initiated automatically without user intervention as the result of said automating resolving failing to succeed, and further comprising retrying of said automated resolving incorporating said update;
automating transmitting of a problem report to a call center if said retry fails to succeed;
wherein said transmitting of said problem report further includes transmitting information automatically gathered as a result of said automating detecting and said automating resolving, with said information automatically gathered including state information indicative of the creation of an entry in said central database; and
invoking a development tool operable to create executable code as a result of said state information, wherein said state information is provided to a programmer via said development tool for creating executable code adapted to be entered into said central database.- View Dependent Claims (11, 12, 13, 14, 15)
manually initiating a connection to said call center; and
using said connection from said call center to manually initiate operations for assisting in the manually diagnosing of said failure of said automated resolution.
-
-
15. The method of claim 10, further comprising the steps of:
-
recording said operations; and
providing said recording to a programmer, through a development tool operable for creating said executable code to be entered into said central database.
-
-
16. A method for reverting the state of a software-based system to a useable state, comprising:
-
defining a series of tests of critical functionality for said software-based system;
recording significant changes to said state as they happen;
associating a priority with each of said state changes;
applying said tests of critical functionality of said software-based systems; and
undoing said state changes in an order based on said priorities until said set of tests of critical functionality are indicative of said useable state. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
said sets of tests of critical functionality are stored in a local database;
said local database contains entries having executable code operable to define said sets of tests of critical functionality; and
updating said local database from a central database, wherein said updating is initiated automatically without user intervention.
-
-
18. A method as in claim 17 wherein said local database is a relational database.
-
19. A method as in claim 17 wherein said executable code is directly executable machine code.
-
20. A method as in claim 17 wherein said executable code is an interpreted representation.
-
21. A method as in claim 17 wherein said updating of said local databases is initiated automatically at predetermined intervals.
-
22. A method as in claim 17 wherein said updating of said local databases is initiated automatically as a result of a test of critical functionality failing to succeed.
-
23. A method as in claim 17 wherein said step of updating said local database comprises the steps of:
-
identifying hardware and software components that exist at a local site of said software based systems;
creating a selection from said entries in said central database that corresponds to said hardware and software components; and
modifying said local database to cause it to match said selection.
-
-
24. A method for automated diagnosis of problems in software-based systems, comprising:
-
detecting substantial state changes affecting a system;
recording said substantial state changes in response to said detecting;
associating a priority with each of said state changes;
interrogating a local database to drive said automated diagnosis; and
interrogating said local database using said substantial state changes as an index for said interrogating; and
using said priority to order said interrogating.
-
-
25. A computer program product including computer program code for diagnosing and resolving problems in software-based systems, comprising:
-
computer program code for automating detecting said problems using software;
computer program code for automating resolving said problems using software;
computer program code for interrogating a local database to drive said automated detecting and said automated resolving;
computer program code for storing executable code in said local database having a plurality of entries to define said automated detecting and said automated resolving;
computer program code for updating said local database from a central database having a plurality of entries, said updating being initiated automatically without user intervention;
computer prop-ram code for recording a count of said automated resolutions for each entry in said local database;
computer program code for updating said central database with said count to generate a central total count in said central database of said automated resolutions;
computer program code for updating a local total count in said local database from said central total count in said central database as part of said periodic update; and
computer program code for computing priorities of said plurality of entries in said local database using said local total count.
-
Specification