IP Library Granted Patent US 8,028,277
Granted Patent B2
US 8,028,277 · App. 11/751,044 · Granted Sep 27, 2011

Self-healing system and method for code optimization in a computing environment

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,028,277
App. No.
11/751,044
Granted
Sep 27, 2011
Kind
B2
Abstract

Systems and methods for optimizing performance in a computing environment are provided. The system comprises means for monitoring execution of annotated logic code associated with a software component to determine whether a condition has been satisfied, wherein annotations in the logic code provide one or more details about the software component, the details being useful to a healing agent to correct a problem associated with said condition during the execution of the logic code.

Claims (34)

1. A computer-implemented method for optimizing performance in a computing environment, the method comprising:

annotating logic code associated with a software component; and

monitoring execution of the annotated logic code to determine whether a condition has been satisfied, wherein annotations in the logic code provide one or more details about the software component, the details being useful to a healing agent to correct or prevent a problem associated with said condition during the execution of the logic code,

wherein the healing agent's actions to correct or prevent a problem result in instantiation of a proxy object with a first memory footprint,

wherein the proxy object provides a reference to a target object with a second memory footprint larger than the first memory footprint,

wherein the target object is removed from execution environment of the logic code, based on a determination that the target object is not immediately needed for proper execution and that removal of the target object would help optimize the execution of the logic code, and

wherein in response to invocation of the target object, the proxy object provides a reference to help restore the removed target object; wherein logic code for the healing agent is independent of the software component, so that a first healing logic code for correcting the problem can be replaced by a second healing logic code without substantially modifying logic code for the software component.

2. The method of claim 1 , further comprising invoking a healing agent to correct the problem according to the one or more details.

3. The method of claim 1 , wherein the one or more details provide information about a logic type or category to which the software component belongs.

4. The method of claim 1 , wherein the healing agent provides automated instructions on how to annotate the logic code to indicate location and type of annotations to be placed in the logic code.

5. The method of claim 1 , wherein the one or more details provide information about at least one parameter of relevance to healing of the software component.

6. The method of claim 1 , wherein the one or more details provide information about a preferred healing procedure.

7. The method of claim 1 , wherein the one or more details provide information about a first healing procedure to be performed by the healing agent.

8. The method of claim 2 , wherein the one or more details provide information about the condition in response to which the healing agent is invoked.

9. The method of claim 1 , wherein logic code for the healing agent is embedded in the software component.

10. A system for optimizing performance in a computing environment, the system comprising:

one or more processing units, in communication with data storage media units, for executing logic code stored on said data storage media;

means for monitoring execution of annotated logic code associated with a software component to determine whether a condition has been satisfied, wherein annotations in the logic code provide one or more details about the software component, the details being useful to a healing agent to correct or prevent a problem associated with said condition during the execution of the logic code,

wherein the healing agent's actions to correct or prevent a problem result in instantiation of a proxy object with a first memory footprint,

wherein the proxy object provides a reference to a target object with a second memory footprint larger than the first memory footprint,

wherein the target object is removed from execution environment of the logic code, based on a determination that the target object is not immediately needed for proper execution and that removal of the target object would help optimize the execution of the logic code, and

wherein in response to invocation of the target object, the proxy object provides a reference to help restore the removed target object; wherein logic code for the healing agent is independent of the software component, so that a first healing logic code for correcting the problem can be replaced by a second healing logic code without substantially modifying logic code for the software component.

11. The system of claim 10 , further comprising means for invoking a healing agent to correct the problem according to the one or more details.

12. The method of claim 10 , wherein the one or more details provide information about a logic category to which the software component belongs.

13. The method of claim 10 , wherein the healing agent provides automated instructions on how to annotate the logic code to indicate location and type of annotations to be placed in the logic code.

14. The method of claim 10 , wherein the one or more details provide information about a first healing procedure to be performed by the healing agent.

15. A computer program product comprising a non-transitory computer useable medium having a computer readable program, wherein the computer readable program when executed on a computer causes the computer to:

monitor execution of annotated logic code associated with a software component to determine whether a condition has been satisfied, wherein annotations in the logic code provide one or more details about the software component, the details being useful to a healing agent to correct a problem associated with said condition during the execution of the logic code,

wherein the healing agent's actions to correct or prevent a problem result in instantiation of a proxy object with a first memory footprint,

wherein the proxy object provides a reference to a target object with a second memory footprint larger than the first memory footprint,

wherein the target object is removed from execution environment of the logic code, based on a determination that the target object is not immediately needed for proper execution and that removal of the target object would help optimize the execution of the logic code, and

wherein in response to invocation of the target object, the proxy object provides a reference to help restore the removed target object; wherein logic code for the healing agent is independent of the software component, so that a first healing logic code for correcting the problem can be replaced by a second healing logic code without substantially modifying logic code for the software component.

16. The computer program product of claim 15 , wherein the computer readable program when executed on a computer further causes the computer to invoke a healing agent to correct the problem according to the one or more details.

17. The computer program product of claim 15 , wherein the one or more details provide information about a first healing procedure to be performed by the healing agent.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2007
From: BREITGAND, DAVID; GOLDSTEIN, MAAYAN; HENIS, EALAN ABRAHAM; WEINSBERG, YARON; SHEHORY, ONN MENAHEM
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 019713/0823 →
Continuity (1)
Related Publication 20080294942A1 · Nov 27, 2008