IP Library Granted Patent US 8,510,404
Granted Patent B2
US 8,510,404 · App. 12/295,951 · Granted Aug 13, 2013

Peer to peer Synchronization system and method

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,510,404
App. No.
12/295,951
Granted
Aug 13, 2013
Kind
B2
Abstract

A method and system for enabling peer to peer synchronization between members of a synchronized network. A predefined synchronization reference area on each member of the network is provided. A common identifier associated with the synchronization network is provided to each member. Changes are detected on a member regarding a data item. A network identifier associated is obtained. A unique identifier of a synchronization module is obtained. A relative path to the data item within the predefined synchronization reference area is obtained. A unique value is calculated based upon a content of a version of the data item that is associated with the change. A log number counter is incremented. A log representing the data item and the chance is created. The log includes data regarding the type of change, the network identifier, the unique identifier of the synchronization module, the relative path, the unique value, and the log number.

Claims (49)

1. A method of enabling peer to peer synchronization between members of a synchronization network, the synchronization network being implemented in respect of a predefined synchronization reference area on each network member, the method comprising:

detecting, on a first member of the synchronization network, a change to a data item within the predefined synchronization reference area;

determining a type of the change made to the data item;

determining a relative path within the predefined synchronization reference area to the data item associated with the change;

obtaining a current version value calculated based upon content of a current version of the data item on said first member of the synchronization network;

upon determining that a previous version of the data item exists on said first member of the synchronization network, obtaining a previous version value calculated based upon content associated with the previous version of the data item;

obtaining a current log number counter on said first member of the synchronization network, the current log counter being associated with an incremental count of logs that is updated with each change made to data items of the synchronization network on said first member of the synchronization network;

generating a log representing the change based upon: a current log number on said first member of the synchronization network, the type of change, the relative path to the data item associated with the change, the current version value, and if a previous version of the data item exists, the previous version value,

wherein said generating a log further comprises, in case that the change is associated with implementing on said first member of the synchronization network a different log received from another member of the synchronization network, including in the log representing the change on said first member of the synchronization network a member identifier of said other member of the synchronization network and the number of the different log on said other member of the synchronization network; and

forwarding the log to two or more members of the synchronization network, wherein said log enables two or more members of the synchronization network to synchronize the data item through local processing of the log from the first member on said two or more members of the synchronization network.

2. The method according to claim 1 , wherein the current version of the data item is a data unit associated with the change, and wherein the value associated with the current version of the data item is based upon content of the data unit associated with the change.

3. The method according to claim 2 , wherein the previous version of the data item is a version of the data unit which was the current version of the data item immediately previous to the change, and wherein the value associated with the previous version of the data item is based upon a content of the version of the data unit which was the current version of the data item immediately previous to the change.

4. The method according to claim 3 , wherein said determining the type of the change comprises:

determining whether the change relates to a data item of said synchronization network which existed on said first member of the synchronization network previous to the change;

determining whether the type of the change is delete data item; and

determining the type of the change to be insert data item if the change relates to a data item which did not exist on said first member of the synchronization network previous to the change and providing that the change is not of type delete data item.

5. The method according to claim 4 , wherein said determining the type of the change comprises, determining the type of the change to be delete data item if the change relates to a data item which existed on said first member of the synchronization network previous to the change and providing that the change is of type delete data item.

6. The method according to claim 5 , wherein said determining the type of the change comprises, determining the type of the change to be an update data item if the change relates to a data item which existed on said first member of the synchronization network previous to the change and providing that the change is not of type delete data item.

7. The method according to claim 5 , wherein in case the type of the change is delete data item, and in addition to the previous version of the data item there is a record on said first member of the synchronization network of one or more prior version of the data item which preceded the previous version of the data item, said generating a log is further based on a value corresponding to each prior version of the data item, and wherein the value associated with each prior version of the data item corresponds to the content of a respective version of the data item.

8. The method according to claim 4 , wherein said determining whether the change relates to a data item of said synchronization network which existed on said first member of the synchronization network previous to the change comprises, determining the change to be in respect of a data item of said synchronization network which existed on said first member of the synchronization network previous to the change, if there is a previous record of a data item of said synchronization network which is associated with the same relative path within the predefined synchronization reference area as the relative path to the data unit associated with the change.

9. The method according to claim 1 , wherein said log enables said two or more members of the synchronization network to synchronize the data item without being dependent upon any further communication or interaction with any other member of the synchronization network including said first member of the synchronization network.

10. The method according to claim 1 , further comprising:

obtaining a network identifier of said synchronization network, said network identifier identifying said synchronization network from one or more other synchronization networks; and

obtaining a member identifier of said first member within said synchronization network, said member identifier identifying said first member of the synchronization network from one or more other members of the synchronization network, and

wherein said generating a log representing the change is further based upon: said network identifier associated with the synchronization network and said unique member identifier associated with said first member of the synchronization network.

11. The method according to claim 10 , wherein said generating a log further comprises, adding to said log data in respect of a log number on another member of the synchronization network in case the change to which the log relates is associated with implementing of a log received at said first member of the synchronization network from the other member of the synchronization network.

12. The method according to claim 1 , further comprising updating an incremental count of logs that is associated with said first member of the network in response to a change occurring on said first member of the synchronization network with respect to a data item of said synchronization network.

13. A program storage device which performs a method of enabling peer to peer synchronization between members of a synchronization network, the synchronization network being implemented in respect of a predefined synchronization reference area on each network member, the device comprising:

one or more processors; and

a machine readable medium comprises one or more sequences of instructions, which when executed by the one or more processors, cause:

detecting on a first member of the synchronization network a change with respect to a data unit within the predefined synchronization reference area, the data unit is associated with a data item of the synchronization network;

determining a relative path within the predefined synchronization reference area to the data unit associated with the change;

determining a type of the change;

obtaining a value calculated based upon a content of the current version of the data item on said first member of the synchronization network;

if a previous version of the data item exists on said first member of the synchronization network, obtaining a value calculated based upon a content of a data unit that is associated with a previous version of the data item;

obtaining a current log number for said first member of the synchronization network, the current log number is associated with an incremental count of logs that is updated in connection with a change occurring with respect to a data item of said synchronization network on said first member of the synchronization network;

generating a log representing the change based upon: a current log number on said first member of the synchronization network, said type of change, said relative path, said value corresponding to the content of a current version of the data item, and if a previous version of the data item exists, the value corresponding to the content of the previous version of the data item,

wherein said generating a log further comprises, in case that the change is associated with implementing on said first member of the synchronization network a different log received from another member of the synchronization network, including in the log representing the change on said first member of the synchronization network a member identifier of said other member of the synchronization network and the number of the different log on said other member of the synchronization network; and

forwarding the log to two or more members of the synchronization network.

14. A computer program product comprising a computer useable medium having computer readable program code embodied therein of enabling peer to peer synchronization between members of a synchronization network, the synchronization network is implemented in respect of a predefined synchronization reference area on each network member, the computer program product comprising:

computer readable program code for causing the computer to detect on a first member of the synchronization network a change with respect to a data unit within the predefined synchronization reference area, the data unit is associated with a data item of the synchronization network;

computer readable program code for causing the computer to determine a relative path within the predefined synchronization reference area to the data unit associated with the change;

computer readable program code for causing the computer to determine a type of the change;

computer readable program code for causing the computer to obtain a value calculated based upon a content of the current version of the data item on said first member of the synchronization network;

computer readable program code for causing the computer to obtain a value calculated based upon a content of a data unit that is associated with a previous version of the data item, if a previous version of the data item exists on said first member of the synchronization network;

computer readable program code for causing the computer to obtain a current log number for said first member of the synchronization network, the current log number is associated with an incremental count of logs that is updated in connection with a change occurring with respect to a data item of said synchronization network on said first member of the synchronization network;

computer readable program code for causing the computer to generate a log representing the change based upon: a current log number on said first member of the synchronization network, said type of change, said relative path, said value corresponding to the content of a current version of the data item, and if a previous version of the data item exists, the value corresponding to the content of the previous version of the data item

wherein causing the computer to generate a log further comprises, in case that the change is associated with implementing on said first member of the synchronization network a different log received from another member of the synchronization network, including in the log representing the change on said first member of the synchronization network a member identifier of said other member of the synchronization network and the number of the different log on said other member of the synchronization network; and

computer readable program code for causing the computer to forward the log to two or more members of the synchronization network.

Assignments (9)
LIEN AND SECURITY INTEREST Recorded Jan 13, 2017
From: KINGLITE HOLDINGS INC.
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 041366/0255 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF SECOND INVENTOR. PREVIOUSLY RECORDED ON REEL 026548 FRAME 0114. ASSIGNOR(S) HEREBY CONFIRMS THE EXECUTION DATE SHOULD BE MARCH 31, 2011.. Recorded Mar 28, 2013
From: CARMEL, SHARON; BORER, YOAV; HERMAN, OFER; MANOBELA, CHICO; PARAN, OMER
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 030106/0649 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF ASSIGNOR ON THE ABSTRACT OF TITLE PREVIOUSLY RECORDED ON REEL 022895 FRAME 0758. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECT SPELLING OF ASSIGNOR SHOULD BE BEINSYNC LTD. Recorded Mar 28, 2013
From: BEINSYNC LTD
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 030106/0987 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2012
From: PHOENIX TECHNOLOGIES LTD.
To: KINGLITE HOLDINGS INC.
Reel/Frame 029339/0716 →
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2012
From: MEP PLP, LLC
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 029307/0590 →
SECURITY AGREEMENT Recorded Nov 13, 2012
From: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC
To: MEP PLP, LLC
Reel/Frame 029291/0354 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2011
From: CARMEL, SHARON; BORER, YOAV; HERMAN, OFER; MANOBELA, CHICO; PARAN, OMER
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 026548/0114 →
GRANT OF SECURITY INTEREST - PATENTS Recorded Nov 24, 2010
From: PHOENIX TECHNOLOGIES LTD.
To: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC, AS COLLATERAL AGENT
Reel/Frame 025406/0604 →
SHARE PURCHASE AGREEMENT Recorded Jun 30, 2009
From: BELNSYNC LTD
To: PHOENIX TECHNOLOGIES LTD
Reel/Frame 022895/0758 →