WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method for mapping, translating, and dynamically reconciling data between disparate computer platforms    
United States Patent5701423   
Link to this pagehttp://www.wikipatents.com/5701423.html
Inventor(s)Crozier; Keith (Acton, MA)
AbstractTraditionally, it has been difficult to share data among diverse computer applications and platforms because of underlying differences in data formats. Although the meaning or purpose of the data may be similar or identical (for example, two appointments entered using separate computer applications), the differences in data formats required by the various computer applications and platforms renders such sharing difficult. A method is disclosed for the translation of dissimilarly-formatted data between disparate computer applications and platforms. The method also provides for the dynamic reconciliation of conflicts in the data (for example, two appointments scheduled at the same time) based on both the content of the data and on specific preferences indicated by the user of the translation facility. First, the data is translated to a common format based on the user-specified mapping of data fields (identifying handheld and desktop fields to be translated) and considering the characteristics of the handheld or desktop computer application. Then, if the specific data item (such as an appointment, telephone book entry, or memo entry) already exists on the desktop computer application or platform, the user is optionally notified of the conflict and given the opportunity to replace the existing data, ignore the incoming data, or modify the incoming data. The criteria for determining the existence of conflicts is disclosed for updating schedule information and keyed databases.
   














 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 5701423
Method for mapping, translating, and dynamically reconciling data

     between disparate computer platforms - US Patent 5701423 Drawing
Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
Inventor     Crozier; Keith (Acton, MA)
Owner/Assignee     Puma Technology, Inc. (San Jose, CA)
Patent assignment
All assignments
Publication Date     December 23, 1997
Application Number     08/224,329
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     April 7, 1994
US Classification     715/762 705/22 705/28 707/102 709/253 715/505
Int'l Classification     G06F 017/30
Examiner     Amsbury; Wayne
Assistant Examiner     Alam; Hosain T.
Attorney/Law Firm     Fish & Richardson P.C.
Address
Parent Case     This is a divisional of application Ser. No. 07/867,167, filed Apr. 10, 1992, now U.S. Pat. No. 5,392,390.
Priority Data    
USPTO Field of Search     395/600 395/161 395/159 395/500 395/650 395/200 395/611 395/612 395/613 395/335 395/766 395/228 395/229 395/230 395/231 395/232 395/233 395/234 395/235 395/236 395/237 395/238 395/239 395/240 395/241 395/242 395/200.01 395/200.19 395/200.16 364/DIG. 1
Patent Tags     mapping, translating, dynamically reconciling data between disparate computer platforms
   
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
5519606
Frid-Nielsen
705/9
May,1996

[0 after 0 votes]
5475833
Dauerer

Dec,1995

[0 after 0 votes]
5434994
Shaheen

Jul,1995

[0 after 0 votes]
5392390
Crozier

Feb,1995

[0 after 0 votes]
5339392
Risberg
715/762
Aug,1994

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

[0 after 0 votes]
5333252
Brewer, III
715/506
Jul,1994

[0 after 0 votes]
5327555
Anderson

Jul,1994

[0 after 0 votes]
5315709
Alston, Jr.
707/6
May,1994

[0 after 0 votes]
5301313
Terada
707/4
Apr,1994

[0 after 0 votes]
5283887
Zachery
715/513
Feb,1994

[0 after 0 votes]
5272628
Koss
715/503
Dec,1993

[0 after 0 votes]
5261045
Scully
715/751
Nov,1993

[0 after 0 votes]
5261094
Everson
707/201
Nov,1993

[0 after 0 votes]
5251291
Malcolm
715/539
Oct,1993

[0 after 0 votes]
5237678
Kuechler
707/5
Aug,1993

[0 after 0 votes]
5210868
Shimada
707/5
May,1993

[0 after 0 votes]
5187787
Skeen
719/314
Feb,1993

[0 after 0 votes]
5142619
Webster, III
715/803
Aug,1992

[0 after 0 votes]
5065360
Kelly

Nov,1991

[0 after 0 votes]
4956809
George
707/101
Sep,1990

[0 after 0 votes]
4875159
Cary
707/203
Oct,1989

[0 after 0 votes]
4866611
Cree
708/112
Sep,1989

[0 after 0 votes]
4807182
Queen
715/511
Feb,1989

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

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

N/A

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

No, license is not currently available



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

No, license is not currently available



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

No



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

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

No



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

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


What is claimed is:

1. A computer implemented method for translating computer data from a source record structure, in which information in a source file is arranged, to a destination record structure different from said source record structure, each of said source and destination record structures comprising a plurality of fields, each having a name, the method comprising

(a) presenting the names of the fields of each of said source and destination record structures on a display

(b) allowing a user to interactively select a field from said source record structure and a corresponding field from said destination record structure, thereby establishing a mapping between said fields, and

(c) translating the information of the source file, which is arranged in said source record structure, into a form compatible with said destination record structure in accordance with said mapping,

wherein said destination record structure differs from said source record structure in at least one of the following ways:

(a) field name, or

(b) field order, or

(c) one-to-many or many-to-one field correspondence, wherein said source file exists on a first computer and said destination record structure is specified by a program for execution on a second computer.

2. The method of claim 1 wherein said selecting comprises said user clicking a pointer device on a displayed name of a source field of said source record structure and clicking said pointer device on a displayed name of a destination field of said destination record structure, thereby establishing a mapping between said source field and said destination field.

3. The method of claim 2 wherein said mapping between said source field and said destination field is displayed on said display.

4. The method of claim 3 wherein said displaying of said mapping comprises displaying the name of said destination field adjacent to the name of said source field.

5. The method of claim 1 wherein said field names are acquired by a first program for said presenting by examining a second program, the second program comprising an application that operates on files having at least one of said source and destination record structures.

6. The method of claim 5 wherein said examination is performed by an inter-application communication facility.

7. The method of claim 1 wherein said field names are acquired by a program for said presenting by examining data dictionary records in a file.

8. The method of claim 1 wherein said field names are acquired by a program for said presenting from a description of one of said record structures which is hard-coded into the program for said presenting.

9. The method of claim 1 wherein said field names for said source and destination record structures are acquired by a program for said presenting by techniques chosen from the list comprising:

(a) examining a program that operates on files having at least one of said source and destination record structures,

(b) examining data dictionary records stored in a file, or

(c) hard-coding a description of said record structure into a program for said establishing,

the method further comprising determining, for each of said source and destination record structures, which of said techniques to use for said acquiring.

10. The method of claim 1, wherein said mapping comprises mapping a source field of said source record structure to a destination field of said destination record structure, said destination field being of a different data format from the data format of said source field, and wherein said translating comprises data format conversion.

11. The method of claim 1 wherein said mapping comprises mapping one field of said source record structure to more than one field of said destination record structure.

12. The method of claim 1 wherein said mapping comprises mapping more than one field of said source record structure to one field of said destination record structure.

13. The method of claim 1, wherein a destination file of said destination record structure exists, further comprising the steps of

comparing the translated information of said source file to the information of said destination file.

14. The method of claim 13 further comprising

establishing a correspondence between records of said source file and records of said destination file, said correspondence based on comparisons of keys of said records,

performing said translating on the information of each said record of said source file, thereby producing a translated record, and

allowing a user, immediately after each said comparison in which a difference is discovered, to interactively select either said translated record or the corresponding records of said destination file, or both, or neither, and

writing said selected records to an output file.

15. The method of claim 1, wherein said translating proceeds in two phases, the first phase being a translation from said source record structure to a common intermediate record structure, and the second phase being a translation from said common intermediate record structure to said destination record structure.
 Description Submit all comments and votes
 


REFERENCE TO MICROFICHE APPENDIX

A source code listing of the preferred embodiment of the invention is appended in the form of 328 pages recorded on microfiche.

A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever.

BACKGROUND OF THE INVENTION

This invention relates to programs that share data across disparate computer applications and platforms, such as handheld computers and desktop computers.

Handheld computers typically weigh less than a pound and fit in a pocket. Handheld computers typically provide some combination of personal information management functions, database functions, word processing functions, and spreadsheet functions. Owing to the physical and memory size, and processing power limitations of the handheld computers, however, these applications are generally limited in functionality and differ in data content and usage from similar applications on desktop computers.

Many users of handheld computers also own a desktop computer used for applications that manage data similar to the data carried in the handheld computer. In such cases, the user normally would want the same data on the desktop computer as in the handheld computer. There are a number of programs that transfer data between handheld computers and desktop computers, but they all create desktop computer's data with no regard for prior contents. As a result, all updates that have been done to the desktop computer's data prior to the transfer are ignored.

Many desktop computer applications have their data stored in large, complex, proprietary formats. Data transfer to these applications usually cannot take place through file transfer, because the data comes from the handheld computer in a different format and usually is a subset of the data held on the desktop computer. In such cases, data can only be communicated to and from the desktop application by the use of a database manager or by use of dynamic inter-application communication techniques.

Many handheld and desktop programs work with database files. Database files have a file format, the set of rules by which data can be read from or written to the file. A database file is composed of records, some of which are data records with the data of interest to the application program and the user, and often some header records. Each data record is composed of fields, and each field has a name and a data format. Examples of data formats include 1-, 2-, and 4-byte integers, a 4-byte or 8-byte floating point number, or one or more ASCII text strings. In the case of multiple text strings in one field, the strings (or subfields) are separated by a special character such as tab or linefeed. Each data record of a file shares the same record structure: a record structure is described by the fields' names, data formats, and byte offsets in the record. The file format's rules include a description of the record structure of the constituent data records, the record structure for any header records and how these header records aid navigation to find specific data records and/or specific fields within those records, "hidden" key tags to help find a record, and any rules that application programs use to access a particular record and field.

Database files are managed by two broad classes of programs, database managers and other application programs. A database manager is a program for managing general databases, that is, database files whose record structure can be specified at creation time by the user. Database manager programs maintain data dictionary records as headers in the database file. These data dictionary records specify each field's name, start byte offset within the record, and data format. Examples of database manager programs include Paradox, dbase, and IBM Current.

Other database files are managed by special-purpose application programs. These programs work on databases of one specified record structure; this specification is embedded in the code of the program rather than in header records of the file. For instance, a telephone directory program may work on files with a 32-character name and a 10-character phone number. This record structure would have been encoded in a data structure declaration in the source of the program.

One or more of the fields of a database record structure are designated as the key, the "name" by which the record can be specified for reading or writing. Some database files, typically those for schedule application programs, have "range keys"--the key specifies start and end points in a 1-dimensional key space rather than a single point in the (possibly multi-dimensional) key space. Range keys may specify multiple intervals, for instance "9AM to 10AM every Monday until November 17." Where non-range keys must be unique--there cannot be two records with the same non-range key--range keys may overlap or even be exactly equal, though typically these are undesirable situations and should brought to the attention of the user.

Because handheld computers of the current generation are diskless, "files" in the classical sense do not exist on many of these handheld computers. Within this patent, the term file should be understood to include the memory-resident datasets of a handheld computer, and the serial bit stream format in which a handheld computer sends or receives data to/from another computer.

File copying and data conversion are long-standing problems in the art, and many solutions to different parts of the problem have been offered.

U.S. Pat. No. 4,966,809 describes a technique for sharing data among disparate platforms with differing data formats, but leaves unsolved the problems of sharing data among platforms that require different record structures or file formats (broader problems that include the data format problem as a constituent), and does not provide a method for a user of these disparate platforms to conveniently instruct his system about his environment so that the system will apply itself in that environment.

There are several file transfer programs for communicating between computers, including Organizer Link 2 from Sharp.RTM. Electronics, PC-Link for the Casio B.O.S.S..TM. from Traveling Software.RTM., HP95LX Connectivity Pack from Hewlett Packard, and 3 Link from Psion PLC. These file transfer programs do not provide the invention's user-specifiable field mapping of data nor dynamic reconciliation of data.

SUMMARY OF THE INVENTION

The current invention solves the problem of sharing data between disparate application programs by providing user-specifiable field mapping of data and dynamic reconciliation of conflicts.

In preferred embodiments, the invention features accepting data from a first computer application, and then mapping and translating the data to the formats expected by a second computer application. The user of the translation facility may explicitly specify the mapping of the data fields of the two applications' files. During the data transfer, the user may also choose to be informed of application-specific conflicts between data received from the first application and that already existing on the second platform. When a data conflict is encountered, the user may then opt to accept, ignore, or change the data before it is applied to the second application's files.

The invention can also be used to transfer, compare and reconcile data between any other pair of disparate platforms, even if the disparity is relatively minor, as for instance between a Paradox database manager and a dbase database manager running on the same IBM PC.

The invention provides an effective method of translating data between disparate computer platforms and a wide variety of applications, while ensuring that the data need only be entered once (and not duplicated).

The invention also ensures the integrity of the data imported to computer applications, through the process of conflict resolution (also known as data reconciliation).

In a first aspect, the invention features a method for an interactive user of a computer to dynamically reconcile the information of two database files. The method comprises the steps of choosing corresponding records from the two files, comparing the information of corresponding fields of these records, and allowing the user to decide how to change the data in one of the two files to bring them into agreement.

In preferred embodiments in which the records of the two files are named by range keys, as in an appointment schedule application, the method comprises determining if any schdule conflicts exist (either the time of an appointment has been changed in one of the two schedule databases, or there are two different appointments for conflicting times) and allowing the user to decide how to change the data in one of the two files to bring them into agreement.

The invention offers a solution to previously unsolved portions of the data translation problem, by providing means to translate data from one record structure to another.

In a second aspect, the invention features a method for translating computer data from a source record structure to a destination record structure. The invention offers translations that are new in the art, by translating between source and destination record structures that differ in field naming, field order, or one-to-many or many-to-one field correspondence. The method comprises the steps of establishing a mapping between the fields of the two record structures, and using that mapping to translate the data of a source file into the destination record structure.

The invention provides both a framework and a convenient user interface for tying together previous data translation techniques into a more broadly-applicable and easy-to-use system.

In a third aspect, the invention features a method for translating computer data from a source record structure to a different destination record structure. The method comprises the steps of first establishing a mapping between the fields of the two record structures by presenting the names of the fields of each of the record structures on a display, and allowing a user to specify the correspondence between pairs of fields. The actual translation of files then makes use of this mapping to translate the data of a file from the source record structure to the destination record structure.

Other features and advantages of the invention will be apparent from the following description of preferred embodiments, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a preferred embodiment of the invention.

FIG. 2 shows examples of the transfer and translation of data from handheld applications and computers to common record structures.

FIG. 3 shows examples of the transfer and translation of data from the common record structures to desktop applications and computers.

FIG. 4 shows an example of the detailed mapping of fields (specifying correspondence between handheld and desktop) between a handheld and desktop applications.

FIGS. 5A and 5B show a sample screen display which enables the user to specify the mapping or correspondence of field names between handheld and desktop applications and platforms.

FIG. 6 shows an application-specific reconciliation table used internally by the translation software to achieve data reconciliation.

FIG. 7 shows a sample screen display which notifies the user of conflicts between handheld and desktop data for reconciliation purposes.

FIG. 8 shows a sample screen display which notifies the user of conflicts between schedule data contained on the handheld and desktop applications and platforms.

FIG. 9 shows the field structure of the field mapping database.

FIG. 10 shows a sample field mapping database.

FIG. 11 shows an example of data translated between a handheld computer database and a desktop computer database.

DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

The preferred embodiment comprises several large programs with a number of steps that run on the desktop computer, and a small file transfer program that runs as a slave on programmable handheld computers. The major steps of the main program are:

1. Mapping of fields from desktop data formats to handheld data formats if required

2. Transfer of data from handheld to desktop

3. Translation of data to desktop format

4. Dynamic reconciliation of conflicts

The mapping step establishes correspondences between fields of pairs of files. On import, the transfer step brings the handheld data into the desktop computer. The translation step uses the rules provided by the mapping step to convert the handheld data in one format to desktop data in another format. The dynamic reconciliation step informs the user of conflicts in the data and allows him to make decisions about whether to accept the new data, ignore it, or change it. A menu driver is provided to select which handheld applications to translate to which desktop applications.

The preferred embodiment also provides the capability to export and translate data from the desktop computer to the handheld computer. In this case, the steps are:

1. Mapping of fields from desktop data formats to handheld data formats if required

2. Transfer of data from desktop to handheld

3. Translation of data to handheld format

Again, the above steps are under the control of a menu driver.

The following detailed description focuses on the mapping, transfer, and translation between the handheld computer and the desktop computer as well as the dynamic reconciliation of the data during translation. The mapping, transfer, and translation of the data from the desktop computer and the handheld computer is essentially identical except that there is no reconciliation, because the desktop data replaces the handheld data in the preferred embodiment owing to built-in constraints in most handheld computers.

FIG. 1 shows a HANDHELD COMPUTER 101 with applications PHONE 103, SCHEDULE 105, TODO 107, DATA 109, and MEMO 111 transferring data to a desktop computer using file transfer application HHCOMM 113. HHCOMM 113 is responsible for accepting the data from the handheld computer and translating it to the COMMON RECORD STRUCTUREs, which are defined by the preferred embodiment. The COMMON RECORD STRUCTUREs are then passed to DESKTOP COMPUTER 115 by transfer application DTCOMM 117 which utilizes DTXLT 119 inter-application communications or database manager facilities as appropriate to translate the data to formats accepted by desktop applications PERSONAL INFORMATION MANAGER 121, DATABASE MANAGER 123, SPREADSHEET PROGRAM 125, or WORD PROCESSING PROGRAM 127.

Before communicating with the desktop application, the user may specify the mapping of handheld and desktop application data for the PHONE 103 and DATA 109 applications by utilizing the mapping facilities of DTMAP 129. A default mapping is provided for the other applications.

The user may optionally request from DTRECON 131 that conflicts between the handheld and desktop data be reconciled dynamically, thereby giving the user the option of accepting, ignoring, or changing any conflicting data.

The mapping step of the program builds a set of rules that the translate step will use to translate data from one record structure to another. The mapping step must be run once for each pair of source-destination file formats where one of the files is a keyed database, such as PHONE 103 or DATA 109. The output of a mapping step is a mapping database that can be used for any number of translate steps in the future.