WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for maintaining codes among distributed databases using a global database    
United States Patent5581749   
Link to this pagehttp://www.wikipatents.com/5581749.html
Inventor(s)Hossain; K. Omar (Midland, MI); Whyte; James J. (Mount Pleasant, MI)
AbstractA global code system maintains reference records for multiple transaction processing systems on a central database (called a global code database). A client (i.e., a user or an external application) cannot directly create reference records on a transaction processing system. Instead, the client must request the global codes system to create a reference record. The global code system responds, in real time, by adding the record to the global codes database and by distributing the record to one or more transaction processing systems in real time. Similarly, the client cannot directly update or delete reference records on the transaction processing system. Instead, the client must request the global code system to update or delete the reference record. The global code system responds, in real time, by updating or deleting the reference record on the global codes database and by distributing the update or deletion to the transaction processing systems which had been instructed to create the record. In addition to distributing record creations, updates and deletions to the transaction processing systems, the global code system distributes these operations to one or more shadow code systems. Each shadow code system provides a copy of a subset of the reference records for read-only access by remote application programs.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5581749
System and method for maintaining codes among distributed databases

     using a global database - US Patent 5581749 Drawing
System and method for maintaining codes among distributed databases using a global database
Inventor     Hossain; K. Omar (Midland, MI); Whyte; James J. (Mount Pleasant, MI)
Owner/Assignee     TheDow Chemical Company (Midland, MI)
Patent assignment
All assignments
Publication Date     December 3, 1996
Application Number     07/993,573
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     December 21, 1992
US Classification     707/10 705/1 705/28 717/171
Int'l Classification     G06F 017/30
Examiner     Black; Thomas G.
Assistant Examiner     Alam; Hosain T.
Attorney/Law Firm     Sterne, Kessler, Goldstein and Fox
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/600 395/200 395/700 395/650 395/200.03 364/403 364/468 364/478 364/489 364/401 364/226.3 364/282.4
Patent Tags     maintaining codes among distributed databases global database
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5418945
Carter
707/8
May,1995

[0 after 0 votes]
5361199
Shoquist
705/26
Nov,1994

[0 after 0 votes]
5333316
Champagne
707/8
Jul,1994

[0 after 0 votes]
5261102
Hoffman
726/19
Nov,1993

[0 after 0 votes]
5231566
Blutinger
705/27
Jul,1993

[0 after 0 votes]
5230073
Gausmann
707/3
Jul,1993

[0 after 0 votes]
5216612
Cornett
700/96
Jun,1993

[0 after 0 votes]
5136707
Block
707/201
Aug,1992

[0 after 0 votes]
5093911
Parks
707/104.1
Mar,1992

[0 after 0 votes]
5058000
Cox
707/10
Oct,1991

[0 after 0 votes]
4945474
Elliott
714/16
Jul,1990

[0 after 0 votes]
4881166
Thompson
707/8
Nov,1989

[0 after 0 votes]
4868866
Williams, Jr.
707/9
Sep,1989

[0 after 0 votes]
4714992
Gladney
707/206
Dec,1987

[0 after 0 votes]
4432057
Daniell
707/8
Feb,1984

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A computer-based method which enables a client to maintain reference codes on multiple transaction processing systems in a transaction processing environment, the method comprising the steps of:

(1) receiving from the client a code maintenance request to carry out a code maintenance operation;

(2) if said request is a request to create a record, then

receiving a field value of said record from said request,

creating said record with said field value on a global code database of a global code system, and

distributing a create message to a distribution target, wherein said create message instructs said distribution target to create a copy of said record with said field value on an associated target database;

(3) if said request is a request to read said record, then

receiving a query,

retrieving, from said global code database, said record identified by said query, and

presenting values of said record to the client;

(4) if said request is a request to update said field value of said record, then

receiving an updated field value of said record,

updating said field value in said global code database with said updated field value, and

distributing an update message to said distribution target, wherein said update message instructs said distribution target to update said copy of said record on said associated target database; and

(5) if said request is a request to delete said record, then

deleting said recoil from said global code database, and

distributing a delete message to said distribution target, wherein said delete message instructs said associated target database to delete said copy of said record on said target database,

wherein said code maintenance operation is carried out on said record in said global code database before being carried out on said copy of said record in any of said target databases of the multiple transaction processing systems.

2. The method of claim 1, wherein if said request is a request to discontinue said record, then marking said record on said global code database to indicate that said field values cannot be changed by said client.

3. The method of claim 1, wherein if said request is a request to outsee said record to a superseding record, then

inserting in said record on said global codes database a pointer to said superseding record, and

distributing an outsee message instructing said associated target database to insert said pointer in said copy of said record on said target database.

4. The method of claim 1, further comprising the steps of:

receiving standardized input from a user;

extracting said request from said standardized input;

generating standardized output from said values of said record retrieved in step (3); and

sending said standardized output to said user.

5. The method of claim 1, further comprising the steps of:

receiving standardized input from an external application;

extracting said request from said standardized input;

generating standardized output from said values of said record retrieved in step (3); and

sending said standardized output to said external application.

6. The method of claim 1, further comprising the steps of:

determining a security profile of said client; and

carrying out said code maintenance operation only if said code maintenance request is permitted by said security profile.

7. The method of claim 1, further comprising the steps of:

determining a record profile of said record; and

carrying out said code maintenance operation only if said code maintenance request is permitted by said record profile.

8. The method of claim 1, further comprising the steps of:

determining a record profile of said record; and

carrying out said code maintenance operation only if said field value received is within a range permitted by said record profile.

9. The method of claim 1, further comprising the step of logging said code maintenance operation on a logical code maintenance operation audit trail.

10. The method of claim 9, further comprising a step of logging each component physical code maintenance operation of said code maintenance operation on a physical code maintenance operation audit trail.

11. The method of claim 1, further comprising the steps of:

generating an acknowledgement if said code maintenance operation terminates successfully, and

generating an error code if said code maintenance operation does not terminate successfully.

12. The method of claim 1, wherein if said request is a request to perform said code maintenance operation in a background mode, then:

asynchronously carrying out said code maintenance operation; and

receiving any additional code maintenance request operation before completion of said code maintenance operation.

13. The method of claim 1, wherein said distributing step of steps (2), (4) and (5) comprises the steps of:

generating a base message to instruct said distribution target to perform a distribution operation on said record;

identifying any support record, wherein said support record either directly or indirectly supports said record;

generating a support message to instruct said distribution target to perform said distribution operation on said support record;

stacking said base message and each said support message in a distribution package so that no relative base message associated with a relative base record occurs in said distribution package before a relative support message associated with relative support record, wherein said relative support record is a support record of said base record; and

sending said distribution package to said distribution target.

14. The method of claim 13, wherein said step of generating said support message comprises the step of determining whether a support message associated with a selected support record has been sent to said distribution target and, if not, then generating said support message.

15. The method of claim 1, wherein said distributing step of steps (2), (4) and (5) comprises the steps of:

identifying a destination area of the transaction processing environment from which said request was issued; and

selecting as said distribution target a transaction processing system in said destination area wherein said distribution target maintains a file associated with said record.

16. The method of claim 1, wherein said distributing step of steps (2), (4) and (5) comprises the steps of:

identifying a destination area from which said request was made; and

selecting as said distribution target a shadow code system in said destination area.

17. The method of claim 1, further comprising the step of logging said distributing step of steps (2), (4) and (5) on a distribution audit trail.

18. The method of claim 1, further comprising the steps of:

receiving a distribution request to perform a distribution operation on said record;

receiving a destination area; and

distributing a distribution message to said distribution target in said destination area, wherein said distribution message instructs said distribution target to perform said distribution operation on said copy of said record on said associated target database.

19. The method of claim 1, wherein said distributing step of step(s) (2), (4) and (5) comprises the step of generating a distribution message, wherein said distribution message instructs said distribution target to perform a distribution operation on said record so that said field values of said copy of said record include any language variations that comply with language restrictions of said distribution target.

20. The method of claim 1, wherein said distributing step of step(s) (2), (4) and (5) comprises the step of generating a distribution message, wherein said distribution message instructs said distribution target to perform a distribution operation on said record and wherein said distribution message is formatted according to a release version of said distribution target.

21. The method of claim 1, further comprising the steps of:

detecting an exceptional error during said code maintenance operation;

capturing system-specific information; and

writing an indication of said exceptional error and said system-specific information to an abnormal event audit trail.

22. The method of claim 21, further comprising the steps of:

analyzing said exceptional error and said system-specific information to determine whether said exceptional error is potentially recoverable without human intervention, and, if it is, then attempting to recover from said error;

determining whether said attempt was successful; and

writing an indication of whether said attempt was successful to said abnormal event audit trail.

23. A computer-based system which maintains codes on multiple transaction processing systems in a transaction processing environment, comprising:

a global code database;

a distribution module which generates a message to instruct a distribution target in a destination area of one of the transaction processing systems to perform a distribution operation on a record; and

a code maintenance module having:

a create module having means for creating said record on said global code database and means for invoking said distribution module to instruct said distribution target to create a copy of said record on a target database associated with said distribution target, wherein a field value of said record is specified by a client,

a read module having means for retrieving said record from said global code database using a query specified by said client, and means for presenting said record,

an update module having means for updating said record in said global code database, and means for invoking said distribution module to instruct said distribution target to update said copy of said record in said target database, wherein said record and said field value am specified by said client, and

a delete module having means for deleting said record from said global code database, and means far invoking said distribution module to instruct said distribution target to delete said copy of said record from said target database, wherein said record is specified by said client,

wherein said code maintenance module operates on said record in said global code database before said distribution target operates on said copy of said record in any of said target databases of the multiple transaction processing systems.

24. The system of claim 23, wherein said code maintenance module further comprises a discontinue module having means for marking said record on said global code database to indicate that said field value cannot be changed by said client, wherein said record is specified by a client.

25. The system of claim 23, wherein said code maintenance module further comprises an outsee module having

means for inserting in said record on said global codes database a pointer to a superseding record, wherein said record and said superseding record are specified by said client, and

means for invoking said distribution module to instruct said distribution target to insert said pointer in said record on said target database.

26. The system of claim 23, further comprising a front end which handles communication between said client and said code maintenance module, said front end having:

receiving means for receiving input from said client;

means for extracting a request from said input;

invoking means for invoking a module of said code maintenance module, wherein said module is specified by of said request;

means for receiving output from said code maintenance module, and

presenting means for presenting said output to said client.

27. The system of claim 26, wherein said front end comprises a computer interface which receives standardized request messages from an external application and sends standardized output messages to said external applications.

28. The system of claim 26, wherein said front end comprises a user interface which receives standardized requests from a user and sends standardized presentations to said user.

29. The system of claim 26, further comprising a security module having

a security profile table,

means for consulting said security profile table to determine authorized code maintenance operations, wherein said client is authorized to invoke said authorized code maintenance operations, and

means for enabling said invoking means if said client is authorized to invoke said requested module.

30. The system of claim 23, further comprising a security module having

a security profile table that indicates a security profile for each client authorized to use the system,

means for consulting said security profile table to determine whether said client is authorized to invoke a requested module of said code maintenance module, and

means for preventing said requested module from being invoked if said client is not authorized to invoke said requested module.

31. The system of claim 23, further comprising a security module having

a record profile table which has entries for records maintained in the system,

means for consulting said record profile table to determine whether a requested module of said code maintenance module is permitted to carry out a requested action on said record, and, if not, then preventing said requested module from carrying out said requested action.

32. The system of claim 23, further comprising a code maintenance audit log module which is invoked by said code maintenance module with physical code maintenance data, said audit log module comprising:

a physical code maintenance audit trail, and

means for writing said physical code maintenance data to said physical code maintenance audit trail.

33. The system of claim 32, wherein said code maintenance audit log module further comprises:

a logical code maintenance audit trail,

means for extracting logical code maintenance data from said physical code maintenance data, and

means for writing said logical code maintenance data to said logical code maintenance audit trail.

34. The system of claim 23, further comprising:

means for generating an acknowledgement if a requested module of said code maintenance module terminates successfully, and

means for generating an error code if said requested module generates or detects an error.

35. The system of claim 23, further comprising a background transaction manager which is invoked if said client requests performance of a code maintenance operation in a background mode, said background transaction manager having:

means for receiving input data entered by said client;

means for invoking a requested code maintenance module to carry out said code maintenance operation in the background; and

means for asynchronously communicating said input data to said requested module.

36. The system of claim 23, wherein said distribution module comprises:

message generating means for generating a base message to instruct said distribution target to perform a distribution operation on said record, and generating, for each support record that supports said record, a support message to instruct said distribution target to perform said distribution operation on said support record;

synchronization means for stacking said base message and each said support message in a distribution package so that each relative base message follows each relative support message, where

said relative base message is a message associated with a relative base record,

said relative support message is a message associated with a relative support record, and

said relative support record supports said relative base record; and

destination server means for sending said distribution package to said distribution target.

37. The system of claim 36, wherein said distribution module further comprises:

support record identifying means for consulting a base-support table to identify any support record, wherein said support record either directly or indirectly supports said record;

a base-support table which identifies support records that support records in said global codes database; and

support record identifying means for consulting said base-support table to identify said support records that support said record.

38. The system of claim 23, wherein said distribution module comprises:

a system layout table which identifies a potential distribution target in each said destination area; and

means for consulting said system layout table to identify said distribution target.

39. The system of claim 23, further comprising a distribution audit log which records said distribution operation.

40. The system of claim 39, wherein said distribution module further comprises:

optimizing means for consulting said distribution audit log to determine whether support record that supports said record has been sent to said distribution target; and

means for causing a support message to be generated and sent to said distribution target if said support record has not been sent to said distribution target, wherein said support message instructs said distribution target to perform said distribution operation on said support record.

41. The system of claim 23, wherein said distribution module comprises:

a permitted languages table that indicates acceptable language variations for said distribution target; and

message generating means for

identifying any language variation in said field of said record, and

including said language variation in said message if said language variation is acceptable for said distribution target.

42. The system of claim 23, wherein said distribution module comprises:

a release version table which indicates a release version of said destination target, and

message generating means for consulting said release version table and generating said message in a format that complies with said release version.

43. The system of claim 23, further comprising:

means for detecting an exceptional error;

means for capturing system-specific information associated with said exceptional error;

an abnormal event log;

means for writing an indication of said exceptional error and said system-specific information to said abnormal event log.

44. The system of claim 43, further comprising an error management module having:

means for analyzing said exceptional error and said system-specific information to determine whether said exceptional error is potentially recoverable without human intervention;

means for attempting to recover from said exceptional error if said exceptional error is recoverable without human intervention;

means for determining whether said attempt to recover was successful; and

means for writing an indication of whether said attempt to recover was successful to said abnormal event audit trail.

45. A computer-based system for maintaining codes across multiple transaction processing systems, comprising:

a global code database for maintaining a master list of records;

modification means for modifying a record in said global code database in response to a code maintenance request from one of the multiple transaction processing systems; and

distribution means for distributing a local copy of said modified record from said global code database to said requesting one of the multiple transaction processing systems and to any other ones of the multiple transaction processing systems which use said modified record,

wherein said record is modified in said global code database before said local copy of said modified record is distributed to any of the multiple transaction processing systems.

46. The computer-based system of claim 45, wherein said modification means comprises:

a create module having means for creating a record in said global code database and means for invoking said distribution means to instruct a distribution target of a transaction processing system to create a local copy of said record on a target database associated with said distribution target;

a read module bring means for retrieving a record from said global code database using a query specified by a client;

an update module having means for updating a record in said global code database and means for invoking said distribution means to instruct a distribution target of a transaction processing system to update a local copy of said record in a target database; and

a delete module having means for deleting a record from said global code database and means for invoking said distribution means to instruct said distribution target to delete a local copy of said record from said target database.

47. The computer-based system of claim 45, wherein said distribution means comprises:

means for distributing a message to said transaction processing systems, said message including said modified record and instructions for a distribution target in a destination area of a transaction processing system to perform a modification operation on said modified record to modify said local copy of said modified record.

48. A computer-based method for maintaining codes across multiple transaction processing systems, comprising the steps of:

maintaining a master list of record in a global code database;

receiving a code maintenance request from one of the multiple transaction processing systems;

modifying a record in said global code database in response to said code maintenance request; and

distributing a local copy of said modified record from said global code database to said one of the multiple transaction processing systems and to any other ones of the multiple transaction processing systems which use said mixed record.

wherein said record is modified in said global code database before said local copy of said modified record is distributed to any of the multiple transaction processing systems.

49. The computer-based of claim 48, wherein said steps of modifying and distributing comprise the steps of:

if said request is to create a record, then

receiving a field value of said record,

creating said record with said field value in said global code database, and

distributing a create message to a distribution target, wherein said create message instructs said distribution target to create a copy of said record with said field value in an associated target database;

if said request is to read a record, then

receiving a query form one of the multiple transaction processing systems,

retrieving said record identified by said query, and

presenting values of said record to said one of the multiple transaction processing systems;

if said request is a request to update a field value of a record, then

receiving an updated field value of said record,

updating said field value with said updated field value in said global code database, and

distributing an update message to a distribution target, wherein said update message instructs said distribution target to update a local copy of said record in an associated target database; and

said request is a request to delete a record, then

deleting said record from said global code database, and

distributing a delete message to a distribution target, wherein said delete message instructs an associated target database to delete said local copy of said record from said target database.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to a distributed database, and more particularly, to a system and method for integrating multiple transaction processing systems and maintaining consistency of codes used therein.

2. Related Art

Businesses perform a variety of time consuming administrative functions. These generally include order processing, inventory control, accounting, manufacturing control, and personnel recordkeeping. Such functions can become quite arduous for large companies. As technology has evolved, computerized database management systems have become available to automate these processes. Such database management systems are also known as "transaction processing systems".

A database management system is a set of software programs that controls the organization, storage and retrieval of data (also called codes) in a database. The database management system handles the repetitive tasks involved with data processing so that a user is free to perform higher level functions.

A database stores data as a collection of related files. Each file contains a collection of related logical records, and each logical record contains a collection of related fields. A logical record may be made up of multiple physical records. That is, a field of a logical record may either be a value or another record. In the latter circumstance, the record having such a field is said to be a base record, and the record which constitutes the field is a support record of the base record.

Because a database management system uses a number of rules to process the data which it manages, the database management system also controls the security and integrity of the dam. When data corruption or ambiguity occurs, it most often results from operator (human) error. Such ambiguity is particularly prevalent between multiple transaction processing systems. This is explained in detail below.

As computer technology has advanced in the last twenty years, businesses have generally automated their administrative functions in a piecemeal fashion. For example, a transaction processing system would be purchased to automate an accounting department. Next, a transaction processing system would be purchased to automate inventory control. Finally, a transaction processing system would be installed to handle order processing. This type of bottom-up (rather than top-down) computerization often resulted in a number of independent systems which are unable to effectively communicate or share data.

Accordingly, any communication between the different transaction systems requires operator intervention. For example, if a new product is added into the order entry system, it must also be manually entered into the accounting system, otherwise a bill could not be prepared on the accounting system. Many problems result from this lack of communication/data sharing between the various transaction processing systems.

First, the integrity of data between the different transaction processing systems cannot be ensured. For example, if a product code PC101 is used to represent product X in the order processing system and a product code P101 is used to represent the same product in the inventory control system, then attempts to share data between the two systems will cause errors. It is not clear whether PC 101 and P 101 represent the same or different products. Similarly, it is difficult to determine whether a customer entered into the accounting system as John Doe and into the order entry system as J. Doe Company are the same or distinct entities.

A second deficiency of the conventional transaction processing environment is the lack of data currency. Conventional systems do not communicate with one another in an on-line manner (i.e., in real time). Rather, they are periodically (e.g., nightly) reconciled with one another. Consequently, the different systems in the transaction processing environment may simultaneously store different values for data that they supposedly share. For example, suppose records on both an inventory system and an order processing system indicated that 3000 units of a particular product are available. A transfer of 2500 of the units to a company subsidiary is then entered on the inventory system. The inventory system would then indicate that 500 units were available. However, until the next reconciliation between the systems, the order processing system would continue to indicate an availability of 3000 units. This could mislead a user of the order processing system to believe that 3000 units of the product remain in stock.

The lack of data integrity and data currency can result in a number of business problems. For example, it is possible for a user to promise delivery of a product which is not in stock, to deliver a product to a customer with a delinquent payment history, to ship an incorrect product, to bill an incorrect location, etcetera. Each of these errors are highly undesirable. However, they frequently occur in conventional transaction processing environments.

A third deficiency of the conventional transaction processing environment is the lack of standard user interfaces. That is, a user of an accounting system may not be able to use the order entry or inventory systems. If a person is required to use multiple transaction processing systems, then he or she must learn the user interface of each. This increases the training requirements for system users.

Similarly, the conventional transaction processing environment lacks standard application interfaces. That is, each transaction processing system must have a distinct interface to every other transaction processing system from which it receives data. Moreover, the lack of standard interfaces impedes maintainability of the transaction processing systems, as modifying the physical structure of a record in one transaction processing system necessitates modifying the application interface of every other transaction processing system which accesses that record.

A fourth deficiency of the conventional transaction processing environment is that the structure of the environment limits the number of data views. Specifically, the environment cannot present a view which combines data from records on distinct transaction processing systems. For example, if the inventory system maintained records on production cost only on a per product basis and the accounting system maintained records on revenues only on a per product basis, the conventional transaction processing environment could not consult both systems to present a view of profits per product.

What is needed is a maintainable transaction processing system which ensures the integrity and currency of data; which has consistent user and application interfaces; and which can present multiple data views.

SUMMARY OF THE INVENTION

The present invention is a database management system, called a "global code system", which coordinates the code maintenance (i.e., sharing of data) between transaction processing systems. All requests to modify (i.e., create, update or delete) data in the transaction processing environment of the present invention are made through the global code system.

The global code system processes these requests by performing the modification on a global code database and by directing each transaction processing system which uses the modified data to perform the same modification. This is done in real time. Thus, the global code database maintains a current copy of each record stored in any transaction processing database. This controlled data redundancy ensures both data accuracy and data currency.

In addition to directing the transaction processing systems to perform requested data modifications, the global code system directs appropriate shadow code systems to perform the modifications. A shadow code system is a database management system which is similar to the global code system