System for and Method of Automatically Updating Data in a Host System Based Upon Third Party Data
The present application claims the benefit of priority to U.S. Provisional Application No. 60/278,154, filed March 23, 2001, the contents of which are hereby incorporated by reference in their entirety.
Field of the Invention
The present invention is a system for and method of automatically updating data in a host system based on third party 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 from one application with supplemental data stored in a separate database. Utilizing this same technique, the system may also be used to compare data from separate databases that may not otherwise be compatible.
Background of the Invention
Existing computer systems often contain data that is of critical value to the owner organizations, which rely heavily on the accuracy of that data. The stored data might include customer contact information, customer buying patterns, and demographic information, and the ease of updating this data can mean the difference between successful business operations and business failure. For example, a mail-order company may wish to update its customer shipping address information with "ZIP+4" information where the existing five-digit ZIP Code is supplemented with an additional four digits. Expanded ZIP Codes result in faster shipping times and, therefore, increased customer satisfaction with the business. However, manually updating such stored information can be time-intensive, costly, and error-prone. An automated method to query, process, and update large amounts of information in a database could lead to more efficient business practices, a larger customer base, and higher revenues.
The market potential for improved methods for updating data is measured in the tens of millions of dollars annually. Software companies involved in expanding the reliability, performance, and longevity of existing business software by developing more efficient data modification techniques could seize a significant portion of this market. With an increasing number of business functions being performed on computers, businesses must often update and compare large amounts of data from separate data sources. In the postal data example above, the additional four digits may be stored in a database different from, and even incompatible with, the original customer number. Manually updating the customer number from a separate database could prove to be costly, error-prone, and inefficient for the business. What is needed is a way to increase the efficiency of a business.
Each time there is a change to a telephone area code, thousands (if not millions) of customer records within the telephone company's databases must quickly be updated. Current methods for updating such records are limited to manually updating each individual record or writing an entirely new application to update the data. Each of these approaches can lead to inefficient business practices and unsatisfied customers. What is needed is a way to provide a means to rapidly update large amounts of data.
Organizations are frequently faced with the task of adding large amounts of data to an existing database. For example, a company may wish to update its existing database by adding the e-mail address of each of its customers as a separate data field. Performed manually, this would be an extremely time-consuming and error-prone process, especially for a company with a large customer base. What is needed is a way to add large amounts of data to an existing database.
Organizations frequently wish to compare records between two or more incompatible databases. For example, a mail-order company may wish to identify which of its customers uses a particular telephone area code. However, telephone information may be held on a database that is separate and incompatible with the customer database. Manual comparison of such data is labor-intensive and costly. Directly accessing both databases can be difficult, particularly if the either of the databases is not compatible with
standard database protocols. What is needed is a way to match data from two otherwise incompatible sources.
Summary of the Invention The present invention provides a system for and method of automatically updating data in a host system based on third party data. A system according to the invention monitors and reinterprets the data stream associated with an existing application and, according to rules established during a training sequence, programmatically updates data from an application with supplemental data stored in a separate database. Utilizing this same technique, the system may also be used to compare data from separate databases that may not otherwise be compatible.
Brief Description of the Drawing Figure 1 is a schematic diagram illustrating an embodiment of a system for automatically updating data in a host system based on third party data in accordance with the present invention.
Figure 2 is a flowchart illustrating a method of training a TeleShaper system 100 to automatically update data in a host system based on third party data.
Figure 3 is a flowchart illustrating a method of using a TeleShaper system 100 to automatically update data in a host system based on third party data.
Detailed Description of Certain Embodiments of the Invention
Preferred embodiments of the invention will now be described with reference to the accompanying drawings.
The present invention provides a system for and method of automatically updating data in a host system based on third party data. A system according to the invention monitors and reinterprets the data stream associated with an existing application and, according to rules established during a training sequence, programmatically updates data from an application with supplemental data stored in a
separate database. Utilizing this same technique, the system may also be used to compare data from separate databases that may not otherwise be compatible.
The novel system and method described herein build upon the Applicant's trainable user interface technology, which is referred to below as "TeleShaper" technology. A complete description of the Applicant's trainable user interface technology can be found in U.S. Patent Nos. 5,627,977, and 5,889,516, assigned to the assignee of the present invention, and the contents of which as hereby incorporated by reference in their entirety. It is the trainable user interface technology that provides the capability to monitor and reinterpret data streams. Figure 1 is a schematic representation of a TeleShaper system 100. TeleShaper system 100 includes a host computer 120, a TeleShaper computer 140, a training terminal 154, a database storage 160, and a database application 162. Host computer 120 further includes a data storage device 110, a host application 121, and a first terminal 170. TeleShaper computer 140 further includes a TeleShaper application 150, a shaper rule set storage device 153, and an auxiliary database 115. TeleShaper system 100 also includes a first network 125 and a second network 132, arranged as shown in the figure.
Host computer 120 may connect to TeleShaper computer 140 via first network 125, as shown in Figure 1. Training terminal 154 may connect to TeleShaper computer 140 via second network 132, as shown. 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. Further, in an alternative embodiment, a direct connection may be arranged between host computer 120 and TeleShaper computer 140, and between training terminal 154 and TeleShaper computer 140.
Training terminal 154 is typically a PC client running telnet but may also be a hard-wired terminal or a display and keyboard directly connected to TeleShaper computer 140. First terminal 170 is typically a wired terminal like 3270 or NTlOO-type terminals but may also be, for example, a PC client running appropriate terminal emulation software. For the purposes of training TeleShaper system 100, training
terminal 154 may also have the capability of emulating first terminal 170 thus obviating the need for first terminal 170 during system usage.
Database application 162 may be any application that needs to be accessed by a user. TeleShaper system 100 of the present invention is utilized when database application 162 utilizes standard database protocols (for example, an Oracle database application). If database application 162 does not use standard database protocols, then the system described in the applicant's co-pending U.S. Patent Application No.
09/815,805, filed March 23, 2001, and entitled "Automatically Migrating Data Among
Multiple Legacy Applications and Accessible Storage Formats", the contents of which are hereby incorporated by reference in their entirety, could be used for updating a host application.
Database storage 160 is a storage device that stores the data accessed by database application 162. Database storage 160 may be the same device as shaper rule set storage device 153. A method of training TeleShaper system 100 to automatically update data in a host system based on third party data is now described with reference to Figure 2.
Step 205: Identifying data to be added/updated
In this step, the trainer, using first terminal 170 or training terminal 154, executes host application 121 in order to familiarize himself/herself with host application 121 operations and to determine the data to be added and/or updated with the matching data stored in database storage 1 0. This is a design step in which the trainer learns how to negotiate the business logic of host application 121.
Step 210: Identifying matching data in database
In this step, the trainer, using training terminal 154 or a data printout, views the matching data stored in database storage 160. The trainer then determines how the matching data stored in database storage 160 will be accessed. For example, depending
on the data format, the trainer may develop an SQL statement that is then used to extract the matching data.
Step 220: Choosing sample data In this step, the trainer, using training terminal 154 or first terminal 170, defines a list of sample data from data storage device 110. This data was previously created with host application 121. The trainer chooses sample data that will exhaustively exercise host application 121. The sample data 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 is defined to accommodate all data conditions. The rule set is defined as the sequence of steps necessary for TeleShaper application 150 to perform a needed function.
Step 230: Training TeleShaper to retrieve data
In this step, the trainer, using training terminal 154, exercises host application 121 via TeleShaper computer 140 and TeleShaper application 150. TeleShaper application 150 records the steps the trainer uses to operate host application 121. These same steps are later executed by TeleShaper application 150 to automatically access the data stored in data storage device 110. In an example where an address database is being updated from five-digit ZIP code data to "ZIP+4" data, the addresses to be updated are stored in data storage device 110.
Step 240: Adding rules to access the matching data In this step, the trainer, using training terminal 154, defines the rules necessary to access the matching data stored in database storage 160 via database application 162. The defined access rules are then stored on shaper rule set storage device 153. In the example where an address database is being updated with "ZIP+4" data, the matching data are the ZIP codes that correspond to the addresses stored in data storage device 110. These
updated ZIP codes are accessed from database storage 160. Alternatively, when the data stored in data storage 160 is not stored in a standard format (for example, ODBC- or JDBC-compliant formats), TeleShaper application 150 is trained to operate database application 162 to retrieve the matching data from database storage 160.
Step 250: Training TeleShaper to add/replace data
In this step, the trainer, operating host application 121 via training terminal 154, trains TeleShaper application 150 to store the data obtained in step 240 to data storage device 110. This completes the process of updating a single record in host application 121.
Step 260: Additional samples?
In this step, the trainer determines if there is additional sample data to be processed. If yes, process 200 returns to step 230; if no, process 200 ends.
A method of using TeleShaper system 100 to automatically update data in a host system based on third party data is now described with reference to Figure 3.
Step 305: Creating a list of data records In this step, the user generates a list of data records to be updated. For example, the user may use first terminal 170 to execute host application 121 to generate a list of names that need to be updated from data stored in data storage device 110. Alternatively, the user may use training terminal 154 to execute database application 162 in order to create a list of matching data from data stored in database storage 160. This step results in the creation of an input file composed of a list of key values used to reference the data records to be updated.
Step 310: Running TeleShaper application
In this step, the user runs TeleShaper application 150 from training terminal 154. The user programmatically instructs TeleShaper application 150 to operate according to the rule set established in step 220 of process 200 and utilize the data record list created in step 305. From this step forward, the process is automated, relying on programmatic logic within TeleShaper application 150.
Step 320: Taking a data record
In this step, TeleShaper application 150 retrieves a data record from the data record list created in step 305.
Step 330: Executing rule set
In this step, TeleShaper application 150 executes the rule set established in step 220 of process 200. For example, if TeleShaper application 150 is trained to add a ZIP+4 ZIP code to addresses stored in data storage device 110, it automatically does so for a single data record based on the established rule set.
Step 340: More data records?
In this step, TeleShaper application 150 determines if there are additional data records in data storage device 110 to be updated. If yes, process 300 returns to step 320; if no, process 300 ends.
Steps 320 - 340 represent an automated process in which TeleShaper application 150 performs the data update function according to the rule set established in step 220 of process 200.
TeleShaper computer 140 and TeleShaper application 150 are installed as a peripheral to host computer 120 and are therefore not invasive to either host computer 120 or host application 121. As a result, all of the business logic of host application 121 is preserved when TeleShaper 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. What is claimed is: