Method of resolving data conflicts in a shared data environment
First Claim
1. A method of automatically resolving data conflicts in a shared data environment where a plurality of users can concurrently access at least portions of a master data file comprising the steps of:
- creating a local data file which is a copy of at least a portion of said master data file;
detecting an attempted update of said master data file with said local data file;
determining if any changes made to said local data file by a first user are in conflict with changes made to said master data file by a second user;
updating said master data file with non-conflicting changes made to said local data file; and
in response to determining that a particular change to said local data file conflicts with a change to said master data file;
(a) notifying at least one user of said particular data conflict;
(b) presenting said user with conflict resolving information related to said particular data conflict;
(c) receiving user input indicating how said particular conflict should be resolved; and
(d) resolving said particular data conflict in accordance with said user input.
12 Assignments
0 Petitions
Accused Products
Abstract
A method and system for automatically resolving data conflicts in a shared data environment where a plurality of users can concurrently access at least portions of a master data file is presented. Users process data files by means of local copies of a master data file. When an attempted update of a master data file with an edited data file from a user is detected, the updating file is analyzed to determine if any changes made are in conflict with changes made to the master data file by a second user. If a conflict is detected, it is resolved by merging the updating file into the master file according to a predefined set of rules. For conflicts which are not resolved by rule-based reconciliation, at least one user is notified of the conflict and presented with conflict resolving information and the conflict is resolved according to user input.
484 Citations
37 Claims
-
1. A method of automatically resolving data conflicts in a shared data environment where a plurality of users can concurrently access at least portions of a master data file comprising the steps of:
-
creating a local data file which is a copy of at least a portion of said master data file;
detecting an attempted update of said master data file with said local data file;
determining if any changes made to said local data file by a first user are in conflict with changes made to said master data file by a second user;
updating said master data file with non-conflicting changes made to said local data file; and
in response to determining that a particular change to said local data file conflicts with a change to said master data file;
(a) notifying at least one user of said particular data conflict;
(b) presenting said user with conflict resolving information related to said particular data conflict;
(c) receiving user input indicating how said particular conflict should be resolved; and
(d) resolving said particular data conflict in accordance with said user input. - View Dependent Claims (2, 3, 4)
-
-
5. A method of automatically resolving data conflicts in a shared data environment where a plurality of users can concurrently access at least portions of a master data file having one or more data elements and existing in a shared storage area, said method comprising the steps of:
-
creating a local data file which is a copy of at least one of said one or more data elements of said master data file in a local storage area;
detecting an attempted save of an edited version of said local data file by a first user;
determining for each changed data element in said edited local data file whether updating a corresponding data element in said master data file with said changed data element will conflict with a change made to said corresponding data element in said master data file by a second user;
completing said save by;
(a) updating said corresponding data element in said master data file with said changed data element if no conflict will be created;
or(b) initiating an attended conflict reconciliation dialog with at least one of said first and second user if a conflict will be created and, according to the results of said dialog, either updating said corresponding data element in said master data file with said changed data element, or preserving said corresponding data element in said master data file. - View Dependent Claims (6, 7)
the step of determining further includes the step of detecting whether said edited version of said local data file contains a new data element; and
and the step of completing further includes the step of adding said new data element to said master data file.
-
-
7. The method of claim 5, wherein the step of determining further includes the step of comparing said changed data element to one of said corresponding data elements in said master data file, wherein a conflict does not exist if said changed data element and said compared data element are the same.
-
8. A method of automatically resolving data conflicts in a shared data environment where a plurality of users can concurrently access at least portions of a master data file having one or more data elements and existing in a shared storage area, said method comprising the steps of:
-
creating a local data file which is a copy of at least one of said one or more data elements of said master data file in a local storage area;
detecting an attempted update of said master data file by a first user with an edited version of said local data file;
in response to a detected update attempt, processing each data element in said edited local file by;
(a) determining whether said processed data element is a new data element and, if so, adding said processed data element to said master data file and then proceeding to step (f), otherwise proceeding to step (b);
(b) determining whether the contents of said processed data element have been changed relative to a corresponding data element in said local data file and, if not, proceeding to step (f), otherwise proceeding to step (c);
(c) determining whether said processed data element is a multi-value data element, and, if so, merging the contents of said processed multi-value data element into a data element in said master data file corresponding to said processed data element and then proceeding to step (f), otherwise proceeding to step (d);
(d) comparing the contents of said data element in said local data file corresponding to said processed data element with the contents of said data element in said master data file corresponding to said processed data element and, if said local and master corresponding data elements are the same, applying said processed data element to said corresponding master data file element and then proceeding to step (f), otherwise proceeding to step (e);
(e) indicating that a conflict exists by initiating an attended conflict reconciliation sequence and, depending on the results of said sequence, either processing a subsequent data element, or applying said processed data element to said corresponding master data file element; and
(f) repeating steps (a)-(e) for another processed data element until each data element in said edited local file has been processed. - View Dependent Claims (9)
indicating to at least said first user a designation and at least a portion of the content of said processed data element and said corresponding master data element; and
requesting that said at least said first user select which one of said indicated values to preserve.
-
-
10. A method of automatically resolving data conflicts in a shared data environment comprising the steps of:
-
providing a shared data computing environment containing a master data file in a shared storage area, the master data file comprising one or more data elements of particular types and having particular attributes, wherein a plurality of users can concurrently edit at least portions of said master data file via respective instances of a local data file in a local storage area, creating a local data file in response to a first user opening said master data file, said local data file including copies of one or more data elements and associated attributes from said master data file;
detecting an attempted update of said master data file with an edited version of said local data file;
determining for each particular one of said data elements in said edited local data file, in accordance with one or more predefined rules, whether updating said corresponding master data file element to reflect changes made to said particular edited local data file element will generate a true conflict with a change made to said corresponding master data file element by a second user;
updating said corresponding master data field element to reflect changes made to said particular edited local data file element when it is determined that said updating will not result in a true conflict; and
initiating a conflict mediation when it is determined that said step of updating would result in a true conflict, wherein said corresponding master data field element is updated to reflect changes made to said particular edited local data file element if said conflict mediation is resolved in favor of said first user.
-
-
11. A method of resolving data conflicts in a shared data environment in which copies of data files are distributed across a plurality of data sites, said method comprising the steps of:
-
receiving a replicated data file at a data site, said replicated data file corresponding to a current data file existing on said data site;
upon the occurrence of a potential conflict condition between said replicated data file and said current data file, resolving said potential conflict by creating a reconciled data file from said received replicated data file and said current data file according to a predefined set of rules;
replacing said corresponding current data file with said reconciled data file; and
replicating said reconciled data file across said plurality of data sites. - View Dependent Claims (12, 13, 14)
indicating particular data files to which said method will be applied; and
disabling conflict handling routines external to said method upon receiving a replicated copy of said particular data files.
-
-
13. The method of claim 12, wherein data files are replicated via a messaging system and said step of indicating comprises the step of classifying said particular data files as a unique message class.
-
14. The method of claim 11, wherein said step of resolving further comprises the steps of:
-
identifying a particular conflict-type which is not resolved according to said predefined rules;
storing those portions of said replicated data file and said current data file which form a data conflict of said particular conflict-type in said reconciled data file as conflicting sub-elements;
in response to a user accessing said reconciled data file, presenting said user with conflict resolving information related to said data conflict;
receiving user input indicating how said particular conflict should be resolved;
resolving said particular data conflict in accordance with said user input.
-
-
15. A method of resolving data conflicts in a shared data environment in which copies of data files are distributed across a plurality of data sites, each said data file having a designated home site, said method comprising the steps of:
-
receiving a replicated data file at a data site, said replicated data file corresponding to a current data file existing on said data site, said current data file and said replicated data file both having the same designated home site;
in response to the detection of a potential conflict between said replicated data file and said current data file, indicating said potential conflict condition to each of said data sites;
searching for an indicated potential conflict condition at the home site of said replicated and current data files;
in response to detecting an indicated potential conflict condition, resolving said potential conflict by creating a reconciled data file from said replicated data file and said current data file according to a predefined set of rules; and
replicating said reconciled data file across said plurality of data sites to replace said corresponding current data files. - View Dependent Claims (16, 17, 18, 19, 20)
designating said current data file as being in-conflict upon the receipt of a potential conflict condition indication; and
removing the in-conflict designation of said current data file when a reconciled data file replaces said current data file.
-
-
17. The method of claim 16, further comprising the step of providing read-only access to an in-conflict designated data file when said data file is accessed on a data site which is not the designated home site.
-
18. The method of claim 16, further comprising the step of executing said resolving step when an in-conflict data file is accessed on its designated home site.
-
19. The method of claim 15, wherein said step of resolving further comprises the steps of:
-
identifying a particular conflict-type which is not to be resolved according to said predefined rules;
storing those portions of said replicated data file and said current data file which form a data conflict of said particular conflict-type in said reconciled data file as conflicting sub-elements;
in response to a user accessing said reconciled data file, presenting said user with conflict resolving information related to said data conflict;
receiving input indicating how said particular conflict should be resolved; and
resolving said particular data conflict in accordance with said user input.
-
-
20. The method of claim 15, wherein said step of searching is performed on a periodic basis.
-
21. In a shared data environment where a plurality of users can concurrently access at least portions of a master data file, a system for automatically resolving data conflicts comprising:
-
means for creating a local data file which is a copy of at least a portion of said master data file;
means for detecting an attempted update of said master data file with said local data file;
means for determining if any changes made to said local data file by a first user are in conflict with changes made to said master data file subsequent to said creating step by a second user;
means for updating said master data file with non-conflicting changes made to said local data file;
means for notifying at least one user of said particular data conflict;
means for presenting said user with conflict resolving information related to said particular data conflict;
means for receiving user input indicating how said particular conflict should be resolved; and
means for resolving said particular data conflict in accordance with said user input. - View Dependent Claims (22, 23, 24)
-
-
25. In a shared data environment where a plurality of users can concurrently access at least portions of a master data file having one or more data elements and existing in a shared storage area, a system for automatically resolving data conflicts comprising:
-
means for creating a local data file which is a copy of at least one of said one or more data elements of said master data file in a local storage area;
means for detecting an attempted save of an edited version of said local data file by a first user;
means for determining for each changed data element in said edited local data file whether updating a corresponding data element in said master data file with said changed data element will conflict with a change made to said corresponding data element in said master data file by a second user;
means for completing said save by either (a) updating said corresponding data element in said master data file with said changed data element if no conflict will be created or (b) initiating an attended conflict reconciliation dialog with at least one of said first and second user if a conflict will be created and, according to the results of said dialog, either updating said corresponding data element in said master data file with said changed data element, or preserving said corresponding data element in said master data file. - View Dependent Claims (26, 27)
said means for determining further comprises means for detecting whether said edited version of said local data file contains a new data element; and
said means for completing further comrpses means for adding said new data element to said master data file.
-
-
27. The system of claim 25, wherein the means for determining further includes means for comparing said changed data element to one of said corresponding data elements in said master data file, wherein a conflict does not exist if said changed data element and said compared data element are the same.
-
28. In a shared data environment containing a master data file in a shared storage area, the master data file comprising one or more data elements of particular types and having particular attributes, wherein a plurality of users can concurrently edit at least portions of said master data file via respective instances of a local data file, a system for automatically resolving data conflicts in a shared data environment comprising:
-
means for creating a local data file in response to a first user opening said master data file, said local data file including copies of one or more data elements and associated attributes from said master data file;
means for detecting an attempted update of said master data file with an edited version of said local data file;
means for determining for each particular one of said data elements in said edited local data file in accordance with one or more predefined rules whether updating said corresponding master data file element to reflect changes made to said particular edited local data file element will generate a true conflict with a change made to said corresponding master data file element by a second user subsequent to said creating step;
means for updating said corresponding master data field element to reflect changes made to said particular edited local data file element when it is determined that said updating will not result in a true conflict; and
means for initiating a conflict mediation dialog when it is determined that said updating will result in a true conflict, wherein said corresponding master data field element is updated to reflect changes made to said particular edited local data file element if said conflict mediation is resolved in favor of said first user.
-
-
29. In a shared data environment in which copies of data files are distributed across a plurality of data sites, a system for resolving data conflicts comprising:
-
means for receiving a replicated data file at a data site, said replicated data file corresponding to a current data file existing on said data site;
means responsive to the occurrence of a potential conflict condition between said replicated data file and said current data file for resolving said potential conflict by creating a reconciled data file from said replicated data file and said current data file according to a predefined set of rules; and
means for replicating said reconciled data file across said plurality of data sites to replace said corresponding current data files. - View Dependent Claims (30, 31, 32)
means for indicating particular data files to which said method will be applied; and
means for disabling conflict handling routines external to said method upon receiving a replicated copy of said particular data files.
-
-
31. The system of claim 30, wherein data files are replicated via a messaging system and means for indicating comprises means for classifying said particular data files as a unique message class.
-
32. The system of claim 29, wherein said means for resolving further comprises:
-
means for identifying a particular conflict-type which is not to be resolved according to said predefined rules;
means for storing those portions of said replicated data file and said current data file which form a data conflict of said particular conflict-type in said reconciled data file as conflicting sub-elements;
means responsive to a user accessing said reconciled data file, for presenting said user with conflict resolving information related to said data conflict;
means for resolving said particular data conflict in response to user input.
-
-
33. In a shared data environment in which copies of data files are distributed across a plurality of data sites, each said data file having a designated home site, a system for resolving data conflicts comprising:
-
means for receiving a replicated data file at a data site, said replicated data file corresponding to a current data file existing on said data site, said current data file and said replicated data file both having the same designated home site;
means responsive to the detection of a potential conflict between said replicated data file and said current data file for indicating said potential conflict condition to each of said data sites;
means for searching for an indicated potential conflict condition at the home site of said replicated and current data files;
means responsive to the detection of an indicated potential conflict condition for resolving said potential conflict by creating a reconciled data file from said replicated data file and said current data file according to a predefined set of rules; and
means for replicating said reconciled data file across said plurality of data sites to replace said corresponding current data files. - View Dependent Claims (34, 35, 36, 37)
means responsive to the receipt of a potential conflict condition indication for designating said current data file as being in-conflict; and
means responsive to the replacement of said current data file with a reconciled data file for removing the in-conflict designation of said current data file.
-
-
35. The system of claim 34, further comprising means for providing read-only access to an in-conflict designated data file when said data file is accessed on a data site which is not the designated home site for said data file.
-
36. The system of claim 34, wherein said means for resolving is responsive to a user accessing an in-conflict data file on its designated home site.
-
37. The system of claim 33, wherein said means for resolving further comprises:
-
means for identifying a particular conflict-type which is not to be resolved according to said predefined rules;
means for storing those portions of said replicated data file and said current data file which form a data conflict of said particular conflict-type in said reconciled data file as conflicting sub-elements;
means responsive to a user accessing said reconciled data file for presenting said user with conflict resolving information related to said conflicting sub-elements;
means for receiving user input indicating which of said presented conflicting sub-elements should be preserved; and
means for resolving said particular data conflict in accordance with said user input.
-
Specification