Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1998-08-14
2004-03-16
Trammell, James P. (Department: 3621)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C712S208000, C712S244000
Reexamination Certificate
active
06708180
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to a method and apparatus for runtime remediation of object-code instructions in a computer program and, more particularly, to a method and apparatus for runtime remediation of date instructions in a computer program that is not year 2000 compliant.
2. Description of the Related Art
The so-called year 2000 problem, or millennium bug as it is sometimes referred to, has received considerable attention lately. The problem arises from the fact that date representations in programs, files, and databases often use a two-digit year (YY) value, representing the year 1998, for example, simply as “98”, with the century being understood. Programs that perform arithmetic or comparison operations on such dates may give incorrect or unexpected results when dealing with years after 1999, since the understanding as to the century may no longer be correct. Thus, a date reference of “00” for the year 2000 may be erroneously interpreted as referring to the year 1900. A program making such an erroneous interpretation may determine that a credit card expiring in the year “00” expired in the year 1900 or that a payment due in the year “00” was due in 1900, with unfortunate results.
Various remediation techniques have been proposed in the prior art, such as those described in U.S. Pat. No. 5,600,836 to Alter, U.S. Pat. No. 5,630,118 to Shaughnessy, U.S. Pat. No. 5,644,762 to Soeder, U.S. Pat. No. 5,668,989 to Mao, and U.S. Pat. No. 5,761,668 to Adamchick, all incorporated herein by reference. Perhaps the most straightforward technique is to modify the original source code (e.g., COBOL code) to change all two-digit year references to four-digit year references that cannot be misinterpreted. However, this is often impractical for several reasons, including the large repository of data files in the old format that often exist.
Various other, less radical techniques may be applied to either source code or object code. On such technique, described in U.S. Pat. No. 5,600,836, is called “windowing”. In windowing, two-digit year references are still understood is referring to a 100-year range, but one that is offset to include the years of interest, for example, the range 1928-2027. In this example, two-digit year references in the range 0-27 are interpreted as referring to the period 2000-2027, while two-digit year references in the range 28-99 are interpreted as referring to the period 1928-1999. While this technique must be used with caution to ensure that the year dates being processed do not fall outside the given 100-year range, it permits the use of existing data files.
Another technique, operating on object code, is that used by RTX Time Warp, part of the HDS RTX (Run Time eXtensions) Environment available from Hitachi Data Systems. Preliminarily, an object-code program is scanned for Subtract and Compare instructions having date operands that are susceptible to year 2000 failure. Each such date instruction is replaced by a “00” op code, and an entry for the instruction, identifying the program, the instruction location, the instruction type and the date format, is made in a registration table. When encountered at execution time, the “00” op code causes a suspension of execution, resulting in a transfer of control to RTX Time Warp. RTX Time Warp then looks for the instruction in the registration table and executes it while taking an appropriate corrective action. Thus, if the registered instruction is a Subtract instruction and produces a negative result (for example, if an operand of 4 representing an interval of 4 years is subtracted from a date operand 02 representing the year 2002), RTX Time Warp adds 100 to the result. Similarly, if the registered instruction is a Compare instruction (for example, comparing the operands 98 and 02 representing the year dates 1998 and 2002), RTX
Time Warp determines whether the condition code resulting from the comparison operation should be reversed to produce a correct result.
While the HDS tool has the advantage of being usable in situations where source code is unavailable, it is relatively limited in its repertoire of instructions that can be remediated (Subtract and Compare instructions) as well as the remediation techniques that are available.
SUMMARY OF THE INVENTION
In general, the present invention contemplates a method and apparatus for runtime remediation of object-code instructions (such as date instructions that are not year 2000 compliant) in a computer program. Before runtime, a setup function of a program monitor locates each instruction to be remediated in a load module of a user program and overlays the instruction with a trap instruction. The address of the overlaid instruction is stored in a scan slot of a window control table (WCT). The text of the overlaid instruction is stored in a corresponding operand slot of the WCT along with control information including a set of flags and windowing and cycling parameters.
At runtime, upon decoding a trap instruction, the CPU transfers control to an instruction simulation function of the program monitor, preferably using the trap instruction described in the related application referred to above. Upon gaining control, the instruction simulation function searches the scan slots of the WCT for the one containing the address of the overlaid instruction. Upon finding the scan slot, the instruction simulation function performs an instruction simulation operation in accordance with the control information in the corresponding operand slot, then returns control to the user program. If an execute flag is not set, the instruction simulation function invokes a specified user routine without executing the overlaid instruction. If the execute flag is set, the instruction simulation function executes the overlaid instruction in a mode of operation determined by the remaining flags. In a windowing mode, one or both instruction operands are compared with a specified delimiter, and the instruction is executed as though a specified increment were added to the operand before performing the operation of the instruction if the operand is less than the delimiter. In a cycling mode, a specified increment is added to the result the instruction would otherwise produce if that result is less than zero.
REFERENCES:
patent: 5121501 (1992-06-01), Baumgartner et al.
patent: 5454086 (1995-09-01), Alpert et al.
patent: 5546586 (1996-08-01), Wetmore et al.
patent: 5592613 (1997-01-01), Miyazawa et al.
patent: 5600836 (1997-02-01), Alter
patent: 5630118 (1997-05-01), Shaughnessy
patent: 5644762 (1997-07-01), Soeder
patent: 5668989 (1997-09-01), Mao
patent: 5761668 (1998-06-01), Adamchick
patent: 5809500 (1998-09-01), Nolan
patent: 5813012 (1998-09-01), Chase et al.
patent: 5878422 (1999-03-01), Roth et al.
patent: 5897633 (1999-04-01), Nolan
patent: 5930782 (1999-07-01), Shaughnessy
patent: 5950197 (1999-09-01), Beam
patent: 6003028 (1999-12-01), Koenig
patent: 6041330 (2000-03-01), Carman et al.
patent: 6044371 (2000-03-01), Person et al.
patent: 6065004 (2000-05-01), Soeder
patent: 6071317 (2000-06-01), Nagel
The Journal of Defense Software Engineering, Oct. 97, p. 18-p.25, “Dealing with Dates: Solutions for the Year 2000” by Robert A. Martin of MITRE Corporation.
http://www.year2000.com/archive/options.html, Procedural and Data Change Options for Century Compliance. “A Comparison of Procedural and Data Change Options for Century Compliance” by Andrew Eldridge, et al.
Daily Freeman Newspaper article, Jun. 06, 1998, p. 11, “Would-be inventor patents ‘simple’ solution to Year 2000 computer glitch”.
http://www.hds.com/voyager/announce.html; OaYDaNP4AkF_2X50qCCI7x#9cmfkwA0WOTfhjdp4C, Hitachi Data Systems, “HDS Voyager Family Leads S/390 Users into the Next Millennium —on Track and on Time”. Santa Clara, California, May 1997, 9 pages.
http://www.sas.com/software/year2000/yr2000.html, Software Technologies Year 2000 Compliance, “The Year 2000: Preparing for the Inevitable”, by Langston, et al, 7 pages.
wysiwyg://122/http://y2k.state.fl.us/y2ksite/yr2ktool
Dyck Greg A.
Moore Brian B.
Kinnaman, Jr. William A.
Trammell James P.
Wang Mary
LandOfFree
Method and apparatus for runtime remediation of object-code... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for runtime remediation of object-code..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for runtime remediation of object-code... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3218704