IP Library Granted Patent US 7,134,050
Granted Patent B2
US 7,134,050 · App. 10/641,985 · Granted Nov 7, 2006

Method and system for containing software faults

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 7,134,050
App. No.
10/641,985
Granted
Nov 7, 2006
Kind
B2
Abstract

The invention provides a method and system for containing software faults in a computer processing environment. The method for containing software faults comprises allocating memory for a software module instance; allocating memory for at least one object assigned to the software module instance; identifying at least on object assigned to the software module instance in memory; and restricting access to the memory to the software module instance.

Claims (98)

1. A method comprising:

allocating one or more restricted memory regions to a software module instance wherein the one or more restricted memory regions are larger than the memory region required to load the software module instance;

allocating a portion of the one or more restricted memory regions to at least one object assigned to the software module instance;

restricting access to the one or more restricted memory regions to the software module instance and

identifying attempts by the software module instance to access memory outside of the one or more restricted memory regions.

2. The method of claim 1 , further comprising:

receiving a request to manipulate the at least one object assigned to the software module instance; and

manipulating the at least one object assigned to the software module instance in accordance with the request.

3. The method of claim 2 , further comprising transmitting a response indicating completion of the request.

4. The method of claim 1 , further comprising:

identifying a software fault associated with the software module instance;

transmitting a message reporting the software fault associated with the software module instance;

repairing the software module instance; and

transmitting a message reporting that the software module instance is repaired.

5. The method of claim 4 , wherein the step of repairing includes:

destroying the unstable software module instance;

releasing memory for the software module instance;

releasing data storage memory allocated to the at least one object assigned to the

software module instance;

re-allocating memory for the software module instance;

re-allocating data storage memory for at least one object assigned to the software module instance;

locating the identified at least one object assigned to the software module instance into the re-allocated data storage memory; and

restricting access to the re-allocated memory to the instructions of the rebuilt software module instance.

6. The method of claim 1 wherein the step of restricting access to the memory comprises employing a memory access key facility of a processor.

7. A system for containing software faults, comprising:

a processor;

a memory connected to the processor for storing processor executable instructions to control the operation of said processor;

the processor executable instructions comprising:

instructions to allocate one or more restricted memory regions to a software module instance wherein the one or more restricted memory regions are larger than the memory region reguired to load the software module instance;

instructions to allocate a portion of the one or more restricted memory regions for at least one object assigned to a software module instance;

instructions to locate and identify at least one object in the one or more restricted memory regions;

instructions to restrict access to the portion of the restricted memory region allocated to the at least one object to the thee software module instance; and

instructions to identify whether the software module instance attempts to access memory outside of the one or more restricted memory regions allocated to the software module instance.

8. The system of claim 7 wherein the processor executable instructions further comprising:

instructions to receive a request to manipulate the at least one object assigned to the software module instance; and

instructions to manipulate the object of the software module instance in accordance with the request.

9. The system of claim 8 wherein the processor executable instructions further comprise instructions to transmit a response indicating completion of the request.

10. The system of claim 8 wherein the processor executable instructions further comprise:

instructions to identify a software fault associated with the software module instance;

instructions to transmit a message reporting instability of the software module instance to a second software module instance;

instructions to rebuild the software module instance; and

instructions to transmit a message reporting stability of the software module instance to the second software module instance.

11. The system of claim 10 wherein the processor executable instructions further comprise:

instructions to release the allocated memory for the software module instance; instructions to release the data storage memory for the at least one object assigned to the software module instance;

instructions to re-allocate memory for the software module instance;

instructions to locate and identify at least one object into the re-allocated data storage memory; and

instructions to restrict access to the re-allocated data storage memory to the instructions of the software module instance.

12. A system, comprising:

a processor;

a memory connected to said processor storing:

a first software module instance stored in a first restricted memory region that is larger than the size of the memory necessary to operate the first software module;

at least one object assigned to the first software module instance stored in the first restricted memory region;

a second software module instance stored in a second restricted memory region that is larger than the size of the memory necessary to operate the second software module;

at least one object assigned to the second software module instance stored in the second restricted memory region; and

processor executable instructions to control the operation of the processor;

the processor executable instructions comprising:

instructions to prevent the second software module instance from directly manipulating the at least one object assigned to the first software module instance if a fault is detected in the first software module instance by restricting the second software module instance from accessing the first restricted memory region;

instructions to prevent the first software module instance from directly manipulating the at least one object assigned to the second software module instance by restricting the first software module instance from accessing memory outside of the first restricted memory region; and

instructions to identify if the first software module instance attempts to access memory outside of the first restricted memory region or the second software module instance attempts to access memory outside the second restricted memory region.

13. The system of claim 12 wherein the processor executable instructions further comprise:

instructions to allow the second software module to indirectly manipulate the at least one object assigned to the first software module instance; and

instructions to allow the first software module to indirectly manipulate the at least one object assigned to the second software module instance.

14. The system of claim 12 wherein the processor executable instructions further comprise:

instructions to identify a software fault associated with the first software module instance;

instructions to transmit a message reporting the instability of the first software module instance;

instructions to rebuild the first software module instance; and

instructions to transmit a message reporting the stability of the first software module instance.

15. The system of claim 14 wherein the processor executable instructions further comprise:

instructions to reload the first software module instance;

instructions to reload the at least one object assigned to the first software module instance.

16. A system comprising:

a first software module instance;

at least one object assigned to the first software module instance;

a second software module instance;

means to isolate the second software module instance from the objects assigned to first software module instance;

means for identifying a software fault in the first software module instance;

means to isolate the second software module instance from a software fault in the first software module instance; and

means to repair the first software module instance.

17. The system of claim 16 wherein means to identify a software fault in the first software module instance comprises:

identifying an attempt by the first software module instance to directly manipulate data assigned to the second software module instance.

18. The system of claim 16 wherein means to repair the first software module instance comprises:

destroying the first software module instance; and

rebuilding the first software module instance from scratch.

19. The system of claim 16 wherein means to repair the fault in the first software module instance comprises:

identifying a known good state of the first software module instance; and

rebuilding the first software module instance from the known good state.

20. The system of claim 16 wherein means to repair the fault in the first software module instance comprises:

the first software module instance receiving communications from the second software module instance to identify the state of the system; and

rebuilding the software module instance to a state compatible with the state of the system.

21. The system of claim 16 comprising:

means for closing a communications channel between the second software module instance and the first software module instance upon identifying a software fault; and

means for re-opening the communications channel between the second software module instance and the first software module instance upon repairing the first software module instance.

22. The system of claim 16 wherein means to isolate the second software module instance from the first software module instance comprises means for closing a communications channel between a message subsystem and the first software module instance until the first software module is rebuilt.

23. The system of claim 16 wherein means to repair the first software module instance comprises:

means for releasing memory allocated to the first software module instance;

means for destroying the first software module instance;

means to rebuild the first software module instance; and

means to re-allocate memory to the rebuilt first software module instance.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 056157/0492 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →