IP Library Granted Patent US 8,600,934
Granted Patent B2
US 8,600,934 · App. 13/757,024 · Granted Dec 3, 2013

Method and apparatus for a file sharing and synchronization system

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,600,934
App. No.
13/757,024
Granted
Dec 3, 2013
Kind
B2
Abstract

A computer-implemented method is provided for managing and sharing picture files. In one embodiment of the present invention, the method comprises providing a server platform and providing a datastore on the server platform for maintaining full resolution copies of the files shared between a plurality of sharing clients. A synchronization engine is provided on the server platform and is configured to send real-time updates to a plurality of sharing clients when at least one of the sharing clients updates or changes one of said files. A web interface may also be provided that allows a user to access files in the datastore through the use of a web browser.

Claims (52)

1. A method for synchronizing and sharing data across a plurality of client devices in a system that includes a synchronization server, the method comprising:

maintaining a copy of a data object on a plurality of client devices associated with a first user, wherein the data object is monitored for changes on each of the plurality of client devices;

enabling the first user to share the data object with other users, wherein, in sharing the data object, the first user is enabled to specify that changes made by the first user to the data object are visible to only the first user until the changes are published to other users with whom the data object is shared;

in response to the first user sharing the data object with a group of other users, enabling users in the group to access a copy of the data object;

detecting a change to the data object on one of the first user's client devices;

sending notification of the change from said first user's client device to the synchronization server;

determining whether or not the first user has published the change to the group with whom the data object is shared;

in response to determining that the first user has not published the change to the group with whom the data object is shared, sending notification of the change from the synchronization server to only the client devices associated with the first user; and

in response to determining that the first user has published the change to the group with whom the data object is shared, sending notification of the change from the synchronization server to the client devices associated with the first user and updating any copies of the data object to which users in the group have access with the change.

2. The method of claim 1 , wherein enabling users in the group to access a copy of the data object comprises enabling users in the group to access copy of the data object on the synchronization server.

3. The method of claim 1 , wherein enabling users in the group to access a copy of the data object comprises downloading a copy of the data object to one or more client devices of users in the group.

4. The method of claim 1 , wherein the data object is a file.

5. The method of claim 4 , wherein the file is one of a photo, audio file, video file, or document.

6. A method for synchronizing and sharing data across a plurality of client devices in a system that includes a synchronization server, the method comprising:

maintaining a copy of a data object on a plurality of client devices associated with a first user, wherein the data object is monitored for changes on each of the plurality of client devices;

enabling the first user to share the data object with a group of other users, wherein, in sharing the data object, the first user is enabled to specify that the data object is subject to a multi-phase commit process wherein changes made by the first user to the data object are visible to only the first user until the changes are published to the other users with whom the data object is shared;

in response to the first user sharing the data object with a group of other users, enabling users in the group to access a copy of the data object;

detecting a change to the data object on one of the first user's client devices, wherein the first user indicates the change is published to only a first subset of the group;

sending notification of the change from said first user's client device to the synchronization server;

updating only those copies of the data object to which the first user and the first subset of the group have access with the change, including notifying client devices associated with the first user of the change;

subsequently receiving an indication that the change is published to a second subset of the group; and

updating any copies of the data object to which the second subset of users has access with the change.

7. The method of claim 6 , wherein enabling users in the group to access a copy of the data object comprises enabling users in the group to access copy of the data object on the synchronization server.

8. The method of claim 6 , wherein enabling users in the group to access a copy of the data object comprises downloading a copy of the data object to one or more client devices of users in the group.

9. The method of claim 6 , wherein the data object is a file.

10. The method of claim 9 , wherein the file is one of a photo, audio file, video file, or document.

11. A computer program embodied on one or more non-transitory computer-readable mediums and comprising code that when executed by one or more computing devices, enables the one or more computing devices to perform the following method for synchronizing and sharing data, the method comprising:

maintaining a copy of a data object on a plurality of client devices associated with a first user, wherein the data object is monitored for changes on each of the plurality of client devices;

enabling the first user to share the data object with other users, wherein, in sharing the data object, the first user is enabled to specify that changes made by the first user to the data object are visible to only the first user until the changes are published to other users with whom the data object is shared;

in response to the first user sharing the data object with a group of other users, enabling users in the group to access a copy of the data object;

detecting a change to the data object on one of the first user's client devices;

sending notification of the change from said first user's client device to the synchronization server;

determining whether or not the first user has published the change to the group with whom the data object is shared;

in response to determining that the first user has not published the change to the group with whom the data object is shared, sending notification of the change from the synchronization server to only the client devices associated with the first user; and

in response to determining that the first user has published the change to the group with whom the data object is shared, sending notification of the change from the synchronization server to the client devices associated with the first user and updating any copies of the data object to which users in the group have access with the change.

12. The computer program of claim 11 , wherein enabling users in the group to access a copy of the data object comprises enabling users in the group to access copy of the data object on the synchronization server.

13. The computer program of claim 11 , wherein enabling users in the group to access a copy of the data object comprises downloading a copy of the data object to one or more client devices of users in the group.

14. The computer program of claim 11 , wherein the data object is a file.

15. The computer program of claim 14 , wherein the file is one of a photo, audio file, video file, or document.

16. A computer program embodied on one or more non-transitory computer-readable mediums and comprising code that when executed by one or more computing devices, enables the one or more computing devices to perform the following method for synchronizing and sharing data, the method comprising:

maintaining a copy of a data object on a plurality of client devices associated with a first user, wherein the data object is monitored for changes on each of the plurality of client devices;

enabling the first user to share the data object with a group of other users, wherein, in sharing the data object, the first user is enabled to specify that the data object is subject to a multi-phase commit process wherein changes made by the first user to the data object are visible to only the first user until the changes are published to the other users with whom the data object is shared;

in response to the first user sharing the data object with a group of other users, enabling users in the group to access a copy of the data object;

detecting a change to the data object on one of the first user's client devices, wherein the first user indicates the change is published to only a first subset of the group;

sending notification of the change from said first user's client device to the synchronization server;

updating only those copies of the data object to which the first user and the first subset of the group have access with the change, including notifying client devices associated with the first user of the change;

subsequently receiving an indication that the change is published to a second subset of the group; and

updating any copies of the data object to which the second subset of users has access with the change.

17. The computer program of claim 16 , wherein enabling users in the group to access a copy of the data object comprises enabling users in the group to access copy of the data object on the synchronization server.

18. The computer program of claim 16 , wherein enabling users in the group to access a copy of the data object comprises downloading a copy of the data object to one or more client devices of users in the group.

19. The computer program of claim 16 , wherein the data object is a file.

20. The computer program of claim 19 , wherein the file is one of a photo, audio file, video file, or document.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2014
From: SUGARSYNC, INC.
To: DROPBOX, INC.
Reel/Frame 034144/0861 →
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2014
From: FIFTH STREET FINANCE CORP.
To: SUGARSYNC, INC.
Reel/Frame 033969/0891 →
SECURITY AGREEMENT Recorded Nov 19, 2013
From: SUGARSYNC, INC.
To: FIFTH STREET FINANCE CORP.
Reel/Frame 031674/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 8, 2013
From: VENTURE LENDING & LEASING IV, INC. AND VENTURE LENDING & LEASING V, INC.
To: SUGARSYNC, INC.
Reel/Frame 031570/0434 →