Method of sharing a desktop with attendees of a real-time collaboration
First Claim
1. In a real-time collaboration, a method of sharing a presenter'"'"'s desktop with collaboration attendees, the method comprising:
- at a presenter'"'"'s client computer system having a desktop, selecting a bound portion of the client desktop to share with one or more attendees of a collaboration;
identifying an area of the bound portion in which the appearance of the desktop changed;
identifying one or more objects included in the area;
for any object in said objects that is not already cached and assigned a cache ID;
caching said object; and
assigning said object a cache ID;
for each of said objects, constructing an object block describing the object;
for each of said objects, constructing an action block to facilitate reproduction of the object, wherein said action block identifies said object by said cache ID; and
forwarding said object blocks and said action blocks toward the attendees.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of facilitating the reproduction of a presenter'"'"'s desktop for attendees of a real-time collaboration. A bound portion of the desktop (the portion shared with the attendees) is logically divided into clusters. When the content of a cluster changes, the cluster is analyzed and one or more objects describing the content may be identified. Each object that is not already cached is cached and assigned a cache ID. Each object in the cluster is described in an object primitive to be sent to the attendees. Actions for reproducing the object on the attendees'"'"' clients are sent as action primitives. The object and action primitives allow the content of the presenter'"'"'s desktop to be sent incrementally instead of sending the entire desktop.
128 Citations
34 Claims
-
1. In a real-time collaboration, a method of sharing a presenter'"'"'s desktop with collaboration attendees, the method comprising:
-
at a presenter'"'"'s client computer system having a desktop, selecting a bound portion of the client desktop to share with one or more attendees of a collaboration;
identifying an area of the bound portion in which the appearance of the desktop changed;
identifying one or more objects included in the area;
for any object in said objects that is not already cached and assigned a cache ID;
caching said object; and
assigning said object a cache ID;
for each of said objects, constructing an object block describing the object;
for each of said objects, constructing an action block to facilitate reproduction of the object, wherein said action block identifies said object by said cache ID; and
forwarding said object blocks and said action blocks toward the attendees. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of sharing a presenter'"'"'s desktop with collaboration attendees, the method comprising:
-
at a presenter'"'"'s client computer system having a desktop, selecting a bound portion of the client desktop to share with one or more attendees of a collaboration;
identifying an area of the bound portion in which the appearance of the desktop changed;
identifying one or more objects included in the area;
for any object in said objects that is not already cached and assigned a cache ID;
caching said object; and
assigning said object a cache ID;
for each of said objects, constructing an object block describing the object;
for each of said objects, constructing an action block to facilitate reproduction of the object, wherein said action block identifies said object by said cache ID; and
forwarding said object blocks and said action blocks toward the attendees.
-
-
11. A method of sharing a presenter'"'"'s desktop with a collaboration attendee, comprising:
-
logically dividing the presenter'"'"'s desktop into a plurality of clusters;
for each cluster, periodically computing a checksum on pixel values in the cluster;
if a checksum for a first cluster differs from a previously computed checksum for the first cluster;
associating one or more attributes with the first cluster, wherein a first of said attributes comprises a number of colors of pixels in the first cluster;
identifying a graphical object in the first cluster;
constructing an object primitive block describing the graphical object; and
constructing an action primitive block configured to reproduce the graphical object; and
transmitting said object primitive block and said action primitive block to the collaboration attendee to facilitate reproduction of the graphical object on a client of the attendee. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of sharing a presenter'"'"'s desktop with a collaboration attendee, the method comprising:
-
logically dividing the presenter'"'"'s desktop into a plurality of clusters;
for each cluster, periodically computing a checksum on pixel values in the cluster;
if a checksum for a first cluster differs from a previously computed checksum for the first cluster;
associating one or more attributes with the first cluster, wherein a first of said attributes comprises a number of colors of pixels in the first cluster;
identifying a graphical object in the first cluster;
constructing an object primitive block describing the graphical object; and
constructing an action primitive block configured to reproduce the graphical object; and
transmitting said object primitive block and said action primitive block to the collaboration attendee to facilitate reproduction of the graphical object on a client of the attendee.
-
-
28. A method of sharing a presenter'"'"'s desktop with real-time collaborators, comprising:
-
logically dividing a presenter'"'"'s desktop into a plurality of clusters, wherein a portion of the presenter'"'"'s desktop is shared with one or more collaborators in a real-time collaboration;
for each cluster;
computing a checksum on content of the presenter'"'"'s desktop displayed in said cluster; and
comparing said checksum to a stored checksum calculated on previous content of the presenter'"'"'s desktop displayed in said cluster;
for each cluster in which said computed checksum differs from said stored checksum, scanning said cluster for changes between said previous contents of the presenter'"'"'s desktop and said contents of the presenter'"'"'s desktop; and
transmitting said changes toward the collaborators as incremental updates to the presenter'"'"'s desktop. - View Dependent Claims (29, 30, 31, 32, 33)
-
-
34. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of sharing a presenter'"'"'s desktop with real-time collaborators, the method comprising:
-
logically dividing a presenter'"'"'s desktop into a plurality of clusters, wherein a portion of the presenter'"'"'s desktop is shared with one or more collaborators in a real-time collaboration;
for each cluster;
computing a checksum on content of the presenter'"'"'s desktop displayed in said cluster; and
comparing said checksum to a stored checksum calculated on previous content of the presenter'"'"'s desktop displayed in said cluster;
for each cluster in which said computed checksum differs from said stored checksum, scanning said cluster for changes between said previous contents of the presenter'"'"'s desktop and said contents of the presenter'"'"'s desktop; and
transmitting said changes toward the collaborators as incremental updates to the presenter'"'"'s desktop.
-
Specification