P
USRE43571EExpiredUtilityPatentIndex 79

Synchronization of recurring records in incompatible databases

Assignee: BOOTHBY DAVID JPriority: Nov 13, 1996Filed: Aug 24, 2001Granted: Aug 7, 2012
Est. expiryNov 13, 2016(expired)· nominal 20-yr term from priority
Inventors:BOOTHBY DAVID J
G06F 16/273Y10S707/99952
79
PatentIndex Score
7
Cited by
310
References
58
Claims

Abstract

A technique for synchronizing databases in which different techniques are used for storing a recurring event. A database in which the recurring event is, for example, stored as a single recurring record can be synchronized with a database in which the same recurring event is stored as a series of individual records. The individual records are processed to form a synthetic recurring record representing the set of individual records, and synchronization decisions are based on a comparison of the synthetic record to the recurring record of the other database. Following synchronization, the synthetic record can be “fanned” back into the individual records to update the database containing individual records, and the updated recurring record can be written back to the other database. In this way, the invention avoids the problems encountered with prior methods, in which synchronization resulted in a recurring record being transformed into a series of individual records.

Claims

exact text as granted — not AI-modified
1. A computer implemented method of synchronizing at least a first and a second database, wherein the manner of storing a set of recurring date bearing instances differs between the first and second databases, and at least the first database uses a recurring record to store the set of recurring date bearing instances, the method comprising:
 processing a plurality of non-recurring records in the second database to identify a set of non-recurring records storing a set of recurring date bearing instances in the second database; 
 performing a comparison of the set of non-recurring records of the first second database to a recurring record of the first database; and 
 completing synchronization based on the outcome of the comparison. 
 
     
     
       2. The method of  claim 1  wherein the step of completing synchronization includes adding, modifying, or deleting one of the synthetic set of non-recurring record records and the recurring record. 
     
     
       3. The method of  claim 1  further comprising, after completing synchronization, storing the set of recurring date bearing instances in the second database as a plurality of non-recurring records. 
     
     
       4. The method of  claim 1  further comprising, after completing synchronization, storing the set of recurring date bearing instances in the second database as a recurring record having a different record structure than the recurring record of the first database. 
     
     
       5. The method of  claim 1  further comprising storing a history file containing a record representative of one of the recurring record and the set of non-recurring instances records in a past synchronization. 
     
     
       6. The method of  claim 5  further comprises performing a second comparison of one of the synthetic set of non-recurring record records and the recurring record to the record in the history file representative of the recurring record or the set of non-recurring instances records and completing synchronization based on the outcome of the second comparison. 
     
     
       7. The method of  claim 1  wherein each recurring record and each non-recurring record includes a key field, and wherein the step of processing a plurality of non-recurring records in the second database further comprises:
 performing a second comparison of the key fields of the recurring and non-recurring records; and 
 selecting a group of records from among the recurring and non-recurring records based on the outcome of the second comparison. 
 
     
     
       8. The method of  claim 7  wherein the step of selecting a group of records comprises selecting the group based on identity of the content of the key fields of the recurring and non-recurring records. 
     
     
       9. The method of  claim 7  wherein each recurring record and each non-recurring record includes at least one other field, and wherein the step of processing a plurality of non-recurring records in the second database further comprises:
 performing a third comparison of the at least one other field of the non-recurring records in the group; 
 selecting a the set of non-recurring records based on the outcome of the third comparison; and 
 correlating the set of non-recurring records to the recurring record of the first database. 
 
     
     
       10. The method of  claim 9  wherein selecting the set of non-recurring records based on the outcome of the third comparison is based on identity of content of the at least one other field of the non-recurring records in the group. 
     
     
       11. The method of  claim 1  wherein processing the plurality of non-recurring records further includes processing the plurality of non-recurring records to generate a synthetic recurring record representing the set of recurring date bearing instances in the second database, and
 wherein performing a comparison of the set of non-recurring records to a recurring record includes performing a comparison of the synthetic recurring record of the second database to the recurring record of the first database. 
 
     
     
       12. The method of  claim 11  wherein, following the step of completing synchronization, one of the synthetic recurring record and recurring record is fanned back into a plurality of fanned non-recurring records. 
     
     
       13. The method of  claim 11  wherein the synthetic recurring record has a list of excluded instances and the step of processing a plurality of non-recurring records in the second database to generate a synthetic recurring record further comprises generating a list of excluded instances representative of instances previously represented by the recurring record and currently represented by another record or deleted. 
     
     
       14. The method of  claim 11  wherein the recurring record and the synthetic recurring record each contain a list of excluded date bearing instances, wherein the step of performing a comparison of the synthetic recurring record to the recurring record includes performing a comparison of the list of excluded date bearing instances of the recurring record with the list of excluded date bearing instances of the synthetic recurring record. 
     
     
       15. The method of  claim 14  wherein the step of completing synchronization includes adding, modifying, or deleting the list of excluded date bearing instances of one of the recurring record and the synthetic recurring record. 
     
     
       16. The method of  claim 14  wherein the step of completing synchronization includes adding, modifying, or deleting one of the synthetic recurring record and recurring record. 
     
     
       17. The method of  claim 14  wherein, following the step of completing synchronization, one of the synthetic recurring record and recurring record is fanned into a plurality of fanned non-recurring records excluding the instances in the list of excluded date bearing instances of a corresponding one of the synthetic recurring record and recurring record. 
     
     
       18. The method of  claim 11  further comprising storing a history file containing a record representative of one of the recurring record and synthetic recurring record in a past synchronization. 
     
     
       19. The method of  claim 18  wherein the second database assigns a unique ID to each record, and wherein the method further comprises:
 fanning one of the synthetic recurring record and the recurring record into a plurality of fanned non-recurring records; 
 storing records in the history file representative of the plurality of fanned non-recurring records; 
 storing in the history file the unique IDs assigned by the second database to the plurality of fanned non-recurring records; and 
 recording linkages among the records representative of the plurality of non-recurring records and the record representative of one of the recurring record and synthetic recurring record. 
 
     
     
       20. The method of  claim 18  wherein the second database assigns unique IDs to each record, the history file further contains records representative of non-recurring records of the second database from a past synchronization and unique IDs assigned to the non-recurring records of the second database, and the step of processing a plurality of non-recurring records in the second database to generate a synthetic recurring record further comprises:
 performing a comparison of the unique IDs stored in the history file with unique IDs of the plurality of non-recurring records in the second database; and 
 selecting a set of non-recurring records in the second database based on the comparison of the unique IDs and generating the synthetic recurring record using the set of non-recurring records. 
 
     
     
       21. The method of  claim 20  wherein the step of selecting a set of non-recurring records further comprises selecting a set of non-recurring records in the second database having unique IDs matching a set of the unique IDs stored in the history file. 
     
     
       22. The method of  claim 20  wherein one of the synthetic recurring record and the recurring record has an exclusion list and the step of selecting the set of non-recurring records comprises:
 selecting a set of records in the history file having unique IDs failing to match any of the unique IDs of non-recurring records in the second database; and 
 adding, modifying, or deleting the exclusion list of at least one of the synthetic recurring record and the recurring record, using the set of records in the history file. 
 
     
     
       23. The method of  claim 18  further comprises performing a second comparison of one of the synthetic recurring record and the recurring record to the history file record representative of the recurring record or the synthetic recurring record in the past synchronization, and completing synchronization based on the outcome of the second comparison. 
     
     
       24. A computer program, resident on a computer readable medium, for synchronizing at least a first and a second database, wherein the manner of storing a set of recurring date bearing instances differs between the first and second databases, and at least the first database uses a recurring record to store the set of recurring date bearing instances, comprising instructions for:
 processing a plurality of non-recurring records in the second database to identify a set of non-recurring records storing the set of recurring date bearing instances in the second database; 
 performing a comparison of the set of non-recurring records of the first second database to a recurring record of the first database; and 
 completing synchronization based on the outcome of the comparison. 
 
     
     
       25. The computer program of  claim 24  wherein the instruction for completing synchronization includes adding, modifying, or deleting one of the synthetic set of non-recurring record records and the recurring record. 
     
     
       26. The computer program of  claim 24  further comprising instructions for, after completing synchronization, storing the set of recurring date bearing instances in the second database as a plurality of non-recurring records. 
     
     
       27. The computer program of  claim 24  further comprising instructions for, after completing synchronization, storing the set of recurring date bearing instances in the second database as a recurring record having a different record structure than the recurring record of the first database. 
     
     
       28. The computer program of  claim 24  further comprising instructions for storing a history file containing a record representative of one of the recurring record and the set of non-recurring instances records in a past synchronization. 
     
     
       29. The computer program of  claim 28  further comprises instructions for performing a second comparison of one of the synthetic set of non-recurring record records and the recurring record to the record in the history file representative of the recurring record or the set of non-recurring instances records and completing synchronization based on the outcome of the second comparison. 
     
     
       30. The computer program of  claim 24  wherein each recurring record and each non-recurring record includes a key field, and wherein the instruction for processing a plurality of non-recurring records in the second database further comprises instructions for:
 performing a second comparison of the key fields of the recurring and non-recurring records; and 
 selecting a group of records from among the recurring and non-recurring records based on the outcome of the second comparison. 
 
     
     
       31. The computer program of  claim 30  wherein the instruction for selecting a group of records comprises instructions for selecting the group based on identity of the content of the key fields of the recurring and non-recurring records. 
     
     
       32. The computer program of  claim 30  wherein each recurring record and each non-recurring record includes at least one other field, and wherein the instruction for processing a plurality of non-recurring records in the second database further comprises instruction for:
 performing a third comparison of the at least one other field of the non-recurring records in the group; 
 selecting a the set of non-recurring records based on the outcome of the third comparison; and 
 correlating the set of non-recurring records to the recurring record of the first database. 
 
     
     
       33. The computer program of  claim 32  wherein selecting the set of non-recurring records based on the outcome of the third comparison is based on identity of content of the at least one other field of the non-recurring records in the group. 
     
     
       34. The computer program of  claim 24  wherein processing the plurality of non-recurring records further includes processing the plurality of non-recurring records to generate a synthetic recurring record representing the set of recurring date bearing instances in the second database, and
 wherein performing a comparison of the set of non-recurring records to a recurring record includes performing a comparison of the synthetic recurring record of the second database to the recurring record of the first database. 
 
     
     
       35. The computer program of  claim 34  wherein further comprising, following the instruction for completing synchronization, instructions for fanning one of the synthetic recurring record and recurring record is fanned back into a plurality of fanned non-recurring records. 
     
     
       36. The computer program of  claim 34  wherein the synthetic recurring record has a list of excluded instances and the instruction for processing a plurality of non-recurring records in the second database to generate a synthetic recurring record further comprises instructions for generating a list of excluded instances representative of instances previously represented by the recurring record and currently represented by another record or deleted. 
     
     
       37. The computer program of  claim 34  wherein the recurring record and the synthetic recurring record each contain a list of excluded date bearing instances, wherein the instruction for performing a comparison of the synthetic recurring record to the recurring record includes instructions for performing a comparison of the list of excluded date bearing instances of the recurring record with the list of excluded date bearing instances of the synthetic recurring record. 
     
     
       38. The computer program of  claim 37  wherein the instruction for completing synchronization includes instructions for adding, modifying, or deleting the list of excluded date bearing instances of one of the recurring record and the synthetic recurring record. 
     
     
       39. The computer program of  claim 37  wherein the instruction for completing synchronization includes instructions for adding, modifying, or deleting one of the synthetic recurring record and recurring record. 
     
     
       40. The computer program of  claim 37  wherein further comprising, following the instruction for completing synchronization, instructions for fanning one of the synthetic recurring record and recurring record is fanned into a plurality of fanned non-recurring records excluding the instances in the list of excluded date bearing instances of a corresponding one of the synthetic recurring record and recurring record. 
     
     
       41. The computer program of  claim 34  further comprising instructions for storing a history file containing a record representative of one of the recurring record and synthetic recurring record in a past synchronization. 
     
     
       42. The computer program of  claim 41  wherein the second database assigns a unique ID to each record, and wherein the computer program further comprises instructions for:
 fanning one of the synthetic recurring record and the recurring record into a plurality of fanned non-recurring records; 
 storing records in the history file representative of the plurality of fanned non-recurring records; 
 storing in the history file the unique IDs assigned by the second database to the plurality of fanned non-recurring records; and 
 recording linkages among the records representative of the plurality of non-recurring records and the record representative of one of the recurring record and synthetic recurring record. 
 
     
     
       43. The computer program of  claim 41  wherein the second database assigns unique IDs to each record, the history file further contains records representative of non-recurring records of the second database from a past synchronization and unique IDs assigned to the non-recurring records of the second database, and the instruction for processing a plurality of non-recurring records in the second database to generate a synthetic recurring record further comprises instructions for:
 performing a comparison of the unique IDs stored in the history file with unique IDs of the plurality of non-recurring records in the second database; and 
 selecting a set of non-recurring records in the second database based on the comparison of the unique IDs and generating the synthetic recurring record using the set of non-recurring records. 
 
     
     
       44. The computer program of  claim 43  wherein the instruction for selecting a set of non-recurring records further comprises instructions for selecting a set of non-recurring records in the second database having unique IDs matching a set of the unique IDs stored in the history file. 
     
     
       45. The computer program of  claim 43  wherein one of the synthetic recurring record and the recurring record has an exclusion list and the instruction for selecting the set of non-recurring records comprises instructions for:
 selecting a set of records in the history file having unique IDs failing to match any of the unique IDs of non-recurring records in the second database; and 
 adding, modifying, or deleting the exclusion list of at least one of the synthetic recurring record and the recurring record, using the set of records in the history file. 
 
     
     
       46. The computer program of  claim 41  further comprises comprising instructions for performing a second comparison of one of the synthetic recurring record and the recurring record to the history file record representative of the recurring record or the synthetic recurring record in the past synchronization, and completing synchronization based on the outcome of the second comparison. 
     
     
       47. A computer implemented method of synchronizing at least a first and a second database, wherein records in the first and second databases include a key field, the method comprising:
 performing a first comparison of the content of the key field of the records of the first database with the content of the key field of the records of the second database; 
 selecting a plurality of groups of records of the first and second databases based on the outcome of the first comparison; 
 performing a second comparison of the records in one of the plurality of groups of records to determine a correspondence between a record of the first database in the one of the plurality of groups and a record of the second database in the one of the plurality of groups; 
 performing a third comparison of the records in the determined correspondence; and 
 completing the synchronization based on the outcome of the third comparison. 
 
     
     
       48. The method of  claim 47 , wherein the method further comprises selecting the plurality of groups of records based on identity of the contents of the key fields of the records of the first and second database. 
     
     
       49. The method of  claim 47  further comprising storing a history file containing history records representative of records of the first and second databases in a past synchronization, wherein performing a second comparison includes performing a comparison of the records in the one of the plurality of groups to the history records and wherein performing the third comparison includes comparing a corresponding history record with the records in the determined correspondence. 
     
     
       50. The method of  claim 49  wherein the step of completing synchronization further comprises:
 performing a third comparison of the records of the corresponding item group; and 
 completing synchronization based on the third comparison. 
 
     
     
       51. The method of  claim 47  wherein the key field is a date field. 
     
     
       52. The method of  claim 47  wherein the key field is a text field. 
     
     
       53. A computer program, resident on a computer readable medium, for synchronizing at least a first and a second database, wherein records in the first and second databases include a key field, comprising instructions for:
 performing a first comparison of the content of the key field of the records of the first database with the content of the key field of the records of the second database; 
 selecting a plurality of groups of records of the first and second databases based on the outcome of the first comparison; 
 performing a second comparison of the records in one of the plurality of groups of records to determine a correspondence between a record of the first database in the one of the plurality of groups and a record of the second database in the one of the plurality of groups; 
 performing a third comparison of the records in the determined correspondence; and 
 completing the synchronization based on the outcome of the third comparison. 
 
     
     
       54. The computer program of  claim 53 , the computer program further comprises instructions for selecting the plurality of groups of records based on identity of the contents of the key fields of the records of the first and second database. 
     
     
       55. The computer program of  claim 53  further comprising instructions for storing a history file containing history records representative of records of the first and second databases in a past synchronization, wherein performing a second comparison includes performing a comparison of the records in the one of the plurality of groups to the history records and wherein performing the third comparison includes comparing a corresponding history record with the records in the determined correspondence. 
     
     
       56. The computer program of  claim 55  wherein the instruction for completing synchronization further comprises instructions for:
 performing a third comparison of the records of the corresponding item group; and 
 completing synchronization based on the third comparison. 
 
     
     
       57. The computer program of  claim 53  wherein the key field is a date field. 
     
     
       58. The computer program of  claim 53  wherein the key field is a text field.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.