Patent ID: 8600934

Claim:
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.