Patent ID: 8327278

Claim:
An apparatus comprising at least one computer-readable storage medium having stored thereon computer-executable instructions that, when loaded into a processor and executed, cause the processor to: define a plurality of logical communication channels between a client component and a server component; allocate at least a first one of the communication channels for synchronizing an update to contents of a document that is shared between the client component and another client component; allocate at least a further one of the communication channels for synchronizing a first metadata between the client component and the server component, wherein the first metadata describes user content updates and an indication of user gestures being performed within the document; receive an indication of at least one instance of activity pertaining to the contents of the document by a user accessing the client components; create the first metadata representing the activity; transmit the first metadata, using the further communication channel, from the client component to the server component automatically in real-time with the update; and receive a command from the user, and in response to the command, transmit the document contents and a second metadata representing a state of the document from the client component to the server component using the first communication channel.