System for and Method of Synchronizing Non-Legacy Data with Legacy Data
Background of the Invention With the World Wide Web becoming more pervasive in business applications, increasing numbers of organizations need to make some or all of their computer data available for public use. For example, a bank may wish to make select account information available to customers via the Web on a publicly accessible database while maintaining the remainder of its operational data on an internal database. For organizations utilizing legacy systems that employ nonstandard data access methods, this often requires manually migrating the data from one database to the other. Not only is this a laborious, costly, and error-prone process, but data security and synchronization are also major concerns, particularly in cases where the data in the legacy system is updated frequently. Real-time updating of data and decoupling of the public and non-public systems are of critical importance in most business applications. An automated system that provides security and synchronizes legacy data with non-legacy data could lead to more efficient and safer business practices, a larger customer base, and higher revenues.
Many large businesses are heavily invested in their legacy systems. The complex business logic and error checking functionality of these legacy systems often make them irreplaceable. Because of their widespread business use, the market for integrating legacy systems with standard-access databases is measured in the tens of millions of dollars annually. Software companies that expand the reliability, performance, and longevity of existing business software by developing more efficient data access methods could seize a significant portion of this market.
As businesses increasingly utilize data from disparate sources, they have a need to update data in two databases with near-simultaneity in order to keep the databases synchronized. For example, a bank using a legacy system may want to make a portion of its account available to a Web-accessible database. The Web- accessible database must remain synchronized with the legacy system in order to provide accurate account information to clients using the Web. Current systems for
achieving this function require that the databases support the same interface protocols, severely limiting their usefulness, especially to users of legacy computer systems. What is needed is a way to synchronize a nonstandard legacy database with a standard-protocol database. As businesses diversify their operations to both internal and external functions, system security becomes a critical concern. For example, a bank using a legacy system may make a portion of its account information available to a Web- accessible database. The bank, however, needs to prevent any corruption of data or intrusion into its internal system by external Web users. Further, the bank needs to prevent any degradation in internal system performance caused by large numbers of external users accessing the system concurrently. What is needed is a way to decouple a legacy system and a publicly accessible database.
As businesses using legacy systems place data onto publicly accessible databases, maintaining currency and consistency of the data between the two systems becomes an important requirement. For example, a bank that has made a portion of its account information available on a Web-accessible database requires that the Web data be updated immediately following a change in its legacy database. Failure to immediately update the Web database may result in inaccurate information being displayed on the Web and, therefore, dissatisfied customers. What is needed is a way to maintain consistency and timeliness of data between a legacy system and a publicly accessible database.
There are a number of existing database tools that are designed to access databases that comply with standard protocols like JDBC and ODBC. The systems supported by these standard databases can typically be scaled rapidly to support a large number of users. However, many businesses rely heavily on the business logic inherent to their legacy systems, which tend to be less scalable than the standard systems. In order to increase legacy system performance, these businesses have a need to take advantage of the higher performance of the newer database systems while still utilizing the business logic within their legacy systems. What is needed is a way to provide broad access to legacy data via standard database protocols..
Summary of the Invention
Brief Description of the Drawing Figure 1 is a schematic diagram illustrating an embodiment of a system for synchronizing non-legacy data with legacy data in accordance with the present invention.
Figure 2 is a flowchart illustrating a method of training database synchronization system 100 to synchronize non-legacy data with legacy data.
Figure 3 is a flowchart illustrating a method of using database synchronization system 100 to synchronize non-legacy data with legacy data
Detailed Description of Certain Preferred Embodiments of the Invention
Preferred embodiments of the invention will now be described with reference to the accompanying drawings.
The present invention is a system for and method of synchronizing non-legacy data with legacy data. The system monitors and reinterprets the data stream associated with an existing application and, according to rules established during a training sequence, programmatically updates data in a non-legacy database with data from a legacy database with near simultaneity. The non-legacy database may be publicly accessible database, such as a Web-enabled database.
Figure 1 is a schematic representation of a database synchronization system 100, which includes a DB-Shaper computer 140, a host computer 120, and a training terminal 154. Host computer 120 further includes a data storage device 110, a host application 121, and a host terminal 170. DB-Shaper computer 140 further includes a DB-Shaper application 150, a database application 151, an auxiliary storage device 157, and a shaper rule set storage device 153. The system 100 may be comprised of the applicants' patented trainable user interface technology mentioned above.
Database synchronization system 100 also includes a first network 125 and a second network 132.
Host computer 120 may connect to DB-Shaper computer 140 directly or via first network 125. Training terminal 154 may connect to DB-Shaper computer 140 directly or via second network 132. First network 125 and second network 132 may
be intranet networks or the Internet. Alternatively, first network 125 and second network 132 may be the same network.
Database application 151 is any available standard database system such as Oracles SQL+ or IBM's SQL server plus appropriate software to allow external access.
In an alternate configuration, multiple host computers 120 may connect to DB- Shaper computer 140. Similarly, host computer 120 may include multiple host applications 121. Further, host computer 120 and DB-shaper computer 140 may be the same device. Training terminal 154 is typically a PC running terminal emulation software, but may also be a display and keyboard connected directly to DB-Shaper computer 140. Host terminal 170 is typically a wired terminal, such as a 3270 or VTlOO-style terminal, but may also be other types. For the purposes of training the DB-Shaper system, training terminal 154 may also have the capability of emulating host terminal 170, thus obviating the need for host terminal 170 to be physically present.
A method of training database synchronization system 100 to synchronize non-legacy data with legacy data is now described with reference to Figure 2.
Step 210: Defining data to be made available In this step, the trainer determines which data is to be made available via the updated interface. After the data is defined, the trainer uses training terminal 154 to interact with database application 151 to create an empty database stored in auxiliary storage device 157. The database stored on auxiliary storage device 157 is now prepared to contain the data that will be made publicly accessible.
Step 220: Identifying host operations that change any of the data In this step, the trainer, using host terminal 170 or training terminal 154, exercises host application 121 to gain familiarity with its operation. During this process, the trainer determines which operations within host application 121 change any of the data that is to be made publicly available. For example, if host application 121 is an airline scheduling application and the data to be made publicly available are airline departure and arrival times, the trainer determines what specific host
application 121 operations are used to place, delete, or change airplane schedules within the system.
Step 230: Preparing sample data sets In this step, the trainer, using training terminal 154 or host terminal 170, defines a list of sample data to be used to exercise host application 121. The trainer chooses sample data that will exhaustively exercise host application 121. This includes data that would normally be processed by host application 121 successfully (that is, non-exception data) and data that would normally cause exceptions or errors within host application 121 (that is, exception data). The use of such sample data results in a rule set that accommodates all data conditions. The rule set is defined as the sequence of steps necessary for DB-Shaper application 150 to perform a needed function.
Step 235: Selecting a sample data set
In this step, the trainer chooses a sample data set from the list defined in step 230.
Step 240: Exercising host application In this step, the trainer, using training terminal 154, exercises host application
121 via DB-Shaper application 150. As host application 121 is exercised, a rule set is generated and stored on shaper rule set storage device 153. The rule set captures the operations performed by the trainer and captures the data as it is entered. In this way, the rule set codifies the procedures for recognizing entered data. If the operation for each sample data set is processed successfully (for non-exception data), the data stored on data storage device 110 is updated. If the transaction fails or aborts (for exception data), there is no change to the data stored on data storage device 110.
Step 250: Adding rules to rule set In this step, the trainer, using training terminal 154, manually adds database access rules to the rule set stored on shaper rule set storage device 153. These rules inform database application 151 how to update the data stored in auxiliary storage
device 157 so that this data exactly matches the data stored in data storage device 110. An example of a database access rule that might be manually added is an SQL statement. In this way, DB-Shaper application 150 is trained to synchronize the data stored in data storage device 110 and auxiliary storage device 157.
Step 260: More data sets?
In this step, the trainer determines if there are additional data sets to be processed. If yes, process 200 returns to step 235; if no, process 200 ends.
A method of using database synchronization system 100 to synchronize non- legacy data with legacy data is now described with reference to Figure 3.
Step 305: Pre-populating the public database
In this step, the user, using training terminal 154, pre-populates auxiliary database 157 so mat the data stored therein exactly matches the data stored in the legacy database data storage device 110. The method for this data migration step is more fully described in the applicants' co-pending U.S. patent application , entitled , the contents of which are hereby incorporated by reference in their entirety. (Invention Disclosure Orchid 008.)
Step 310: Operating host application
In this step, the user operates host application 121 via training terminal 154 and DB-Shaper application 150.
Step 320: Monitoring rule set
In this step, DB-Shaper application 150 compares the steps that host application 121 performed in step 310 with the rule set that was generated in step 240 of process 200 and stored in shaper rule set storage device 153. When a correspondence occurs between a host application 121 operation and the rule set, data in auxiliary storage device 157 is updated accordingly, as described in step 330.
Step 330: Updating public database
In this step, DB-Shaper application 150 updates the data in auxiliary storage device 157 according to the rule set generated in step 240 of process 200. In this manner, data synchronization occurs between the publicly accessible data stored in auxiliary storage device 157 and the legacy data stored in data storage device 110.
Step 340: End data synchronization?
In this step, the user determines if data synchronization is complete. If no, process 300 returns to step 320; if yes, process 300 ends. Data synchronization between data storage device 110 and auxiliary storage device 157 continues as long as the user operates host application 121 or until DB-Shaper application 150 is disabled.
In order for data synchronization to occur, host application 121 must be operated from training terminal 154 and not from host terminal 170.
DB-Shaper computer 140 and DB-Shaper application 150 are installed external to host computer 120 and are therefore not invasive to host computer 120 or host application 121. As a result, all of the functionality and business logic of host application 121 is preserved when DB-Shaper computer 140 is installed, including error checking and error handling functions.
Other embodiments of the invention will be apparent to those skilled in the art from a consideration of the specification or practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with the true scope and spirit of the invention being indicated by the following claims.