IP Library Granted Patent US 8,255,359
Granted Patent B2
US 8,255,359 · App. 12/645,799 · Granted Aug 28, 2012

System and methods for asynchronous synchronization

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,255,359
App. No.
12/645,799
Granted
Aug 28, 2012
Kind
B2
Abstract

Aspects of the advancement provide for information to be synchronized in an asynchronous manner among two or more computing devices.

Claims (45)

1. A method of updating data at a first computing device, wherein the first computing device comprises a data store configured to store workspace elements and the first computing device is configured to receive data from at least a second computing device via a network, and is configured to:

receive at the first computing device, a synchronization message from the second computing device via said network, the synchronization message comprising data relating to a given workspace element;

determine whether a conflicting workspace data item, corresponding to a given workspace data item, is stored in said data store;

in the case of a determination that said conflicting workspace data item is stored in said data store, perform a resolution process with said second computing device to resolve said conflict in respect of the given workspace data item and the conflicting workspace data item, the method comprising:

modifying, at said first computing device, said workspace element in accordance with a first modification to generate a first modified version of the workspace element;

receiving, at the first computing device, a synchronization message relating to said workspace element, the synchronization message including a set one or more version identifiers, and modification data indicative of a second modification to the workspace element, said second modification having been made at the second computing device to generate a second modified version of workspace element at the second computing device;

comparing, at the first computing device, said set of one or more version identifiers with a further set of version identifiers relating to said workspace element, wherein said further set of version identifiers is stored at said first computing device;

on the basis of the comparison, performing a first process or a second process, wherein the first process is different from the second process, the first process comprises:

modifying said first modified version of the workspace element in accordance with said modification data;

and the second process comprises:

storing a new workspace element in said data store, wherein the new workspace element is based on said first modified version of the workspace element and said modification data, and said data store includes said new workspace element and said first modified version of said workspace element; and

performing said conflict resolution process with said second computing device in respect of said new workspace element and said second modified version of the workspace element stored at said second computing device.

2. A method according to claim 1 , wherein said second process comprises sending a request to add said new workspace element from said first computing device to said second computing device via said network.

3. A method according to claim 1 , wherein said second process comprises receiving a request to add said second modified version of the workspace element at said first computing device from said second computing device via said network.

4. A method according to claim 1 , wherein said second process comprises modifying said further set of version identifiers on the basis of the set of one or more version identifiers included in the synchronization message.

5. A non-transitory computer-readable storage medium having computer readable instructions stored thereon, the computer readable instructions when executed by a first computing device cause the first computing device to perform a method of updating data, wherein the first computing device comprises a data store configured to store workspace elements and the first computing device is configured to receive data from at least a second computing device via a network, and is configured to:

receive at the first computing device, a synchronization message from the second computing device via said network, the synchronization message comprising data relating to a given workspace element;

determine whether a conflicting workspace data item, corresponding to a given workspace data item, is stored in said data store;

in the case of a determination that said conflicting workspace data item is stored in said data store, perform a resolution process with said second computing device to resolve said conflict in respect of the given workspace data item and the conflicting workspace data item,

the method comprising:

modifying, at said first computing device, said workspace element in accordance with a first modification to generate a first modified version of the workspace element;

receiving, at the first computing device, a synchronization message relating to said workspace element, the synchronization message including a set one or more version identifiers and modification data indicative of a second modification to the workspace element, said second modification having been made at the second computing device to generate a second modified version of workspace element at the second computing device;

comparing, at the first computing device, said set of one or more version identifiers with a further set of version identifiers relating to said workspace element, wherein said further set of version identifiers is stored at said first computing device;

on the basis of the comparison, performing a first process or a second process, wherein the first process is different from the second process,

the first process comprises:

modifying said first modified version of the workspace element in accordance with said modification data;

and the second process comprises:

storing a new workspace element in said data store, wherein the new workspace element is based on said first modified version of the workspace element and said modification data, and said data store includes said new workspace element and said first modified version of said workspace element; and

performing said conflict resolution process with said second computing device in respect of said new workspace element and said second modified version of the workspace element stored at said second computing device.

6. A computing device comprising:

a data store configured to store workspace elements; and

a communications interface configured to receive data from at least a second computing device via a network,

wherein a first computing device is configured to:

modify said workspace element in accordance with a first modification to generate a first modified version of the workspace element;

receive, at the first computing device, a synchronization message relating to said workspace element, the synchronization message including a set one or more version identifiers, and modification data indicative of a second modification to the workspace element, said second modification having been made at said second computing device to generate a second modified version of workspace element at the second computing device;

compare said set of one or more version identifiers with a further set of version identifiers relating to said workspace element, said further set of version identifiers is stored at said first computing device;

on the basis of the comparison, perform a first process or a second process, wherein the first process is different from the second process,

the first process comprises:

modifying said first modified version of the workspace element in accordance with said modification data;

and the second process comprises:

storing a new workspace element in said data store, wherein the new workspace element is based on said first modified version of the workspace element and said modification data, and said data store includes said new workspace element and said first modified version of said workspace element;

receiving, from the second computing device, a request to add said second version of the workspace element to said data store;

performing a conflict resolution process with said second computing device in respect of said new workspace element and said second modified version of the workspace element stored at said second computing device.

7. A computing device according to claim 6 , wherein said second process comprises determining that said second modified version of the workspace element conflicts with said new workspace element, and the conflict resolution process is performed in response to said determination.

8. A computing device according to claim 7 , wherein said determination comprises determining that said second modified version of the workspace element comprises data corresponding to said new workspace element.

Assignments (6)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: GOOD TECHNOLOGY HOLDINGS LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 045196/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2017
From: QUINLAN, SEAN; MENDEZ, DANIEL J.; JOSHI, RAJIV; ARDULOV, YURI
To: VISTO CORPORATION
Reel/Frame 043059/0877 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2017
From: GOOD TECHNOLOGY CORPORATION
To: GOOD TECHNOLOGY HOLDINGS LIMITED
Reel/Frame 043284/0630 →
CHANGE OF NAME Recorded Nov 26, 2012
From: VISTO CORPORATION
To: GOOD TECHNOLOGY CORPORATION
Reel/Frame 029347/0783 →