1460743709-f00056dc-7146-4c42-8d42-7171874e25f8

1. A method for self-healing from a fault in an operating system (OS), the method comprising:
detecting or predicting a fault in a kernel code of the OS, the kernel code comprising a plurality of kernel code modules;
determining that the fault is attributable to a faulty one of the plurality of kernel code modules;
isolating the faulty kernel code module from other ones of the plurality of kernel code modules; and
repairing the faulty kernel code module without crashing the OS, wherein repairing the faulty kernel code module without crashing the OS comprises uninstalling and reinstalling the faulty kernel module without affecting run-time operations of other ones of the plurality of kernel code modules.
2. The method of claim 1, wherein isolating the faulty kernel code comprises returning an error code to system processes that are executing the faulty kernel code module when the fault occurs.
3. The method of claim 2, wherein isolating the faulty kernel code further comprises:
suspending any new request for services of the faulty kernel code module that are made after detection of the fault, the new request being suspended until after the faulty kernel code module has been recovered or repaired.
4. The method of claim 1 further comprising:
identifying one or more OS processes that operate at the user level and rely on services provided by the faulty kernel code module; and
shutting down or suspending the one or more identified OS processes.
5. The method of claim 4 further comprising:
pursuant to repairing the faulty kernel code module, restoring and re-initializing the faulty kernel code module; and
pursuant to restoring and re-initializing the faulty kernel code module, restoring the one or more identified OS processes.
6. The method of claim 1, wherein the fault is detected or predicted by a kernel level fault detector, wherein the fault is isolated and repaired by a kernel level fault manager, and wherein the method further comprises:
managing, by a policy manager, the kernel level fault detector and the kernel level fault manager.
7. The method of claim 6, wherein the policy manager comprises executable code indicating a module specific memory usage limit or pattern for the faulty kernel code module, and wherein the kernel level fault detector comprises executable code for detecting a memory leak in the faulty kernel code module in accordance with the module specific memory usage limit or pattern.
8. The method of claim 1, wherein repairing the faulty kernel code module without crashing the OS comprises:
performing a set of tasks to repair the faulty kernel code module, the set of tasks being dependent on a type associated with the faulty kernel code module, wherein performing the set of tasks to repair the faulty kernal code module comprises making a fault assessment to identify a fault type and determine if any important data structures or data states have been damaged.
9. The method of claim 8, wherein performing the set of tasks to repair the faulty kernel code module further comprises:
identifying state information stored in a memory allocated by the faulty kernel code module;
storing the state information in a secure memory location prior to reinitializing the faulty kernel code module; and
restoring module specific data structures using the stored state information subsequent to rebooting the faulty kernel code module.
10. The method of claim 8, further comprising:
identifying one or more user level processes that rely on services provided by the faulty kernel code module; and
suspending the one or more identified user level processes pursuant to said identification by the module specific fault manager.
11. An apparatus comprising:
a computer readable storage medium storing programming for execution by a processor, the programming including:
a kernel level fault detector comprising executable code for detecting or
predicting a kernel level failure in an operating system (OS), the kernel level failure attributable to a faulty one of a plurality of kernel code modules; and
a kernel level fault manager comprising executable code for isolating the faulty kernel code module from other ones of the plurality of kernel code modules, and for repairing the faulty kernel code module without crashing the OS, wherein the kernel level fault manager repairs the faulty kernel code module without crashing the OS by uninstalling and reinstalling the faulty kernel module without affecting run-time operations of other ones of the plurality of kernel code modules.
12. The apparatus of claim 11, wherein the executable code for isolating the faulty kernel code module includes executable code for returning an error code to system processes that are executing the faulty kernel code module when kernel level failure occurs.
13. The apparatus of claim 11, wherein the executable code for isolating the faulty kernel code module includes executable code for temporarily suspending one or more system calls for executing the faulty kernel code module while the faulty kernel code module is being repaired, and
wherein the one or more system calls are made by other kernel code modules or by system processes.
14. The apparatus of claim 11, wherein the executable code for repairing the faulty kernel code module without crashing the OS includes executable code for reinitializing the faulty kernel code module without interfering with run-time operation of other ones of the plurality of kernel code modules, the reinitializing including restoring an initial state of the faulty kernel code module as was established when the OS was first booted.
15. The apparatus of claim 11, wherein the executable code for repairing the faulty kernel code module without crashing the OS includes executable code for reloading the faulty kernel code module without interfering with run-time operation of other ones of the plurality of kernel code modules, the reloading including removing the faulty kernel code module from the OS, and thereafter loading a new kernel code module to the OS, the new kernel code module comprising executable code for providing similar services as the faulty kernel code module.
16. The apparatus of claim 15, wherein the executable code for repairing the faulty kernel code module without crashing the OS further includes executable code for locating and repairing a corrupted portion of the faulty kernel code module, thereby generating the new kernel code module, the corrupted portion of the faulty kernel code module being at least partially responsible for the kernel level failure.
17. The apparatus of claim 11, wherein the programming further includes:
a crash analysis and debug module comprising executable code for identifying an underlying cause of the kernel level failure, the underlying cause corresponding to at least one of an illegal pointer access, a programmed crash point, a memory leak, and a deadlock.
18. The apparatus of claim 11, wherein the programming further includes:
a module specific fault manager comprising executable code for performing a set of tasks to repair the faulty kernel code module, the set of tasks being dependent on a type associated with the faulty kernel code module.
19. The apparatus of claim 18, wherein the executable code for performing a set of tasks includes executable code for:
identifying state information stored in a memory allocated by the faulty kernel code module;
storing the state information in a secure memory location prior to reinitializing the faulty kernel code module; and
restoring module specific data structures using the stored state information subsequent to rebooting the faulty kernel code module.
20. The apparatus of claim 11, wherein the programming further includes:
a module specific fault manager comprising executable code to identify and store debugging state information related to the faulty kernel code module; and
a crash analysis and debug module comprising executable code for debugging the faulty kernel code module based on the debugging state information.
21. An apparatus comprising:
a computer readable storage medium storing programming for execution by a processor, the programming including:
a kernel level fault detector comprising executable code for detecting or predicting a kernel level failure in an operating system (OS), the kernel level failure attributable to a faulty one of a plurality of kernel code modules;
a kernel level fault manager comprising executable code for isolating the faulty kernel code module from other ones of the plurality of kernel code modules, and for repairing the faulty kernel code module without crashing the OS; and
a policy manager comprising executable code for managing the kernel level fault detector and the kernel level fault manager.
22. The apparatus of claim 21, wherein the policy manager comprises executable code indicating a module specific memory usage limit or pattern for the faulty kernel code module, and wherein the kernel level fault detector comprises executable code for detecting a memory leak in the faulty kernel code module in accordance with the module specific memory usage limit or pattern.
23. An apparatus comprising:
a computer readable storage medium storing programming for execution by a processor, the programming including:
a kernel level fault detector comprising executable code for detecting or predicting a kernel level failure in an operating system (OS), the kernel level failure attributable to a faulty one of a plurality of kernel code modules;
a kernel level fault manager comprising executable code for isolating the faulty kernel code module from other ones of the plurality of kernel code modules, and for repairing the faulty kernel code module without crashing the OS; and
a module specific fault manager comprising executable code for performing a set of tasks to repair the faulty kernel code module, the set of tasks being dependent on a type associated with the faulty kernel code module, wherein the executable code for performing the set of tasks includes executable code for making a fault assessment to identify a fault type and determine if any important data structures or data states have been damaged.
24. An apparatus comprising:
a computer readable storage medium storing programming for execution by a processor, the programming including:
a kernel level fault detector comprising executable code for detecting or predicting a kernel level failure in an operating system (OS), the kernel level failure attributable to a faulty one of a plurality of kernel code modules;
a kernel level fault manager comprising executable code for isolating the faulty kernel code module from other ones of the plurality of kernel code modules, and for repairing the faulty kernel code module without crashing the OS;

a module specific fault manager comprising executable code for identifying one or more user level processes that rely on services provided by the faulty kernel code module; and
a user level fault manager comprising executable code for suspending the one or more identified user level processes pursuant to said identification by the module specific fault manager.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A system, for monitoring a web service, comprising:
a processor executing computer readable instructions using a memory, and implementing at least a management module configured to provide an interface to input a test scenario and a policy for a simulation test of a target system;
a database configured to store the received test scenario and policy;
a service module configured to provide the stored test scenario and policy to the agent;
an agent configured to monitor the target system by:
accessing the target system according to the test scenario and the policy,
carrying out the simulation test of the target system according to the policy, and
generating the simulation test result;
the service module further configured to provide the generated simulation test result to the management module; and
the management module further configured to output the simulation test result,
wherein:
the test scenario comprises information on a target browser application program interface (API), comprising installation information on the browser API, and
the carrying out comprises carrying out the simulation test of the target system to determine whether installing of the browser API is a normal browser API installation.
2. The system of claim 1, wherein the test scenario includes at least one of:
an access address of the target system,
account information for accessing the target system, and
information on a target application.
3. The system of claim 2, wherein the information on the target browser API and the information on the target application includes at least one of:
installation directory locations of the target browser API and the target application, and
version information and registry information on the target browser API and the target application.
4. The system of claim 1, wherein the policy includes at least one of:
a monitoring type of the target system,
a monitoring period,
a number of reattempts upon occurrence of an error during monitoring,
a log record range,
a period for checking whether the policy is changed,
a test timeout limit upon occurrence of an error, and
whether to collect an accessed page address.
5. The system of claim 1, wherein the agent includes:
a first sub-agent, configured to generate a monitoring schedule for monitoring the target system, in accordance with the test scenario and the policy; and
a second sub-agent, configured to perform the monitoring of the target system, according to the schedule;
wherein the first sub-agent provides to the service module the simulation test result generated by the second sub-agent.
6. The system of claim 5, wherein, when an amount of the memory occupied by the second sub-agent exceeds a predetermined threshold, the first sub-agent restarts the second sub-agent.
7. A method of monitoring a web service, comprising:
receiving, at an agent of a web service monitoring apparatus, a browser application program interface (API) installation test request indicating a target system;
accessing a browser API installation web page, of the target system, that includes browser API installation information, using the agent;
downloading a browser API installation file, in accordance with the browser API installation information, using the agent;
executing the browser API installation file to install a browser API in a virtual machine accessible by the agent;
making a determination, at the agent, as to whether the installing of the browser API is a normal browser API installation.
8. The method of claim 7, further comprising:
before accessing the browser API installation web page, making a determination as to whether the virtual machine includes a previously installed instance of the browser API; and
when the determination indicates the previously installed instance is included in the virtual machine, removing the previously installed instance.
9. The method of claim 7, further comprising, after the installing of the browser API, making an attempt to load a predetermined browser API installation complete web page, wherein the making of the determination, as to whether the installing of the browser API was the normal browser API installation, is based at least in part on a determination as to whether the attempt to load the predetermined browser API installation complete web page results in a normal page load.
10. The method of claim 9, wherein:
the agent further comprises a web browser control; and
the normal page load is determined based on whether a completion of a download of the predetermined browser API installation complete web page is indicated by the web browser control.
11. The method of claim 7, wherein the agent responds to the determination that the installing of the browser API is not the normal browser API installation by outputting an error message including:
installation error web page information,
an installation location of the browser API, and
version information and registry information on the browser API.
12. A method of monitoring a web service, comprising:
receiving, at an agent of a web service monitoring apparatus, an application installation test request indicating a target system;
accessing an application installation web page, of the target system, that includes browser application program interface (API) installation information, using the agent;
installing, in accordance with the browser API installation information, in a virtual machine accessible by the agent, a browser API, wherein the installed browser API includes application installation information;
downloading an application installation file from the target system according to the application installation information;
executing the application installation file to install an application in the virtual machine; and
making a determination, at the agent, as to whether the installing of the application is a normal installation.
13. The method of claim 12, further comprising:
before accessing the application installation web page, making a determination as to whether the virtual machine includes a previously installed instance of the application; and
when the determination indicates the previously installed instance is included in the virtual machine, removing the previously installed instance.
14. The method of claim 12, further comprising, after the installing of the application, making an attempt to load a predetermined application complete web page, wherein the making of the determination, as to whether the installing of the application was the normal application installation, is based on one or more of:
a determination as to whether the attempt to load the predetermined application installation complete web page results in a normal page load; and
receiving an installation normal finish message from an application installation process of the virtual machine.
15. The method of claim 14, wherein:
the agent further comprises a web browser control; and
the normal page load is determined based on whether a completion of a download of the predetermined application installation complete web page is indicated by the web browser control.
16. The method of claim 12, wherein the agent responds to the determination that the installing of the application is not the normal application installation by outputting an error message including:
installation error web page information,
an installation location of the application, and
version information and registry information on the application.
17. A method of monitoring a web service, comprising:
receiving, at an agent of a web service monitoring apparatus, a browser application program interface (API) execution test request for a target system;
accessing a browser API-installed web page, of the target system, that includes browser API information, using the agent;
executing a browser API in accordance with the browser API information;
making a determination, at the agent, as to whether the executing of the browser API is a normal browser API execution; and
in response to the determination that the executing of the browser API is not the normal browser API execution, outputting, at the agent, an error message including an installation location of the browser API.
18. The method of claim 17, further comprising, after the executing of the browser API, making an attempt to load a predetermined browser API execution complete web page, wherein the making of the determination, as to whether the executing of the browser API is the normal browser API execution, is based at least in part on whether the attempt to load the predetermined browser API execution complete web page results in a normal page load.
19. The method of claim 18, wherein:
the agent further comprises a web browser control; and
the normal page load is determined based on whether a completion of a download of the predetermined execution complete web page is indicated by the web browser control.
20. The method of claim 17, wherein the error message further includes:
execution error web page information, and
version information and registry information on the browser API received from the target system.
21. A method of monitoring a web service, comprising:
receiving, at an agent of a web service monitoring system, an application execution test request for a target system;
accessing an application-installed web page, of the target system, that includes browser application program interface (API) information, using the agent;
executing a browser API, in accordance with the browser API information, that includes application information;
executing an application in accordance with the application information;
making a determination, at the agent, as to whether executing of the application is a normal application execution; and
in response to the determination that the executing of the application is not the normal application execution, outputting, at the agent, an error message including an installation location of the browser API.
22. The method of claim 21, further comprising:
executing the application in a virtual machine; and
after the executing of the application, making an attempt to load a predetermined application execution complete web page;
wherein the making of the determination as to whether the executing of the application is the normal application execution, is based on one or more of:
a determination as to whether the attempt to load the predetermined application execution complete web page results in a normal page load; and
receiving an execution normal finish message from an application execution process of the virtual machine.
23. The method of claim 22, wherein:
the agent further comprises a web browser control; and
the normal page load is determined based on whether a completion of the download of the predetermined application execution complete web page is indicated by the web browser control.
24. The method of claim 21, wherein the error message further includes:
execution error web page information, and
version information, registry information and process information on the application received from the target system.