Method and apparatus for synchronizing information on two different computer systems

Information

  • Patent Grant
  • 6243705
  • Patent Number
    6,243,705
  • Date Filed
    Wednesday, August 12, 1998
    27 years ago
  • Date Issued
    Tuesday, June 5, 2001
    24 years ago
  • Inventors
  • Original Assignees
  • Examiners
    • Ho; Ruay Lian
    Agents
    • Mahamedi; Van
    • Wilson Sonsini Goodrich & Rosati
Abstract
Many users of handheld computing devices or “palmtops” also own personal computers (PCs) running applications that manage data similar to the data carried in the palmtops. In such cases, users are likely to want the data on the palmtop to be synchronized with the data on the PC. The present invention discloses a method and apparatus for reconciling database files on a palmtop with corresponding database files on a PC.
Description




FIELD OF THE INVENTION




This invention relates to the field of handheld computing devices. Specifically, the present invention discloses a method and apparatus for synchronizing information between a desktop computing system and a handheld computing device.




BACKGROUND OF THE INVENTION




Handheld computing devices or “palmtops” typically weigh less than a pound and fit in a pocket. These palmtops generally provide some combination of personal information management, database functions, word processing and spreadsheets. Users of palmtops may also own personal computers (PCs) running applications that manage data similar to the data carried in the palmtops. In such cases, the user normally would want the data on their palmtop to be easily synchronized with the data on their PC.




A number of programs today transfer data between palmtops and PCs, but they are currently limited in functionality. Some programs transfer all the information from the palmtop to the PC without regard for the prior content on the PC. These programs assume that changes to that particular data are only made on the palmtop, and that the changes made on the palmtop take precedence over any changes made on the PC. As a result, any independent updates made directly on the PC will be lost.




Other methods use ‘flags’ to facilitate synchronization. These methods create update ‘flags’ in each record that has changed, both on the palmtop and the PC. Corresponding files on the palmtop and the PC are then compared, and if one or more flags are set in a file, the file is recognized as having changed. If both the palmtop and PC files have changed, the flags are used to determine which records need to be updated in the other file. The databases of most existing programs, however, do not contain such flags since the databases of most existing programs were not designed to be synchronized. Thus, a different method must be used to synchronize data from programs that are already on the market.




Some programs attempt to synchronize the data on the PC with the palmtop by comparing the information in each application and prompting the user for answers to determine which data to overwrite. For example, U.S. Pat. No. 5,392,390 describes a method for reconciling information between two calendar database files by interrogating the user about which file to update when a difficult case arises. Although these types of programs provide an advantage over programs that assume only one database has changed since they do not indiscriminately overwrite data, they are cumbersome and time consuming. Using these methods, users may have to spend an inordinate amount of time answering questions whenever they attempt to synchronize information between their palmtops and their PCs.




SUMMARY OF THE INVENTION




It is therefore an object of the present invention to provide a solution to the problem of synchronizing records on two different computer systems. It is a further object of the present invention to present a method that reconciles two changeable databases without any user interactions. Specifically, the present invention discloses a method and apparatus for automatically reconciling records in corresponding files on palmtop and a personal computer (PC) by comparing the records in the palmtop and PC files with the records in a backup file in a backup directory from the previous synchronization.




When a user is ready to synchronize information on the two computer systems, the palmtop is connected to the PC. The present invention then compares each record of a file on the palmtop with the records in the backup file in the backup directory to determine whether each record on the palmtop file is new, updated or if it has been deleted from the palmtop file. Next, a comparison is performed between the contents of the corresponding file on the PC and the backup file in the backup directory to determine whether each record on the PC is new, updated or if it has been deleted from the PC file. The results of both compares are stored, e.g., in a new file called a reconcile file, or a temporary data structure. After all the records in both files have been checked, the results of the compare, whether stored in a reconcile file or temporary data structure, are copied over the selected files on the palmtop, the PC and the backup file in the backup directory, thus guaranteeing that all three files are identical after the synchronization. The reconcile file is then deleted.




Other objects, features and advantages of the present invention will be apparent from the accompanying drawings, and from the detailed description.











BRIEF DESCRIPTION OF THE DRAWINGS




The objects, features, and advantages of the present invention will be apparent from the following detailed description of the preferred embodiment of the invention with references to the following drawings.





FIG. 1

illustrates a palmtop connected to a PC containing a backup file from the previous palmtop-PC synchronization.





FIG. 2

illustrates the comparison of a current palmtop calendar file and a current PC calendar file with the backup calendar file in the backup directory on the PC, and the writing of the results to a reconcile file.





FIG. 3

illustrates the copying of the updated information in the reconciled calendar file to the backup calendar file in the backup directory, the PC and the palmtop.





FIG. 4

illustrates the final result of the present invention, with the deletion of the reconcile file, leaving the backup calendar file in the backup directory, the PC calendar file and the palmtop calendar file synchronized.











DETAILED DESCRIPTION




The present invention discloses a method and apparatus for automatically reconciling records in a file on a palmtop with records in a corresponding file on a personal computer. In the following description, for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that these specific details are not required to practice the present invention. Furthermore, the present invention is described using one possible embodiment. For example, the present invention is described with reference to calendar files. However, any type of data files can be synchronized using the teachings of the present invention. Thus, the teachings of the present invention can be used to synchronize to-do lists, address lists, phone lists, and any other record oriented database file.




Referring to

FIG. 1

, when a user is ready to synchronize information on the two computer systems, palmtop computer


100


is connected to personal computer (PC)


200


with a communication link


10


. The communication link may consist of a serial data line or any other type of data communication line between the palmtop computer


100


and PC


200


. Palmtop computer


100


and PC


200


each contain versions of corresponding files,


101


and


201


. It is possible and likely that corresponding files


101


and


201


have been altered with new, modified, and deleted records since the last synchronization.




The synchronization process is conceptually illustrated in FIG.


2


. The synchronization process is controlled by computer instructions that can be stored on magnetic media on the PC


200


. The present invention uses a backup directory


203


stored on the PC. Backup directory


203


contains a backup file that stores the file state from a previous synchronization of the PC


200


and the palmtop


100


. The backup file is used to reconcile the records in a file on the palmtop computer


100


with the corresponding file in the PC.




To create an initial backup directory


203


, the palmtop and PC files are merged. For example, if the PC


200


starts with a calendar file and the palmtop


100


does not have a calendar file, then PC calendar file


201


will be copied into a backup calendar file


202


in the backup directory


203


. Backup calendar file


202


in backup directory


203


will be used to create the same records on palmtop


100


, thus synchronizing palmtop calendar file


101


and PC calendar file


201


with backup calendar file


202


in backup directory


203


. If both PC


200


and palmtop


100


start out with calendar files, then the two calendar files will be merged, and exact duplicate records will be filtered out. The resulting merged file will then be used for the palmtop calendar file


101


, PC calendar file


201


, and the backup calendar file


202


.





FIG. 2

illustrates the record synchronization process where a PC calendar file


201


and a palmtop calendar file


101


each contain a plurality of records that have been modified. The PC also contains backup calendar file


202


stored in backup directory


203


, comprising a calendar file from the previous synchronization between palmtop computer


100


and PC


200


. The plurality of records in the PC calendar file


201


and the corresponding palmtop calendar file


101


are then each compared to the records in the corresponding backup calendar file


202


in backup directory


203


to determine new, updated or deleted records. In one embodiment, the results of the compare operations are then used to create a single reconcile file


204


that contains all the new records, modified records, and unmodified records. The deleted records are removed. The contents of the reconcile file


204


are then copied to PC file


201


, palmtop file


101


, and backup calendar file


202


in backup directory


203


(FIG.


3


). All three calendar files are thus synchronized. Finally reconcile file


204


is then deleted as illustrated in FIG.


4


.




In another embodiment, the intermediate results of the compare operations may be stored in a temporary data structure that contains all the new records, modified records, and unmodified records. The deleted records are removed. The contents of the data structure are then copied to PC file


201


, palmtop file


101


, and backup calendar file


202


in backup directory


203


(FIG.


3


). All three calendar files are thus synchronized. The temporary data structure is no longer used.




To fully describe what occurs during the comparison process, Table 1 lists all the possible cases and what occurs during the record synchronization process, according to one embodiment.














TABLE 1









CONDITION




RESULT




METHOD











Record was added to a




Record is copied into




Record was not found in






file.




reconcile file.




backup file or other file.






Record was added




Record is copied into




Record was not found in






into both files and




reconcile file.




backup file but matched exactly






with exactly the same





a record in the other file.






contents.






Record was deleted




Neither record is




Record was found in one file






from one file but still




copied into the




and the backup file but not the






exists in the other.




reconcile file.




other file.






Record was deleted




Copy changed record




The record that was deleted is






from one file but the




into the reconcile




gone in both files so it cannot






same record in other




file.




be copied. The changed record






file has been changed.





acts like a new record since it








does not exist in the backup








file.






Record was deleted




Neither record is




The record that was deleted is






from both files.




copied into reconcile




gone from both files so it







file.




should not be copied.






Record was modified




Copy changed record




Changed record is not found






in one file.




into the reconcile




in backup file making it appear







file.




as a new record. The original








record in the other file








matches a record in the backup








but not in the original file








making it a deleted record.






Same record was




Record is copied into




Both records are new but since






changed in both files




the reconcile file.




they match exactly only one






exactly the same way.





record is created in the








reconcile file for them.






Same record was




Both records are




Both records appear as new






changed in both files,




copied into the




records since neither match






but not in the exact




reconcile file.




any records in the backup file.






same way.














The first column of Table 1 lists the possible conditions of the records in the files to be reconciled. The second column of Table 1 describes how each type of record condition is handled during the reconciliation process. The third column explains how each condition is recognized by the present invention.




For example, in one embodiment, if a record is added into the calendar file on the palmtop


100


and a different record is added into the corresponding calendar file on the PC


200


, then the synchronization system of the present invention will copy both records into the reconcile file. The reconcile file will later be copied back into the backup calendar file in the backup directory, the palmtop calendar file and the PC calendar file, synchronizing the records in the three calendar files. Similarly, if the same record is changed in one way in the palmtop calendar file and changed a different way in the PC calendar file, then both changed records will be copied into the reconcile file. Given that neither altered record will match any records in the backup file, both records will then appear as new records in the backup calendar file in the backup directory, the palmtop calendar file and the PC calendar file.




In the preferred embodiment of the present invention, key contents of a record are identified. Key contents consist of an index field or a group of fields that can be used for record compares. Matching key contents indicate that this is the same record. The preferred embodiment uses these key contents to reduce the time to find matching records and perform the compare.




The embodiment of the present invention as described above assumes that the palmtop files and the PC files have records with identical field order and field names. However, this is not necessary to practice the synchronization method of the present invention. In cases where file formats are non-identical, prior art methods exist to perform translations or conversions of file formats, thus allowing the present invention to function after the non-identical file formats are in a format where records can be compared. This flexibility in file formats is an important feature of the present invention because it allows information to be synchronized between palmtop and PC applications that use different file systems and file formats.




Although the present invention has been described in terms of specific exemplary embodiments, it will be appreciated that various modifications and alterations might be made by those skilled in the art without departing from the spirit and scope of the invention as set forth in the following claims.



Claims
  • 1. A method for reconciling a first file and a second file, said second file corresponding to said first file, said first file and said second file each containing records, said method comprising:creating a backup file containing records from a previous reconciliation of said first file and said corresponding second file; comparing said first file and said corresponding second file with said backup file to determine new, updated or deleted records; creating a reconcile file containing the results of said steps of comparing; and copying contents of said reconcile file to said first file, said corresponding second file and a new backup file.
  • 2. The method as described in claim 1 wherein said first file, said corresponding second file and backup file are calendar files.
  • 3. The method as described in claim 1 wherein said first file resides on a PC.
  • 4. The method as described in claim 3 wherein said second file resides on a palmtop.
  • 5. A method for reconciling a first file, a second file corresponding to said first file, and a backup file, said backup file containing records from a previous reconciliation, said method comprising:copying a first record from said first file into a reconcile file when said first record is added to said first file, and said first record is not in said backup file; copying a second record from said first file into said reconcile file when an identical said second record is added to said first file and said corresponding second file, and said second record is not in said backup file; copying a third record in said first file into said reconcile file when said third record is modified in said first file and a corresponding third record is deleted from said second file, and said third record in said first file is not in said backup file; copying a fourth record from said first file into said reconcile file when said fourth record is modified in said first file, and said fourth record is not in said backup file; copying a fifth record from said first file into said reconcile file when said fifth record in said first file is modified and an identical modification is made to a corresponding fifth record in said second file, and said fifth record in said first file and said corresponding fifth record in said second file are not in said backup file; and copying a sixth record from said first file and a corresponding sixth record from said second file into said reconcile file when said sixth record in said first file is modified and a different modification is made to said corresponding sixth record in said second file, and said sixth record in said first file and said corresponding sixth record in said second file are not in said backup file.
  • 6. The method as described in claim 5 wherein said first file, said corresponding second file and said backup file are calendar files.
  • 7. An apparatus for reconciling records in corresponding files, said apparatus comprising the elements of:a first computer including a first file containing records and a backup file containing records; a second computer including a second file containing records, said second file corresponding to said first file; a communications link for linking said first and second computers; a means for comparing said first file and said second file with said backup file to determine new, updated or deleted records, said backup file containing records from a previous reconciliation between said first and said second computer; a means for storing the results from said means for comparing; and a means for copying said results to said first file on said first computer, said second file on said second computer and a new backup file on said first computer.
  • 8. The apparatus as described in claim 7 wherein said first file, said second file and said backup file are calendar files.
  • 9. The apparatus as described in claim 7 wherein said first computer is a PC.
  • 10. The apparatus as described in claim 9 wherein said second computer is a palmtop.
  • 11. An article of manufacture comprising a computer usable mass storage medium having computer readable program code means embodied therein for causing a processing means to reconcile a first file and a second file, said second file corresponding to said first file, said first and said second files each containing records, said computer readable program code means in said article of manufacture comprising:a means for creating a backup file containing records from a previous reconciliation of said first file and said corresponding second file; a means for comparing said first file and said corresponding second file with said records from said previous reconciliation in said backup file to determine new, updated or deleted records; a means for storing the results of said step of comparing; and a means for copying said results to said first file, said corresponding second file and a new backup file.
  • 12. The article of manufacture as described in claim 11 wherein said first file, said second file and said backup file are calendar files.
  • 13. The article of manufacture as described in claim 11 wherein said means for storing the results of said step of comparing comprises means for creating a reconcile file containing said results.
  • 14. The article of manufacture as described in claim 11 wherein said means for storing the results of said step of comparing comprises means for creating a temporary data structure containing said results.
  • 15. A computer comprising:a storage medium comprising: a first plurality of records, the first file being alterable by a user of the first computer, a plurality of backup records, and a set of instructions; a communication link coupleable to a second computer to receive a second plurality of records; wherein after receiving the second file, the set of instructions is executable to: identify if each of the second plurality of records is different than all of the records in the plurality of backup records, identify if each of the first plurality of records is different than all of the records in the plurality of backup records and in the first plurality of records, store each of the first plurality of records that is different than all of the records in the plurality of backup records and in the second plurality of records as a first portion of a plurality of reconcile records, store each of second plurality of records that is different than all of the records in the plurality of backup records as a second portion of the plurality of reconcile records, store each of the first plurality of records that is the same as one of the records in the plurality of backup records as a third portion of the plurality of reconcile records, replace the first plurality of records with the plurality of reconcile records, and signal the second computer to replace the second plurality of records with the plurality of reconcile records.
  • 16. The computer of claim 15, wherein the set of instructions are executable in response to the first computer receiving a signal from the second computer over the communication link.
  • 17. The computer of claim 15, wherein the set of instructions are executable in response to the first computer electrically coupling to the second computer over the communication link.
  • 18. The computer of claim 15, wherein the set of instructions are executable to replace the plurality of backup records with the plurality of reconcile records.
  • 19. The computer of claim 15, wherein the first plurality of records are organized as a first file, the second plurality of records are organized as a second file, and wherein the plurality of backup records are organized as a backup file.
  • 20. The computer of claim 19, wherein the plurality of reconcile records are organized as a reconcile file.
  • 21. The computer of claim 19, wherein backup file corresponds to a previous reconcile file formed by the set of instructions, and the set of instructions are executable to identify if the second plurality of records have a new record entered by a user of the second computer after the previous reconcile file was formed.
  • 22. The computer of claim 21, wherein the set of instructions are executable to identify if the first plurality of records have a new record entered by the user of the first computer after the previous reconcile file was formed.
  • 23. The computer of claim 15, wherein the plurality of reconcile records are temporary data structures that are erased from the computer after the plurality of reconcile records are signaled to the second computer.
Parent Case Info

This application is a continuation of U.S. patent application Ser. No. 08/947,216, filed Oct. 8, 1997 now issued as U.S. Pat. No. 5,832,489 which is a continuation of U.S. patent application Ser. No. 08/544,927, filed Oct. 18, 1995 now issued as U.S. Pat. No. 5,727,202.

US Referenced Citations (40)
Number Name Date Kind
4432057 Daniell et al. Feb 1984
4807182 Queen Feb 1989
4866611 Cree et al. Sep 1989
4875159 Cary et al. Oct 1989
4956809 George et al. Sep 1990
5001628 Johnson et al. Mar 1991
5065360 Kelly Nov 1991
5142619 Webster, III Aug 1992
5187787 Skeen et al. Feb 1993
5210868 Shimada et al. May 1993
5237678 Kuechler et al. Aug 1993
5251291 Malcolm Oct 1993
5261045 Scully et al. Nov 1993
5261094 Everson et al. Nov 1993
5272628 Koss Dec 1993
5283887 Zachary Feb 1994
5301313 Tereda et al. Apr 1994
5315709 Alston, Jr. et al. May 1994
5327555 Anderson Jul 1994
5333252 Brewer, III et al. Jul 1994
5339392 Risberg et al. Aug 1994
5339434 Rusis Aug 1994
5355476 Fukumura Oct 1994
5379057 Clough et al. Jan 1995
5392390 Crozier Feb 1995
5432994 Shaheen et al. Jul 1995
5463772 Thompson et al. Oct 1995
5475833 Dauerer et al. Dec 1995
5519606 Frid-Nielsen et al. May 1996
5537592 King et al. Jul 1996
5544356 Robinson et al. Aug 1996
5574859 Yeh Nov 1996
5592669 Robinson et al. Jan 1997
5598536 Slaughter, III et al. Jan 1997
5630081 Rybicki et al. May 1997
5666530 Clark et al. Sep 1997
5684990 Boothby Nov 1997
5696702 Skinner et al. Dec 1997
5701423 Crozier Dec 1997
5729452 Smith et al. Mar 1998
Non-Patent Literature Citations (11)
Entry
Cobb et al., “Paradox 3.5 Handbook 3rd Edition” Bantam (1991), pp. 803-816.
Alfieri, “The best book of: Wordperfect 5.0”, Hayden Books (1988), pp. 153-165 and 429-435.
User Manual For PC-Link for the B.O.S.S. and the PC-link for the B.O.S.S, Traveling Software, Inc. (1989).
User Manual For Connectivity Pack for the HP 95LX, Hewlett Packard Company (1991).
Organizer Link II Operation Manual, Sharp Electronics Corporation, No Date.
“Open Network Computing-Technical Overview”, Sun Technical Report, Sun Microsystems, Inc. pp. 1-32 (1987).
Zahn, et al., “Network Computing Architecture”, pp. 1-11, 19-31, 87-115, 117-133, 187-199, 201-209 (1990).
IntelliLink Brochure (1990).
“Logical Connectivity: Applications, Requirements, Architecture, and Research Agenda”, Stuart Madnick & Y. Richard Wang, MIT System Sciences, 1991, Hawaii Int'l , vol. 1 IEEE, Jun. 1991.
“Automatically Synchronized Objects”, Research Disclosure #29261, p. 614 (Aug. 1988). No Copy Available.
“FRx Extends Reporting Power Of Platinum Series: (IBM Desktop Software's Line of Accounting Software)” Doug Dayton, PC Week, v. 8, No. 5, p. 29(2), Feb. 1991.
Continuations (2)
Number Date Country
Parent 08/947216 Oct 1997 US
Child 09/132815 US
Parent 08/544927 Oct 1995 US
Child 08/947216 US