Apparatus and method for on-line code only replacement of a...

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, C717S152000, C717S152000

Reexamination Certificate

active

06336215

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention is generally related to a system of processing software programs directed to computer operations and, more particularly, is related to a system and method for replacing a running program's code within the same process in software.
2. Description of Related Art
As known in the computer and software arts, software programs undergo many changes during its 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 must be 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 procedure, however, creates the 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 is that operating systems designed to allow software program updates on-line or on-the-fly, must 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 can never change in the old version or the new version.
It is also assumed that while the stack can be used and transferred from the old program in the old process to the new program in the new process, it implies that no new procedure area layers can 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 since 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.
The return value or parameter format changes required that an intraprocedure be written that adds extra overhead on each function call and makes 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 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 must insert an illegal instruction and assume 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.
Heretofore, 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 for on-line code replacement of a computer program running in a software process. In accordance with one aspect of the invention, the apparatus and method utilize a proposed variant of the UNIX™ exec system call, which will be referred to as a text-only exec.
In accordance with another 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.
In accordance with yet another embodiment, the present invention preserves all state based network connections during the transition to a new version of a program.


REFERENCES:
patent: 5027316 (1991-06-01), Frantz et al.
patent: 5974454 (1999-10-01), Apfel et al.
patent: 6073214 (2000-06-01), Fawcett
Okamoto, “Dynamic Program Modification in the Non-stop Software Extensible System (NOSES)”, IEEE, pp. 1779-1783, May 1994.*
Conradi et al., “Version models for software configuration management”, ACM Computing Surveys, vol. 30, No. 2, pp. 232-282, Jun. 1998.*
Heering et al., “Lazy and Incremental Program Generation”, ACM Transactions on Programming Languages and Systems, vol. 16, No. 3, pp. 1010-1023, May 1994.*
Wiggins, “An Overview of Program Visualization Tools and Systems”, ACM, pp. 194-200, Apr. 1998.*
Griswold, “Direct update of data flow representations for a meaning-preserving program restructuring tool”, ACM, pp. 42-55, Dec. 1993.

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 on-line code only replacement of a... 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 on-line code only replacement of a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus and method for on-line code only replacement of a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2873795

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