Control unit operations in a real-time collaboration server
First Claim
1. A method of managing a queue of collaboration data for clients participating in a real-time collaboration, comprising:
- operating a control unit configured to manage dissemination of collaboration data to clients participating in a real-time collaboration;
in said control unit, maintaining a queue to store said collaboration data, wherein the clients are configured to consume said collaboration data in the order queued;
for each client;
maintaining a reference identifying a queue entry comprising data currently being processed by the client; and
executing a virtual client configured to maintain a virtual screen comprising a portion of the collaboration data;
receiving from a first client a request for data from a next entry in the queue;
identifying a virtual screen entry in the queue comprising the newest collaboration data included in the virtual screen;
determining a total amount of data in all queue entries between the next entry and the virtual screen entry, inclusive;
comparing the amount of data in the virtual screen to the total amount; and
collapsing the queue by;
transmitting said virtual screen to the first client; and
updating the client'"'"'s reference to identify the queue entry comprising the newest data included in said virtual screen.
0 Assignments
0 Petitions
Accused Products
Abstract
In a real-time collaboration server, a control unit manages a collaboration mode. The control unit operates a virtual client that maintains a virtual screen reflecting the status of the collaboration (e.g., the contents of a shared desktop or whiteboard). The virtual client renders collaboration data within the virtual screen. New clients are synchronized with an ongoing collaboration by packing and sending them a copy of the virtual screen. The control unit maintains a queue of collaboration data to be sent to participating clients. Each client may have a pointer identifying the queued data it is processing. The queue may be collapsed (e.g., when it reaches a maximum size) by sending a copy of the virtual screen to one or more clients that have not yet consumed old data in the queue; those clients are then updated to skip the queue entries embodied in the virtual screen.
16 Citations
18 Claims
-
1. A method of managing a queue of collaboration data for clients participating in a real-time collaboration, comprising:
-
operating a control unit configured to manage dissemination of collaboration data to clients participating in a real-time collaboration; in said control unit, maintaining a queue to store said collaboration data, wherein the clients are configured to consume said collaboration data in the order queued; for each client; maintaining a reference identifying a queue entry comprising data currently being processed by the client; and executing a virtual client configured to maintain a virtual screen comprising a portion of the collaboration data; receiving from a first client a request for data from a next entry in the queue; identifying a virtual screen entry in the queue comprising the newest collaboration data included in the virtual screen; determining a total amount of data in all queue entries between the next entry and the virtual screen entry, inclusive; comparing the amount of data in the virtual screen to the total amount; and collapsing the queue by; transmitting said virtual screen to the first client; and updating the client'"'"'s reference to identify the queue entry comprising the newest data included in said virtual screen. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of managing a queue of collaboration data for clients participating in a real-time collaboration, the method comprising:
-
operating a control unit configured to manage dissemination of collaboration data to clients participating in a real-time collaboration; in said control unit, maintaining a queue to store said collaboration data, wherein the clients are configured to consume said collaboration data in the order queued; for each client; maintaining a reference identifying the queue entry comprising data currently being processed by the client; and executing a virtual client configured to maintain a virtual screen comprising a portion of the collaboration data; receiving from a first client a request for data from a next entry in the queue; identifying a virtual screen entry in the queue comprising the newest collaboration data included in the virtual screen; determining a total amount of data in all queue entries between the next entry and the virtual screen entry, inclusive; comparing the amount of data in the virtual screen to the total amount; and collapsing the queue by; transmitting said virtual screen to the first client; and updating the client'"'"'s reference to identify the queue entry comprising the newest data included in said virtual screen.
-
-
7. A real-time collaboration system, comprising:
-
a processor; memory; a control unit configured to manage a mode of a real-time collaboration in which content of a first attendee'"'"'s client is shared with other attendees'"'"' clients; a queue in which said control unit stores said content for transmission to the other attendees'"'"' clients, wherein the other attendees'"'"' clients are configured to consume the content in the order queued; one or more communication modules configured to transmit the content to the other attendees'"'"' clients; for each attendee'"'"'s client; a corresponding reference identifying a queue entry containing content the client is currently processing; and a virtual client configured to maintain a virtual screen configured to mirror the content; wherein the control unit further comprises; a mechanism configured to receive a request for content in a first entry of the queue for a slow attendee client; a mechanism configured to identify an amount of content in the virtual screen; a mechanism configured to determine a total amount of content in the first entry, a second entry comprising the newest content mirrored in the virtual screen, and all entries between the first entry and the second entry; and a collapsing mechanism, wherein if the amount of content in the virtual screen is less than the total amount of content, the collapsing mechanism is configured to collapse the queue by; sending the slow attendee client a copy of the virtual screen; and updating the slow attendee client'"'"'s corresponding reference to identify the second entry. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
Specification