Systems and methods for detecting and resolving resource conflicts
First Claim
1. In a system capable of replicating a server copy of a resource stored on one or more servers with a client copy of the resource stored on one or more clients, a method for resolving a resource conflict so that the client copy of the resource can be updated to the one or more servers without overwriting any changes made to the resource by another client, the method comprising the steps of:
- determining that a conflict exists between the server copy of the resource and the client copy of the resource if a server resource tag that is representative of the server copy of the resource does not match a client resource tag that is representative of the client copy of the resource;
determining, at the server, whether the server can resolve the conflict between the server copy of the resource and the client copy of the resource into a single version of the resource;
creating, by the server, a conflict resource containing information about the conflict between the server copy and the client copy of the resource, if the conflict cannot be resolved at the server;
evaluating, at the client, whether the conflict resource can be resolved into a single version of the resource in accordance with additional information, known to the client but not the server, regarding a client operation that created the conflict, if the conflict was not resolved at the server; and
presenting the conflict resource to a user if the conflict resource cannot be resolved by the client.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides systems and methods for detecting and resolving resource conflicts. A resource conflict exists when a client version of a resource differs from a server version of the same resource. A resource conflict primarily arises when a client attempts to upload an altered resource to a server where the server version of the resource is no longer equivalent to the version that the client originally downloaded. The conflict is detected by the server and conflict resolution is initiated. The server is the first level of conflict resolution. The server can compare the conflicting versions of the resource to determine if the changes are not actually conflicting. If the server can resolve the conflict, it does and returns a resource tag to the client. The second level of conflict resolution is at the client. The client typically has knowledge of a schema related to the resource which may enable the client to resolve conflicts that the server could not. If the neither the server of the client can resolve the conflict, an end user is needed to resolve the conflict. After the conflict is resolved, it is uploaded to the server and the client receives a new resource tag.
-
Citations
26 Claims
-
1. In a system capable of replicating a server copy of a resource stored on one or more servers with a client copy of the resource stored on one or more clients, a method for resolving a resource conflict so that the client copy of the resource can be updated to the one or more servers without overwriting any changes made to the resource by another client, the method comprising the steps of:
-
determining that a conflict exists between the server copy of the resource and the client copy of the resource if a server resource tag that is representative of the server copy of the resource does not match a client resource tag that is representative of the client copy of the resource;
determining, at the server, whether the server can resolve the conflict between the server copy of the resource and the client copy of the resource into a single version of the resource;
creating, by the server, a conflict resource containing information about the conflict between the server copy and the client copy of the resource, if the conflict cannot be resolved at the server;
evaluating, at the client, whether the conflict resource can be resolved into a single version of the resource in accordance with additional information, known to the client but not the server, regarding a client operation that created the conflict, if the conflict was not resolved at the server; and
presenting the conflict resource to a user if the conflict resource cannot be resolved by the client. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a system capable of replicating a resource from one or more server to one or more clients, a computer program product for implementing a method of detecting and resolving resource conflicts so the one or more clients can upload the resource to the one or more servers without overwriting any changes made to the resource by another client, the computer program product comprising:
-
a computer readable medium carrying computer executable instructions for implementing the method, wherein the computer executable instructions comprise;
program code means for comparing a client resource tag with a server resource tag, wherein the client resource tag and the server resource tag are each representative of a version of the resource;
program code means for determining that no conflict exists between a client version of the resource and a server version of the resource if the client resource tag and the server resource tag match, program code means for resolving a conflict at the server into a single version of the resource if the client resource tag and server resource tag fail to match;
program code means for creating conflict resource contain information about the conflict between the server copy and the client copy of the resource, if the conflict cannot be resolved at the server;
program code means for resolving the conflict at the client into a single version of the resource by evaluating the conflict resource in accordance with additional information, known to the client but not the server, regarding a client operation that created the conflict; and
program code means for presenting the conflict resource to an end user for conflict resolution if the client cannot resolve the conflict. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. In a system capable or replicating a resource between a client and a server, a computer program product for implementing a method of detecting and resolving a conflict between a client copy of the resource and a server copy of the resource so that the client can upload the resource to the server without overwriting any changes made to the resource by another client, the computer program product comprising:
-
a computer readable medium carrying computer executable instructions for implementing the method, wherein the computer executable instructions comprise;
program code means for receiving a client resource tag at a server, the client resource tag identifying a client version of the client copy of the resource, program code means for comparing, by the server, the client resource tag with a server resource tag that identifies a server version of the server copy of the resource, program code means for determining that there is a conflict between the client copy of the resource and the server copy of the resource if the client resource tag does not match the server resource tag; and
program code means for executing one or more levels of conflict resolution until the conflict is resolved into a single version of the resource, wherein a first level of conflict resolution comprises a server level of conflict resolution, a second level of conflict resolution comprises a client level of conflict resolution and a third level of conflict resolution requires an end user to resolve the conflict. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
Specification