Opportunistic peer-to-peer synchronization in a synchronization system
First Claim
1. A method for opportunistic peer-to-peer synchronization in a system having a master synchronization server and a plurality of client computing devices, the method comprising:
- monitoring, at a client computing device, synchronization information provided by one or more peer client computing devices to determine whether or not data that the client computing device desires is synchronize is available for synchronization with such one or more peer client computing devices;
if a peer client computing device is available for synchronizing such data, synchronizing such data with the peer client computing device;
if a peer client computing device is not available for synchronizing such data, synchronizing such data with the master synchronization server until a peer client computing device is available for synchronizing such data; and
if a synchronization session with a peer client computing device is interrupted, switching to synchronizing with another peer client device or the master synchronization server in a manner that appears seamless to the user of the client computing device.
7 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides an opportunistic peer-to-peer synchronization method, where client devices can either synchronize with a peer device or a master server, depending on which is the best available option. Client devices monitor synchronization information provided by peer client devices to determine if data that the client device desires to synchronize can be synchronized with a peer client device. If a peer device is available for synchronization, then a client device will synchronize with such peer device. Otherwise, the client device will synchronize with the master server or other device. Client devices can seamlessly switch between peer-to-peer synchronization and client-server synchronization, even during the middle of synchronization session.
103 Citations
24 Claims
-
1. A method for opportunistic peer-to-peer synchronization in a system having a master synchronization server and a plurality of client computing devices, the method comprising:
-
monitoring, at a client computing device, synchronization information provided by one or more peer client computing devices to determine whether or not data that the client computing device desires is synchronize is available for synchronization with such one or more peer client computing devices; if a peer client computing device is available for synchronizing such data, synchronizing such data with the peer client computing device; if a peer client computing device is not available for synchronizing such data, synchronizing such data with the master synchronization server until a peer client computing device is available for synchronizing such data; and if a synchronization session with a peer client computing device is interrupted, switching to synchronizing with another peer client device or the master synchronization server in a manner that appears seamless to the user of the client computing device. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for synchronizing data between client computing devices, the method comprising:
-
for each client computing device available for peer-to-peer synchronization, advertising any domains on such client computing device that are available for synchronization, wherein such domains are advertised on a network to which the device is connected; in response to a client computing device (the “
requesting device”
) desiring to synchronize data from a domain, determining at such client computing device if there is a peer device available for peer-to-peer synchronization that is advertising the desired domain;in response to no peer device advertising the desired domain, attempting, at the requesting device, to establish a connection with a synchronization server to synchronize data from the desired domain with the server; in response to identifying a peer device advertising the desired domain (the “
peer device”
), sending a request from the requesting device to the peer device to establish a synchronization session;determining at the peer device whether or not the identity of the user associated with the requesting device can be verified; in response to the peer device being unable verify the user'"'"'s identity, rejecting the request to establish a synchronization session; in response to the peer device verifying the user'"'"'s identity and the validity of the request, establishing a synchronization session between the peer device and the requesting device, wherein, during the synchronization session, the requesting device and the peer device synchronize metadata for the desired domain; and in response to the requesting device requesting, during the synchronization session, a file or data object on the peer device that is associated with metadata to which the requesting device is authorized to access, sending the file/data object from the peer device to the requesting device. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A system for opportunistic peer-to-peer synchronization, comprising:
-
a master synchronization server; a plurality of client devices that are configured to synchronize data with either a peer client device or the master synchronization server, wherein each client device is configured to; monitor synchronization information provided by one or more peer client devices to determine whether or not data that the client device desires to synchronize is available for synchronization with a peer client device; if a peer client device is available for synchronizing such data, synchronize such data with the peer client device; if no peer client device is available for synchronizing such data, synchronize such data with the master synchronization server until a peer client device is available for synchronizing such data; and switch between synchronizing between a peer device and a master synchronization server is a synchronization session is interrupted.
-
Specification