Synchronizing self-referencing fields during two-way synchronization
AssigneeMicrosoft Corporation
InventorsAlexander Joseph Pope, Roberto Reif
Life of this patent
Estimating the term…
Abstract
Self-referencing fields are synchronized during a synchronization pass of a two-way synchronization between a client computer and a server computer. When a synchronization operation is performed, a list of server tasks associated with the server and a list of project tasks associated with the client are loaded. For each task being synchronized two predecessor lists are maintained. During the synchronization, a comparison is conducted to determine whether to use the project task data or the server task data. When the project task data is used, then the predecessor IDs stored in the project predecessor list are used. When the server task data is used, then the predecessor IDs stored in the server predecessor list are used.
Claims20
A method for synchronizing self-referencing fields between a project management application and a collaboration application, the method executing on a processor of a computer, comprising:
- loading project tasks for a project on a client computing device;
- loading collaboration tasks for the project on a server computing device that correspond to the project tasks on the client computing device such that a change to any one of the collaboration tasks is reflected in the corresponding project tasks after synchronization;
- associating each of the collaboration tasks with a corresponding project task;
- creating a project predecessor list for each project task;
- creating a collaboration predecessor list for each collaboration task;
- for each project task and corresponding collaboration task determining when to use project task data and when to use the collaboration task data by performing a conflict resolution;
- and
- accessing the project predecessor list and the collaboration predecessor list to determine when to select the project predecessor list and when to select the collaboration predecessor list for writing.
A computer-readable memory having computer-executable instructions for synchronizing self-referencing identifiers that are associated with tasks of a task management application on a client computing device and a collaboration application on a server computing device, comprising:
- initiating a synchronization session to synchronize project data for a project including tasks between a client and a server;
- associating tasks of the project between the client and the server such that each of the tasks for the project that is stored on the server for the project is associated with a corresponding task obtained from the client for the project;
- loading tasks for the project and for each task creating a project predecessor list and a collaboration predecessor list;
- wherein the project predecessor list comprises at least one project predecessor identifier when the project task has a predecessor and wherein the collaboration predecessor list comprises at least one collaboration predecessor identifier when the collaboration task has a predecessor;
- determining when to use project task data and when to use collaboration task data when synchronizing each task;
- and
- during a write phase of the synchronization, writing the project predecessor list when project task data is used and writing the collaboration predecessor list when collaboration task data is to be used.
A system for synchronizing self-referencing fields during a single pass of a synchronization between a client and server, comprising:
- a processor and a computer-readable medium;
- an operating environment stored on the computer-readable medium and executing on the processor;
- a project management application operating on a client;
- and
- a synchronization application operating on a server;
- a synchronization module configured to perform tasks, comprising:
- initiating a synchronization session to synchronize project data for a project including tasks between the client and the server;
- associating the tasks of the project between the client and the server such that each of the tasks for the project that is stored on the server for the project is associated with a corresponding task obtained from the client for the project;
- loading tasks for the project and for each task creating a project predecessor list and a collaboration predecessor list;
- wherein the project predecessor list comprises at least one project predecessor identifier when the project task has a predecessor and wherein the collaboration predecessor list comprises at least one collaboration predecessor identifier when the collaboration task has a predecessor;
- wherein loading tasks for the project comprises loading collaboration tasks from the server and loading project tasks from the client;
- determining when to use project task data and when to use collaboration task data when synchronizing each task;
- and
- writing the project predecessor list when project task data is used and writing the collaboration predecessor list when collaboration task data is to be used.
Dependencies are inferred from the claim text.