# US 6,295,611 B1 · Method and system for software recovery

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 6,295,611 B1
- Document ID: US6295611B1
- Status: Granted
- Kind: B1
- Application number: 09/211,135
- Filed: 1998-12-14
- Granted: 2001-09-25
- Earliest claimed: 1998-12-14
- Assignees: Sun Microsystems, Inc.
- Inventors: William Hayden Connor; Bruce Kenneth Haddon
- Web page: https://patentgrep.com/patent/US6295611B1

## CPC

- G06F 11/1469: {Backup restoration techniques}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In an object oriented software environment, a system and method is disclosed that addresses both state recovery and relationship recovery in the event of a system halt. The system is suited to enterprise-class distributed systems with extensive object relationships. Each essential object is saved in persistent storage. Essential values within each object are updated in storage according to a method within each object. After a partial or total halt of the system, the state of the software is reconstructed in a two phase process. In the first phase, the essential objects are restored from persistent storage, along with essential values. In the second phase, a method uniquely implemented by each object will reconstruct non-essential objects and variables. The second phase is ideally tailored to allow the system to be reconstructed even when the underlying hardware or software has been altered.

## Claims

### Claim 1

A method for saving and recovering the state of software in an object oriented software environment said method comprising the steps of:
(a) recording persistent objects into persistent storage, said recording occurring at times designated by each of a plurality of essential objects;
(b) instantiating a replacement object for each of the plurality of essential objects, based on the persistent object;
(c) executing a hydrate method within each of the plurality of essential objects;
(d) instantiating replacement non-essential objects; and
(e) generating non-essential values.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the step of recording persistent objects further comprises the step of serializing the persistent objects prior to storage.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the step of generating non-essential values further comprises the step of making at least one method call on at least one of the plurality of essential objects.

### Claim 4 (depends on 3)

The method according to claim 3, further comprising the step of repeating the at least one method call.

### Claim 5 (depends on 1)

The method according to claim 1, further comprising the step of configuring the persistent storage into a file system.

### Claim 6 (depends on 1)

The method according to claim 1, further comprising the step of configuring the persistent storage into a database structure.

### Claim 7 (depends on 1)

The method according to claim 1, further comprising the step of verifying, within each of the plurality of essential objects, whether all of its values have been restored.

### Claim 8

A system for saving and recovering the state of software in an object oriented software environment, said system comprising:
(a) persistent objects stored within persistent storage, said persistent storage accessible by the software environment, wherein said persistent objects are stored at times designated by each of a plurality of essential objects;
(b) a recovery manager for instantiating a replacement object for each of the plurality of essential objects based on the persistent object;
(c) a hydrate method within each of the plurality of essential objects, said hydrate method implemented to instantiate replacement non-essential objects and generate non-essential values.

### Claim 9 (depends on 8)

The system of claim 8, further comprising logic within the hydrate method to compensate for changes within the software environment.

### Claim 10 (depends on 8)

The system of claim 8, wherein said access to said persistent storage by the software environment is by way of a communications data network.

### Claim 11

A computer storage medium containing an a series of instructions executing on a computer for saving and recovering the state of software in an object oriented software environment, said series instructions comprising the steps of:
(a) recording persistent objects into persistent storage, said recording occurring at times designated by each of a plurality of essential objects;
(b) instantiating a replacement object for each of the plurality of essential objects, based on the persistent object;
(c) executing a hydrate method within each of the plurality of essential objects;
(d) instantiating replacement non-essential objects; and
(e) generating non-essential values.
