Synchronization and Collaboration Within Peer-to-Peer and Client/Server Environments
First Claim
1. A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a first client system operable with a server system, cause the first client system to:
- establish a peer-to-peer relationship with a second client system, by which the first client system and the second client system create respective local shared workspaces for collaboration;
participate in a peer-to-peer synchronization flow with the second client system, wherein the peer-to-peer synchronization flow represents updates made to at least one of the local shared workspaces by at least one of the first client system and the second client system;
establish a client/server relationship with the server system; and
participate in a client/server synchronization flow with the server system, wherein the client/server synchronization flow represents updates made to the local shared workspace associated with the first client system.
2 Assignments
0 Petitions
Accused Products
Abstract
Tools and techniques are described for synchronization and collaboration within peer-to-peer and client/server environments. These tools may provide methods that include establishing peer-to-peer relationships between two or more client systems. These relationships enable the client systems to create respective local instances of workspaces, shared between the client systems to allow them to collaborate with one another. The client systems may participate in peer-to-peer synchronization flows with one another, with the synchronization flows representing updates made local to the shared workspaces of the client systems. The methods may also establish establishing a client/server relationship between one of the client systems and a server system. Through this client/server relationship, the client and server systems may participate in client/server synchronization flows, with these flows representing updates made to the local shared workspace at the client system.
39 Citations
20 Claims
-
1. A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a first client system operable with a server system, cause the first client system to:
-
establish a peer-to-peer relationship with a second client system, by which the first client system and the second client system create respective local shared workspaces for collaboration; participate in a peer-to-peer synchronization flow with the second client system, wherein the peer-to-peer synchronization flow represents updates made to at least one of the local shared workspaces by at least one of the first client system and the second client system; establish a client/server relationship with the server system; and participate in a client/server synchronization flow with the server system, wherein the client/server synchronization flow represents updates made to the local shared workspace associated with the first client system. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a first system operable with a second system, cause the first system to:
-
establish a synchronization relationship between the first system and the second system, by which the first system and the second system exchange synchronization flows; receive, via the synchronization flows, an indication of a revision occurring on the second system; determine that the revision results in a conflict with information represented on the first system; resolve the conflict in favor of the first system or the second system; and maintain the revision associated with the conflict for access by the first system and the second system. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a first system operable with a second system, cause the first system to:
-
establish a synchronization relationship between the first system and the second system, by which the first system and the second system exchange synchronization flows; receive, via the synchronization flows, indications of one or more local revisions occurring locally at the first system; create a local version in response to receiving the indications of the one or more local revisions occurring locally at the first system, the local version comprising the one or more local revisions; sync, via the synchronization flows, the local version with the second system; receive, via the synchronization flows, a remote version comprising one or more remote revisions occurring remotely at the second system; and determine whether a conflict exists between the local version and the remote version. - View Dependent Claims (18, 19, 20)
-
Specification