Method and apparatus for a file sharing and synchronization system
First Claim
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.
6 Assignments
0 Petitions
Accused Products
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.
47 Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5)
-
-
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. - View Dependent Claims (7, 8, 9, 10)
-
-
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. - View Dependent Claims (12, 13, 14, 15)
-
-
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. - View Dependent Claims (17, 18, 19, 20)
-
Specification