|
Claims  |
|
|
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. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
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 | | |