WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System for converting data from input data environment using first format to output data environment using second format by executing the associations between their fields    
United States Patent5708828   
Link to this pagehttp://www.wikipatents.com/5708828.html
Inventor(s)Coleman; J. Todd (Austin, TX)
AbstractA data conversion system and method which converts data between different software and hardware platforms. The DCLE of the present invention converts data from any number of different types or formats from any of various platforms to a single common data standard having a pre-defined generic data type, and the data is then converted from this generic type to a new desired format or type and stored on an existing or new destination platform. Thus, the system and method of the present invention allows for multiple database conversions to be created easily and efficiently. The data conversion process begins by first defining a complete data map of the input and output data environments, as well as zero or more intermediate environments. Data objects referred to as data bridges and streams are created to logically connect or associate the input and output environments as well as the tables in the input and output data environments. In response to user input, the data conversion system and method creates an association between fields or parts in the tables (units) in the input environment and the fields in the output environment. This essentially involves creating user specified mappings between fields in the input data environment and fields in the output data environment. When an execute command is received, the data conversion system and method accesses data from the first input environment, i.e., accesses data from the storage medium storing the data to be converted, and converts the data from the first input data environment to data having a pre-defined generic data type. Converting the data first to a pre-defined generic data type greatly simplifies the conversion process, since conversion code is only required to and from the generic data type and is not required between every possible data format. Thus, the development of conversion code is much simpler and more efficient. Once data has been converted to the generic data object, the associations are executed to convert the data from the pre-defined genetic data type to the output data using the second data format.
   














 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 5708828
System for converting data from input data environment using first

     format to output data environment using second format by executing the

     associations between their fields - US Patent 5708828 Drawing
System for converting data from input data environment using first format to output data environment using second format by executing the associations between their fields
Inventor     Coleman; J. Todd (Austin, TX)
Owner/Assignee     Reliant Data Systems (Austin, TX)
Patent assignment
All assignments
Publication Date     January 13, 1998
Application Number     08/450,040
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 25, 1995
US Classification     715/523 710/65
Int'l Classification     G06F 007/00
Examiner     Meky; Moustafa M.
Assistant Examiner    
Attorney/Law Firm     Tayon, Hood; Jeffrey C. Conley, Rose &
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/500 395/200.17 395/200.18 395/831 395/850 395/883 395/885 395/890 395/894 395/785 395/800 395/707 395/604 395/886
Patent Tags     converting data input data environment first format output data environment second format executing the associations between their fields
   
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
5524253
Pham
709/202
Jun,1996

[0 after 0 votes]
5493671
Pitt
707/203
Feb,1996

[0 after 0 votes]
5410675
Shreve
710/65
Apr,1995

[0 after 0 votes]
5339434
Rusis
709/246
Aug,1994

[0 after 0 votes]
5261080
Khoyi
710/65
Nov,1993

[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
 


I claim:

1. A method for converting data from an input data environment using a first data format to an output data environment using a second data format, wherein the input data environment includes one or more tables, each of the one or more tables in the input data environment having records including one or more fields, wherein the output data environment includes one or more tables, each of the one or more tables in the output data environment having records including one or more fields, the method comprising the steps of:

receiving a definition of the first data format;

receiving a definition of the second data format;

creating a logical association between the input data environment and the output data environment;

creating one or more logical associations between the one or more tables in the input data environment and the one or more tables in the output data environment;

creating one or more associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment;

performing a data conversion between the input data environment and the output data environment, wherein said performing comprises:

accessing the data from the input data environment;

converting the data from the input data environment using the first data format to data having a pre-defined generic format; and

executing the associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment, wherein said step of executing converts said data having said pre-defined generic format to output data having said second data format.

2. The method of claim 1, wherein said step of executing comprises:

for each table in the output data environment, for each of said logical associations between the one or more tables in the input data environment and a respective table in the output data environment, performing a data conversion for each of the associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the respective table in the output data environment.

3. The method of claim 1, wherein said step of executing comprises:

performing a data conversion for each of the associations between the one or more fields in one or more of the one or more tables in the input data environment and the one or more fields in a respective table in the output data environment;

wherein said step of performing is performed for each of said logical associations between said one or more of the one or more tables in the input data environment and said respective table in the output data environment;

wherein said step of performing is performed for each of said tables in said output data environment.

4. The method of claim 3, wherein the one or more tables in the output data environment have an order including a first table and a last table;

wherein said step of performing is performed for each of said tables in said output data environment according to said order of the one or more tables in the output data environment beginning with said first table in the output data environment and ending with said last table in the output data environment.

5. The method of claim 3, wherein the one or more tables in the input data environment include an order including a first table and a last table;

wherein said step of performing is performed for each of said logical associations between said one or more of the one or more tables in the input data environment and said respective table in the output data environment according to said order of the one or more tables in the input data environment beginning with said first table in the input data environment and ending with said last table in the input data environment.

6. The method of claim 1, wherein said data from the input data environment comprises a data portion and a type portion, wherein said step of converting the data from the input data environment using the first data format to said data having said pre-defined generic format comprises:

storing said data portion of said data from the input data environment in a first memory field; and

storing said type portion of said data from the first input data environment in a second memory field.

7. The method of claim 6, further comprising;

creating an instance of a generic data object prior to said steps of storing said data portion and storing said type portion.

8. The method of claim 1, wherein said pre-defined generic format comprises a pre-defined generic data type, and wherein said step of converting the data from the input data environment using the first data format to data having a pre-defined generic format comprises converting the data from the input data environment using the first data format to data having said pre-defined generic data type.

9. The method of claim 1, wherein said step of creating said one or more associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment comprises:

creating one or more mathematical associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment;

wherein said step of executing comprises executing said one or more mathematical associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment.

10. The method of claim 1, wherein said step of creating said one or more associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment comprises:

creating one or more logical associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment;

wherein said step of executing comprises executing said one or more logical associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment.

11. The method of claim 1, wherein said step of creating said one or more associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment comprises:

creating one or more conditional associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment;

wherein said step of executing comprises executing said one or more conditional associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment.

12. The method of claim 1, wherein the data in the input data environment using said first data format comprises data having one or more different data types; and

wherein the data in the output data environment using said second data format comprises data having one or more different data types.

13. The method of claim 1, further comprising:

storing said output data having said second data format in said output data environment after said step of executing.

14. The method of claim 13, wherein the input data environment comprises a first storage media storing the input data according to the first data format, and wherein the output data environment comprises a second storage media adapted to receive and store the output data according to the second data format;

wherein said step of accessing the input data comprises accessing the input data from the first storage media; and

wherein said step of storing said converted output data having said second data format comprises writing said converted output data having said second data format to said second storage media.

15. The method of claim 1, wherein said step of receiving a definition of the first data format comprises:

receiving a user-specified definition of the first data format, including a definition of the one or more tables in the input environment and the one or more fields for each of said one or more tables.

16. The method of claim 1, wherein the input data environment includes a data dictionary defining said first data format;

wherein said step of receiving said definition of the first data format comprises:

receiving said data dictionary of the first data format; and

converting said data dictionary of the first data format into said definition of the first data format.

17. The method of claim 1, wherein the one or more tables in the input data environment each comprise one or more records of like data type, wherein the one or more tables in the output data environment each comprise one or more records of like data type.

18. The method of claim 17, wherein said input data environment comprises a database and said output data environment comprises a database.

19. The method of claim 18, wherein said input data environment comprises a hierarchical database and said output data environment comprises a relational database.

20. The method of claim 1, wherein said step of creating an association between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment comprises:

creating one or more MapTo commands between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment.

21. A system for converting data from a first data format to a second data format, the system comprising:

a first storage medium for storing input data using a first data format, wherein the input data using the first data format includes one or more tables, each of the one or more tables in the input data having records including one or more fields;

a second medium for storing output data using a second data format, wherein the output data using the second data format includes one or more tables, each of the one or more tables in the output data having records including one or more fields;

an input data environment object which receives a definition of the first data format, wherein said definition of the first data format includes one or more tables each having one or more fields;

an output data environment object which receives a definition of the second data format, wherein said definition of the second data format includes one or more tables each having one or more fields;

a workplace object for storing one or more associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment;

a generic data object for storing data using a pre-defined generic format,

means for converting the data from the first input data environment using the first data format to data having said pre-defined generic format; and

means for executing the associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment, wherein said means for executing converts said data having said pre-defined generic format to output data having said second data format.

22. The method of claim 21, wherein said data from the first input data environment comprises a data portion and a type portion;

wherein said generic data object comprises a first memory field storing a data portion and a second memory field storing a type portion.

23. A method for converting data from an input data file using a first data format to an output data file using a second data format, wherein the input data file includes one or more tables, each of the one or more tables in the input data environment having records including one or more fields, wherein the output data file includes one or more tables, each of the one or more tables in the output data file having records including one or more fields, the method comprising the steps of:

receiving a definition of the first data format;

receiving a definition of the second data format;

creating a logical association link between the input data file and the output data file;

creating one or more logical association links between the one or more tables in the input data file and the one or more tables in the output data file;

creating one or more association links between the one or more fields in the one or more tables in the input data file and the one or more fields in the one or more tables in the output data file;

performing a data conversion between the input data file and the output data file, wherein said performing comprises:

accessing the data from the input data file;

converting the data from the input data file using the first data format to data having a pre-defined generic format; and

executing the association links between the one or more fields in the one or more tables in the input data file and the one or more fields in the one or more tables in the output data file, wherein said step of executing converts said data having said pre-defined generic format to output data having said second data format.

24. A method for converting data from an input data file using a first data format to an output data file using a second data format, wherein the input data file includes one or more tables, each of the one or more tables in the input data file having records including one or more fields, wherein the output data file includes one or more tables, each of the one or more tables in the output data file having records including one or more fields, the method comprising the steps of:

creating an input environment link to the input data file;

receiving a definition of the first data format;

creating an output environment link to the output data file;

receiving a definition of the second data format;

creating a logical association between the input environment link and the output environment link;

creating one or more logical associations between the one or more tables in the input data file and the one or more tables in the output data file;

creating one or more associations between the one or more fields in the one or more tables in the input data file and the one or more fields in the one or more tables in the output data file;

performing a data conversion between the input data file and the output data file, wherein said performing comprises:

accessing the data from the input data file;

converting the data from the input data file using the first data format to data having a pre-defined genetic format; and

executing the associations between the one or more fields in the one or more tables in the input data file and the one or more fields in the one or more tables in the output data file, wherein said step of executing converts said data having said pre-defined generic format to output data having said second data format.

25. A method for converting data from an input data environment using a first data format to an output data environment using a second data format, wherein the input data environment includes one or more tables, each of the one or more tables in the input data environment having records including one or more fields, wherein the output data environment includes one or more tables, each of the one or more tables in the output data environment having records including one or more fields, the method comprising the steps of:

receiving a definition of the first data format;

receiving a definition of the second data format;

creating a logical association between the input data environment and the output data environment;

creating one or more user-defined links between the one or more tables in the input data environment and the one or more tables in the output data environment,

wherein said user-defined links are configured to link any one or more tables in the input data environment to any one or more tables in said output data environment;

creating one or more associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment;

performing a data conversion between the input data environment and the output data environment, wherein said performing comprises:

accessing the data from the input data environment;

converting the data from the input data environment using the first data format to data having a pre-defined generic format; and

executing the associations between the one or more fields in the one or more tables in the input data environment and the one or more fields in the one or more tables in the output data environment, wherein said step of executing converts said data having said pre-defined generic format to output data having said second data format.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates to methods for converting data between different formats, and more particularly to a data conversion language/engine which can be adapted to convert data from any of a number of first formats to any number of second formats.

DESCRIPTION OF THE RELATED ART

The information systems (IS) departments of many corporations and business organizations have undergone radical change in recent years, including downsizing, rightsizing, or restructuring/reengineering. One component of this change has been the need for companies to perpetually upgrade their hardware, software, and data storage systems. Many corporations currently store data in legacy mainframe systems in the same manner as when the system was purchased, decades ago. However, as the data storage paradigm moves from mainframe storage systems to more cost-effective platforms, such as PC-based client-server systems, businesses with decades worth of archived business-dependent information stored in mainframe systems have faced difficulties in moving to PC-based client-server systems. In general, moving data between systems having different data storage formats, for example, from mainframe systems to PC-based client-server systems, is a very difficult, time-consuming task, which can take months or even years to complete and all too often fails before any of the promised cost savings are realized.

Therefore, the process of data conversion, i.e., the process by which a large amount of information is moved from one informational system platform to another, has been very difficult. Today, corporations and other organizations process a large amount of transactions on any given day, including transactions related to financial reports, sales and accounting, human resources and personnel, or manufacturing and production. In general, information storage and information flow within an organization or business is very important to the success and well being of the business. As a result of the downsizing and corporate reengineering trends mentioned above, and due to the importance of information to a business or organization. Information systems and software processes are a prime target for corporate reengineering. This has traditionally involved converting data from large, mainframe-based systems to more cost-effective PC-based client server systems.

One difficulty in converting data between systems is that different data storage hierarchies are used in different systems. For example, mainframe systems use a hierarchical data storage method, whereas client-server systems use a relational database storage method. In addition, there are a large number of different data formats used in various systems.

One data conversion method that has been used historically can be referred to as the straightforward brute force method of data conversion. For this task, a core team of programmers is assembled for the sole purpose of creating one or more custom built programs from the ground up that will translate information from the platform currently in use to the format required by the destination platform. This process is time-consuming, cost-prohibitive and, more often than not, results in failure. This process also requires the use of highly-skilled programmers. Further, due to the custom nature of the software, the software is extremely difficult to change as problems arise.

A second method of data conversion that has appeared more recently is an attempt to automate the processes utilized in the above "brute force" method. This method involves writing a "code-generating" program. According to this method, organizations use the skills of a programming team to develop a small engine capable of generating custom-built programs which perform the information transfer. In other words, a team of programmers creates a code-generating engine, and this code-generating engine can then be used to facilitate the development of custom-built programs to perform the information transfer. This method includes many of the drawbacks discussed above, and generally only automates the above "brute force" process. In essence, this method only removes a handful of the time and cost constraints which make the data conversion process a difficult task.

Applicant is aware of a company called Evolutionary Technologies, Inc. located in Austin, Tex. which sells a product referred to as the Extract Migration package which performs data conversions. Applicant believes that this company is using one of the prior art methods described above. Some of the drawbacks of the Extract product is that this product is not easily adaptable to new environments without detailed programming knowledge of those environments. Also, all environments must be pre-defined and written before use of the Extract Migration package. Applicant is also aware of a company called Prism Software which uses similar methods to that described above.

Therefore, an improved system and method for data conversion is desired to assist organizations in converting data between different hardware/software/application platforms.

SUMMARY OF THE INVENTION

The present invention comprises a data conversion system and method which provides a simpler and more cost-effective method for converting data between different software and hardware platforms. The data conversion system and method of the present invention comprises a data conversion language/engine (DCLE) which is a powerful, hardware-independent, multi-user engine which requires no custom programming code. The DCLE of the present invention converts data from any number of different types or formats from any of various platforms to a single common data standard having a pre-defined generic data type, and the data is then converted from this generic type to a new desired format or type and stored on an existing or new destination platform. Thus, the system and method of the present invention allows for multiple data base conversions to be created easily and efficiently.

The present invention comprises an object-oriented software system including a plurality of data objects which represent the data being converted as well as perform the data conversion between different platforms. The present invention includes an environment data object which refers to a collection of tables, generally from a single application or data store, that have been grouped together into a single file. The tables within an environment are data objects referred to as units. In general, a table comprises a plurality of records in various formats. The present invention further comprises a data mapping object for the fields of the records themselves. A record comprises a plurality of fields, and the present invention uses field definition data objects referred to as parts which define the inner workings of a record, i.e., the type, the size, and the format, etc. of each field in a record.

The data conversion system and method preferably executes on a general purpose computer. The computer is preferably connected to the source storage medium storing the input data and a destination storage medium where the output data is to be stored. It is noted that the source and destination storage mediums can be the same medium. A user can either directly use the computer executing the data conversion system and method, or the user can remotely connect to the DCLE application.

The data conversion process begins by first placing the data to be converted into a form usable by the conversion engine. This step can have many different variations. The present invention makes the following assumptions regarding input data. First, since environments can only be bridged in a one to one or a one to many relationship, all input data destined for a single output environment is grouped in a single file. Secondly, all like records are grouped together into separate tables and have table delineations.

The first step in the data conversion is creating and defining input and/or output environments for the data within the DCLE engine. The user first defines a complete key map or data map of the data to import exactly as the DCLE engine must read the data from the data store file. This process begins by declaring all imported tables. The user then details these tables or units by declaring the data fields or parts that define each of the individual table's records. Once this process is completed, a completely defined input data file has been created. The user also defines a complete data map of the output data environment, i.e., defines the tables and parts of the data format of the output environment. It is noted that the only difference between the creation of input environments and output environments is the conceptual notion that the input environment is defined by the format of the data to be converted, whereas the data formatting fields of the output environment are created by the user based on his desires.

Depending upon the complexity of changes to the data hierarchy itself, i.e., the arrangement and relationship of the units and parts between the different formats to be converted, one or more intermediate output environments may be created. Intermediate output environments are used for a variety of reasons including, first, to simplify the migration process itself by separating the process into smaller, more workable parts; second, to move a single store of imported data to multiple data base output files or even multiple different data base platforms; and third, to parse records into different output files for loading into separate databases or even separate database platforms. Intermediate output environments behave identically to normal output environments, and the process used to declare or create an intermediate output environment is identical to the process used to create input or output environments described above.

In order to logically connect the input data environment and the output data environment, an object referred to as a data bridge is created to logically connect or associate the environments in a one-to-one or one-to-many relationship. Bridges can be created between an input environment and one or more output environments or between an input environment and one or more intermediate environments. Bridges can also be created between an intermediate and one or more output environments. Bridges can only have a one-to-one or one-to-many mapping relationship.

A user then enters logical associations between tables in the input and output data environments, and the data conversion system and method creates a logical association between tables in the respective input environment and tables in the respective output environment. These logical associations are referred to as a stream data objects. Unlike bridges, streams can form any relationship between input and output tables or units including one-to-one, one-to-many, many-to-one, and many-to-many.

In response to user input, the data conversion system and method creates an association between fields or parts in the tables (units) in the input environment and the fields in the output environment. This essentially involves creating user specified mappings between fields in the input data environment and fields in the output data environment. The user enters a plurality of commands referred to as MapTo commands, and these commands specify the mappings between fields or parts of tables. The MapTo command used in the present invention preferably follows similar guidelines to the syntax of an industry accepted standard transact SQL "select" statement.

MapTo commands or associations are used to create different types of associations between fields or parts of individual units in respective environments. In addition to creating mappings between fields or parts, the MapTo command can also be used to create mathematical, logical, or conditional associations or statements.

Mathematical associations are created to perform mathematical manipulations or mathematical operations on fields or multiple fields. Logical associations are used to place logical true or false values into an output field based on a logical comparison that is performed. Conditional logic is used to evaluate one or more logical comparisons and then perform certain operations based on the result. One example of the use of a conditional association or statement is to input certain values into an output table only if certain logical assumptions are true.

Therefore, from high to low level, bridge data objects are used to connect input data environments and output data environments. Streams comprise a subset of bridges and are used to connect individual tables or units in their respective input and output data environments. The data mappings or MapTo commands are a subset of each stream and represent the mapping themselves between fields or parts.

When the above steps have been completed, the data conversion system and method has received essentially all the information required to begin a data conversion. The data conversion system and method then receives an execute command from a user to perform an indicated data conversion. In response to the execute command, the data conversion system and method accesses data from the first input environment, i.e., accesses data from the storage medium storing the data to be converted, and converts the data from the first input data environment to data having a pre-defined generic data type. Converting the data first to a pre-defined generic data type greatly simplifies the conversion process, since conversion code is only required to and from the generic data type and is not required between every possible data format. Thus, the development of conversion code is much simpler and more efficient.

The Generic data object comprises a block of memory which stores data of any type using one or more pre-defined format fields. In the preferred embodiment, the Generic data object comprises a Store field and a Type field for each piece of data, and a new instance of the Gdata object is created for each piece of data. The Store field is a buffer or segment of memory which stores the information portion of the data, and the Type field stores the type of the data. For example, if the data being converted is a Social Security number, the Store field stores the actual eight numbers comprising the Social Security Number, and the Type field stores the data type, in this case an integer data type. In the preferred embodiment, the Type field stores a numerical value which indexes into a list of types. Thus, a single instance of a Gdata object comprises a single data store and a single type field corresponding to that store.

Once data has been converted to the generic data object, the associations or MapTo commands are executed to convert the data from the pre-defined generic data type to the output data using the second data format. Execution of the MapTo commands comprises, for each table in the output data environment and for each stream to a respective table in the output data environment, performing a data conversion for each of the MapTo commands pointing to the respective output table for all of the streams to the respective output table. Once the MapTo commands have been executed, the data is converted to the new desired format. The converted output data is stored in a destination medium. It is noted that this destination medium may be the same medium on which the input data was stored or may be a new medium.

Therefore, the present invention comprises an improved system and method for converting data between different formats or types. The present invention converts data to a pre-defined generic data object or generic data type and then converts data from this generic type to the new format. This simplifies the conversion process.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which:

FIG. 1 illustrates the data conversion system and method executing on a computer system to convert data from a first storage medium to a second storage medium;

FIG. 2A illustrates data conversions between different input and output data formats using prior art methods;

FIG. 2B illustrates data conversions between different input and output data formats using the data conversion system and method of the present invention;

FIG. 3 is a flowchart diagram illustrating operation of the data conversion system and method of the present invention;

FIG. 4 illustrates the steps involved in creating a data environment as shown in FIG. 3;

FIG. 5 illustrates structure of the generic data object;

FIG. 6 illustrates the conversion of data from a first input data environment to data having a pre-defined generic data type and then to output data;

FIG. 7 illustrates execution of associations or MapTo commands to produce converted output data;

FIG. 8 illustrates generally the objects in the data conversion system and method; and

FIG. 9 illustrates mapping from an input environment to an output environment and also illustrates objects comprised in the Workplace object of FIG. 8.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring now to FIG. 1, the data conversion system and method of the present invention is preferably executed on a general purpose computer system. The present invention is used to convert data stored on a first storage medium 24 in a first data format to a second storage medium 26 in a second data format, possibly located on the same physical computer system. The data conversion system and method is also referred to herein as the "data conversion language engine" or DCLE. As used herein, the term "data format" means any of various configurations or arrangements of data, including data types, among others.

It is noted that the present invention not only performs conversions between different data types, but rather the present invention can also be used to perform conversions of the file formats, the headers and the footers of the file itself, as well as other conversions, as desired. Thus the present invention performs a plurality of different conversions other than, or in addition to, converting the data between data types. For example, the present invention can be used to convert a record having 5 fields to a record having 4 fields, or a record having 1 field, or a record having 7 fields. The present invention can be used to convert a record having 5 fields to a record having 5 fields but changing the data types of one or more of the records, or changing the delimiters, i.e., placing commas in between the fields, or adjusting the formatting, such as text formatting, placing "enters" in the data so that the data appears differently, etc.

As shown in FIG. 1, the computer system 22 executing the data conversion system and method of the present invention first receives input data from a user regarding the formats of the input and output data. The present invention then accesses the data in the first data format on the first storage medium 24 and provides the converted data to the second storage medium 26, wherein the converted output data has the second data format. FIG. 1 is an illustrative example only and shows conversion from a mainframe computer system 24 to a PC-based system 26. However, it is noted that the data conversion system and method of the present invention may be used when converting data from many of various storage mediums having any of various data formats to any of various output storage mediums also having any of various data formats. It is also noted that the first and second storage mediums may be the same medium, i.e., the data conversion system and method executing on the computer 22 can read data from the storage medium 24, convert the data to a new format, and then output the converted data back to the same medium, i.e., the medium 24, as shown by the dotted line between the computer 22 and the computer 24.

In one embodiment of the invention, a user enters various information into the computer 22 and then executes the data conversion system and method to perform the data conversion. In an alternate embodiment, one or more users may be at various remote locations from the computer 22 and can access the computer 22 via Internet or TCP/IP connections to access the data conversion system and method executing on the computer system 22. Also, it is noted that the computer systems 22 and 26 may be the same computer system.

It is also noted that the present invention may be used to convert data between any of various types of formats. For example, the data conversion system and method of the present invention can be used to convert data from a database in a first data format to a database having a second data format. Alternatively, the present invention may be used to convert video data having a first compressed format to video data having a second compressed format. Various other types of data format conversions can be performed using the present invention.

The data conversion system and method is a multi-user, object-oriented migration engine which converts or moves massive amounts of information between dissimilar platforms. The DCLE system of the present invention offers true multi-platform design capabilities, allowing conversion of legacy mainframe data to any modern relational database management system (RDBMS), or from any RDBMS to any mainframe platforms such as HP9000 running INFORMIX, or custom applications can be connected to the platform of choice. The present invention may also be used to convert data to a non-platform basis for data warehouse usage. Batch a