Patent ID: 8051209
Filing Date: 2011-11-01
Classification: G06F

Abstract:
1. A method for resolving conflicts between interrelated data on a client computer and a server computer, the method comprising: publishing information for one or more tasks stored on the client computer to the server computer, each of the one or more tasks being a task for a project management software application, the information including one or more first attributes for each task, one of the one or more first attributes representing a unique client computer task identifier for the task; obtaining from the server computer a unique server computer task identifier for each of the one or more tasks; storing the unique server computer task identifier for each of the one or more tasks on the client computer; for each of the one or more tasks stored on the client computer, mapping the unique server computer task identifier to the unique client computer task identifier; receiving edits for the one or more tasks stored on the client computer, the edits resulting in updating of the one or more first attributes of the one or more tasks, at least one bit being set in a bitmask associated with each task for each task on the client computer in which at least one attribute of the one or more first attributes is changed; initiating a sync operation comprising: obtaining from the server computer a list of tasks for the client computer, each task in the list of tasks obtained from the server computer being a task for the project management software application, each task in the list of tasks including one or more second attributes associated with the task, the one or more second attributes including the unique server computer task identifier and a timestamp for the task, the timestamp corresponding to a date and time that the task was last modified on the server computer; for each task on the list of tasks received from the server computer, determining if the unique server computer task identifier for the task maps to the unique client computer task identifier for the task; for each task on the list of tasks received from the server computer for which the unique server computer task identifier maps to the unique client computer task identifier, determining if the task corresponding to the unique client computer task identifier exists on the client computer; for each task on the list of tasks received from the server computer for which the unique server computer task identifier maps to the unique client computer task identifier, if the task corresponding to the client computer task identifier does not exist on the client computer, sending a request from the client computer to the server computer to delete the task from the server computer; for each task on the list of tasks received from the server computer for which the unique server computer task identifier does not map to any unique client task identifier of the one or more tasks stored on the client computer, creating a new task in the project management software application on the client computer, creating a new unique client computer task identifier on the client computer for the new task and mapping the new unique client computer task identifier on the client computer for the new task to the unique server computer task identifier for the task; and for each task on the list of tasks received from the server computer for which the unique server computer task identifier maps to the unique client computer task identifier and the task does exist on the client computer, determining if any of the bits in the bitmask for the task are set, and if any of the bits in the bitmask for the task are set: