Apparatus and method for transferring state data when...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000

Reexamination Certificate

active

06314567

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention is generally related to a system of processing updated software programs and, more particularly, is related to a system and method for transferring state data between different versions of software programs.
2. Description of Related Art
As known in the computer and software arts, software programs undergo many changes during their product life. The changes either enhance the system through updates or remove problems (i.e., bugs) from the program steps. In either circumstance, the software program is usually replaced with a new version of the program.
Typically, when a software program is replaced with a new version, the old version of the program is terminated and the new version is started. This, however, creates a problem where the program operation is interrupted for some time period.
While there are some solutions for on-line software version changes, these techniques suffer from the following problems. One problem with computer systems in the prior art that are designed to allow real-time software updates is that they require a special operating system or support changes within the operating system. These changes may include modifications to the compilers and/or linkers.
Another problem is that operating systems designed to allow software program updates on-line or on-the-fly, use indirect addressing tables to link different modules together utilizing complicated mechanisms. The use of indirect addressing tables impacts the performance of the overall system software.
The prior art also suffers the problem of transferring the state from the old process to the new process, along with transferring control using the stack monitoring system. However, this transferring of the state to the new version program in the new process suffers the following performance problems.
First, the main function of the program in either the old version or the new version can never change.
While the stack can be used and transferred from the old program in the old process to the new program in the new process, no new procedure area layers can be added. New procedure area layers cannot be added because they would cause errors in the processing since they would be returning to procedures at different addresses.
Furthermore, when transferring control from an old version of a program in an old process to a new version of a program in a new process, the assumption that the program counter can be converted implies that the offset to a function or procedure may never change due to the offset addressing within the version of the program.
Transferring from an old program/process to a new version program/process also assumes that no extra global or static variables can be added or deleted. The reason is that this would cause errors in the execution of the new program/process.
Next, the transfer from an old program/process to a new version program/process implies that the addresses of the data remain constant across the two version, i.e., there is no reordering or optimization changes, etc.
For the return value or parameter format changes, an intraprocedure is written that adds extra overhead on each function call and make it more difficult to maintain the software.
Additionally, stack monitoring techniques cannot guarantee that the old program/process is not performing a time critical task when the state transfer routine is initiated.
Also, the new program/process loses attributes associated with the old process such as the process identification (ID), all the network connections, file connections, and the like, when the old process is terminated to restart within the new process.
In addition, to initiate state transfer, one inserts an illegal instruction and assumes there can be no other causes for this illegal instruction or trap, which would thereby make it possible to initiate a state transfer at the wrong time.
Hence, software users have lacked the ability to allow a program running in a process to be replaced with a new version of a program within the same process without loss of service or state.
SUMMARY OF THE INVENTION
The present invention is generally directed to an apparatus and method system and method for transferring state data between software programs within the same process. In accordance with one aspect of the invention, the apparatus and method repeatedly determine if a newer online program exists for an executing online program, save online program data if a newer online program exists, terminate the online program, execute the newer online program to provide the requested service, and utilize the preserved current program data during the newer online program's execution. The apparatus and method for on-line replacement of a program running in a process do not require a special operating system, but instead use a few standard operating system calls (i.e, fork and exec, etc.). Therefore, the apparatus is highly portable between different operating system machine types.
In accordance with one embodiment of the apparatus and method of the present invention, a checkpoint methodology allows the programmer maximum flexibility in addressing upgrade/replacement program issues and determines where, when and how the transition to a new version of a program should occur with least impact to the services.
In accordance with another embodiment of the present invention, procedures have complete flexibility to change arguments or return values and change calling order, function names, function code and the like within the new version of the program since stack monitoring techniques are not being used.


REFERENCES:
patent: 4825354 (1989-04-01), Agrawal et al.
patent: 5333308 (1994-07-01), Ananthanpilla
patent: 5359730 (1994-10-01), Marron
patent: 5377309 (1994-12-01), Sonobe et al.
patent: 5555418 (1996-09-01), Nilsson et al.
patent: 5696989 (1997-12-01), Miura et al.
patent: 6016553 (2000-01-01), Schneider et al.
patent: 6101327 (2000-08-01), Holte-Rost et al.
Title: Socket programming in the data communication laboratory, author: Toll, ACM, 1995.*
Title: Encapsulation of parallelism in the volcano query processing system, author: Grafe, ACM, 1990.*
Title: Migrating Sockets—End system support for networking with quality of service guarantees, author: Yau, IEEE, 1998.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Apparatus and method for transferring state data when... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Apparatus and method for transferring state data when..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus and method for transferring state data when... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2613802

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.