IP Library Granted Patent US 7,885,925
Granted Patent B1
US 7,885,925 · App. 12/157,772 · Granted Feb 8, 2011

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 7,885,925
App. No.
12/157,772
Granted
Feb 8, 2011
Kind
B1
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 (49)

1. A method for sharing and synchronizing data across a plurality of client devices, the method comprising:

providing a client application on each of the client devices; and

providing a server application on a server;

wherein each client application on a client device monitors a datastore on the client device for any changes, and, in response to a change in the datastore on the client device, the client application automatically notifies the server application of the change;

wherein each client application, when running on a client device that is online and connected via a network with the server, opens a connection with the server application and registers for notices of changes to data in which the client application is interested;

wherein the server application maintains a copy of each client devices' datastore on the server and receives notifications from client applications of changes to datastores on client devices;

wherein, in response to receiving a notification from a client application of a change to a datastore on a client device, the server application updates the server's copy of the datastore with the change, identifies any other client applications with open connections to the server that have registered for notices related to the data that was changed in the data store, and, in response to identifying one or more other client applications that have registered for notices related to the data that was changed in the datastore, immediately pushes notice of the change to the identified other client application(s);

wherein, in response to a client application opening a connection with the server and registering for notices of changes to data in which the client application is interested, the server immediately sends the client application notices related to any changes to the data of interest that occurred while the client application was offline; and

wherein the client application enables a user to share data objects with other users and includes a contact list for selecting other users with whom to share a data object and data object group management for managing shared data objects.

2. The method of claim 1 , wherein, when a client application opens a connection with the server, the client application notifies the server of any changes to the datastore monitored by the client application that occurred while the client application was offline.

3. The method of claim 1 , wherein in response to the server receiving notification from two different client applications of conflicting changes to data in a datastore, the server applies conflict resolution rules to resolve any conflict.

4. The method of claim 1 further comprising:

providing a web interface on the server through which datastores stored on the server are accessed via a web browser.

5. The method of claim 4 , wherein in response to a user modifying data on the server via a web browser, the server notifies client applications that have registered for notices related to the data of the modification.

6. The method of claim 4 , wherein, in response to a user accessing a datastore via a web browser, the server provides the web browser with real-time updates to the datastore.

7. The method of claim 1 , wherein the server referenced in claim 1 is comprised of a plurality of servers that are networked together.

8. The method of claim 1 , wherein a datastore includes files and the metadata associated with files.

9. The method of claim 8 , wherein the files include photos.

10. The method of claim 8 , wherein the files include audio files.

11. The method of claim 8 , wherein the files include video files.

12. The method of claim 8 , wherein the files include documents.

13. The method of claim 8 , wherein the datastore includes data objects and metadata associated with the data objects.

14. The method of claim 8 , wherein types of client devices include personal computers and mobile communication devices.

15. A method for sharing and synchronizing data across a plurality of client devices, the method comprising:

providing a client application on each of the plurality of client devices, wherein, for each client device, the client application monitors a datastore on the client device for changes, and wherein the client application enables a user to share data objects with other users and includes a contact list for selecting other users with whom to share a data object and data object group management for managing shared data objects;

for each of the client applications that is online, opening up a connection between the client application and a server, wherein the client application notifies the server of any changes to the datastore monitored by the client device;

enabling each client application to register at the server for notices to changes to select data on other client devices, provided the client application is associated with a user that is permitted to have access to the select data;

in response to a client application on a client device detecting a change to a monitored datastore on the client device, receiving at the server a notification of the change from the client application when the client application has an open connection with the server;

determining whether or not any other client applications have registered for notices of changes to the data that was changed in said monitored datastore;

in response to determining that one or more other online client application has registered for notices of changes to said data, immediately pushing a notice of the change to the other client application(s) that registered for changes to said data and

wherein in response to a client application opening a connection with the server and registering for notices of changes to data in which the client application is interested, the servers immediately sends the client application notices related to any changes to the data of interest that occurred while the client application was offline.

16. The method of claim 15 , further comprising:

storing a copy of all the monitored datastores on a server; and

in response to receiving notification from a client application of a change to a monitored datastore on a client device, updating the copy of the monitored datastore on the server with the change.

17. The method of claim 16 further comprising:

providing a web interface on the server through which datastores stored on the server are accessed via a web browser.

18. The method of claim 17 , wherein in response to a user modifying a datastore on the server via a web browser, the server notifies client applications that have registered for notices related to the affected portion of the modified datastore of the modification.

19. The method of claim 17 , wherein, in response to a user accessing a datastore via a web browser, the server provides the web browser with real-time updates to the datastore.

20. The method of claim 15 , wherein in response to the server receiving notification from two different client applications of conflicting changes to data in a datastore, the server applies conflict resolution rules to resolve conflicts.

21. The method of claim 15 , wherein the server referenced in claim 15 is comprised of a plurality of servers that are networked together.

22. The method of claim 15 , wherein a datastore includes files and metadata associated with the files.

23. The method of claim 22 , wherein a datastore includes data objects and metadata associated with the data objects.

24. The method of claim 22 , wherein the files include photos.

25. The method of claim 22 , wherein the files include audio files.

26. The method of claim 22 , wherein the files include video files.

27. The method of claim 22 , wherein the files include documents.

28. The method of claim 15 , wherein types of client devices include personal computers and mobile communication devices.

29. The method of claim 1 , wherein the data object group management is a feature in the client application that enables a user sharing one or more data objects to select one or more types of actions that the other users have permission to take with respect to a shared data object(s).

30. The method of claim 15 , wherein the data object group management is a feature in the client application that enables a user sharing one or more data objects to select one or more types of actions that the other users have permission to take with respect to a shared data object(s).

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
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 13, 2013
From: VENTURE LENDING & LEASING IV, INC. AND VENTURE LENDING & LEASING V, INC.
To: SUGARSYNC, INC.
Reel/Frame 031593/0861 →
CHANGE OF NAME Recorded Dec 23, 2010
From: SHARPCAST, INC.
To: SUGARSYNC, INC.
Reel/Frame 025562/0397 →
SECURITY AGREEMENT Recorded Mar 5, 2009
From: SHARPCAST, INC.
To: VENTURE LENDING & LEASING IV, INC.; VENTURE LENDING & LEASING V, INC.
Reel/Frame 022376/0835 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2008
From: STRONG, JACK BENJAMIN; THOMAS, GIBU
To: SHARPCAST, INC.
Reel/Frame 021917/0927 →