INTELLIGENT CO-BROWSING AND CO-EDITING

- NOVELL, INC.

A leader of a group can specify how content is to be displayed to a group of users. One of these users can specify different instructions regarding the display of the content. The system can then display the content to the user, using either (or both) of the leader's instructions and the user's specific instructions. Using these various independent instructions, the system can automatically change the way the content is displayed to a group of users.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/224,778, titled “COLLABORATION TOOLS”, filed Jul. 10, 2009 and U.S. Provisional Patent Application Ser. No. 61/236,005, titled “PRESENCE-ENABLED INBOX”, filed Jul. 10, 2009, which are hereby incorporated by reference.

This application is related to U.S. patent application Ser. No. ______, titled “COLLABORATION SWARMING”, filed ______, U.S. patent application Ser. No. ______, titled “AUTO-GENERATED AND INFERRED GROUP CHAT PRESENCE”, filed ______, U.S. patent application Ser. No. ______, titled “UNIFIED ADDRESSING, SENDING, AND RECEIVING COLLABORATION SERVICE”, filed ______, U.S. patent application Ser. No. ______, titled “UNIFIED EDITABLE INBOX”, filed , and U.S. patent application Ser. No. ______, titled “PRESENCE-ENABLED INBOX”, filed , all of which are commonly assigned with this application and are hereby incorporated by reference.

FIELD

This invention pertains to team review of content, and more particularly to enabling multiple users to view and/or edit content at the same time.

BACKGROUND

The traditional presentation has long been a useful way for one person to educate a group of others about a topic. By combining a spoken description with useful diagrams, outlined text, and other visual modes of presenting information, the presenter can, in a relatively short amount of time, educate his audience about the topic. In addition, presentations are useful whether the audience is just one person or an auditorium full.

Historically, the usefulness of presentations was limited by the need for each audience member to be able to hear the presenter and see the visual materials. But with the advent of computerized presentations, the usefulness of presentations has increased. Presentations can be made over the Internet, with each audience member sitting in front of a separate computer screen. Each audience member can adjust the size of the visual materials and the volume of the speaker's voice to suit his own tastes. In addition, electronic presentations require no materials to be produced, as everything is edited in an electronic form, which reduces the cost to prepare presentations.

But one thing has not changed since the days of projectors. Regardless of whether the presentation uses a projector or a computer, the presenter has complete control over the presentation. Audience members can, of course, ask questions of the presenter, which can have a minimal impact on the course of the presentation. But generally, the presenter has a script, and everyone follows that script without variance.

A need remains for a way to address these and other problems associated with the prior art.

SUMMARY

A machine hosts a content. One user instructs the machine in the presentation of that content to himself and other users. Another user can switch away from the presentation of the content as directed by the first user, and can instruct the machine to present the content to himself in a different way.

The foregoing and other features, objects, and advantages of the invention will become more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows content being displayed using instructions from a first user to a group, where a second user can specify different instructions regarding the displaying of the content, according to an embodiment of the invention.

FIG. 2 shows a system to enable multiple users to control display of the content of FIG. 1.

FIG. 3 shows two windows, each displaying the content of FIG. 1 according to different instructions.

FIG. 4 shows a follower of the content presentation of FIG. 1 disassociating from the display of the content, issuing his own instructions, and re-associating with the display of the content.

FIG. 5 shows a window displaying the content of FIG. 1 along with an indication of the portions of the content being viewed by all users.

FIG. 6 shows a flowchart of a procedure for managing individual display of the content of FIG, 1, according to an embodiment of the invention,

DETAILED DESCRIPTION

FIG. 1 shows content being presented using instructions from a first user to a group, where a second user can specify different instructions regarding the presentation of the content, according to an embodiment of the invention. In FIG. 1, Joe 105 is issuing instructions 110 regarding the display of content 115 to various other users, such as Mary 120, John 125, Beverly 130, Thomas 135, and Anna 140. Joe's instructions are transmitted to the other users as instructions 145, 150, 155, 160, and 165.

As an example of how an embodiment of the invention according to FIG. 1 can be used, Joe 105 can be leading a team through the review of a document, such as a piece of code. Instructions 110 can then include an instruction to display a particular section of the code to the rest of the team, and then a discussion about the section of code can be held among the team. This might result, for example, in the team deciding on a more efficient way to implement the section of code, or to add a new feature to the program by enhancing the section of code.

But while users 120, 125, 130, 135, 140 can simply follow the display of content 115 as instructed by Joe 105, the other members of the team can also take control of the display of the content to themselves. For example, Thomas 135 can issue his own instructions 160 regarding the display of the content for himself. Instructions 160 are separate from instructions 110, and can apply just to the display of content 115 to Thomas 135 (that is, the other members of the team do not see the display of content 115 as directed by instructions 160). Thus, while the rest of the team is following the lead of Joe 105 and viewing one section of content 115, Thomas 135 can be viewing another section of content 115 independently.

While the above example demonstrates how multiple members of a team can simultaneously browse content 115, embodiments of the invention also allow the members of the team to simultaneously edit content 115 as well. For example, Joe's instructions 110 can include edits to the section of the code being discussed by the team, while at the same time, Thomas's instructions 160 can include editing another portion of content 115. In fact, it is possible for both Joe 105 and Thomas 135 to simultaneously edit the same section of content 115. A person of ordinary skill in the art will recognize that if Joe 105 is leading the team through that section of code, then the edits being made by Thomas 135 as part of instructions 160 will also be immediately apparent to the rest of the team.

Although the description of FIG. 1 focuses on the display of the content, a person of ordinary skill in the art will recognize that the term “display” and its variants are not intended to limit the scope of embodiments of the invention. For example, the term “presentation” could be substituted for the term “display” without any confusion, and the term “display” is intended to be synonymous with the term “presentation”. Accordingly, the term “display” is not limited to only a visual presentation of the content.

In addition, as discussed above, the term “display” is intended to encompass both viewing and editing of the content. Thus, embodiments of the invention include the possibility that there can be multiple users all editing the content simultaneously.

FIG. 1 suggests that original content 115 can be a document. But a person of ordinary skill in the art will understand that any type of content can be the subject of group interest. Aside from documents, other types of content that can be the focus of multiple users can include messages (such as e-mail), instant messages accessible to the members of the group, images, audio and/or video files, and so on.

While the above discussion focuses on a predefined group of persons interested in a particular content, a person of ordinary skill in the art will recognize that the group does not need to be predefined. That is, members can join and depart the group as their interest dictates. In addition, it is possible for members of the group to be given different levels of involvement. For example, aside from the leader of the group (such as Joe 105, whose instructions 110 are generally controlling the display of the content), users can elect to be participants in the group, or just audience members. Audience members can simply follow the discussion without becoming involved; participants have a higher level of involvement, potentially contributing to the discussion. Audience members can either “self-promote” to participants, or can request the leader of the group to promote them to participants.

Although FIG. 1 shows a group of users involved in a discussion, FIG. 1 does not show what each individual member knows. Embodiments of the invention can include a list of all groups to which the particular individual belongs (as individuals can be members of multiple groups), and can inform the user of the other members of each of those groups. Embodiments of the invention can also include the various roles of the members (for example, leader, participant, or audience, among other possibilities). These lists can be sorted in any manner desired. Some possible sorting options include: by the member's role, by the member's name, and by the member's last activity time; a person of ordinary skill in the art will recognize other sorting possibilities.

Embodiments of the invention also enable particular users to control whether the users are permitted to display other portions of the content, or to edit the content. For example, Joe 105, as the leader of the group, can grant or deny the members of the group permission to display portions of the content other than what Joe 105 is displaying. Joe 105, as leader of the group, can also grant or deny the members of the group the ability to edit the content.

It is worth noting that co-browsing and co-editing are separate from each other: one does not imply the other. For example, if Joe 105 denies both co-browsing and co-editing, then all the members of the group must follow Joe's display of the content. If Joe 105 permits co-browsing but denies co-editing, then other members of the group can display other portions of the content, but cannot edit any of the content. If Joe 105 permits co-editing but denies co-browsing, then the members of group can edit the portion of the content Joe 105 is displaying, but cannot display another portion of the content. Finally, if Joe 105 permits both co-browsing and co-editing, then the members of the group can both display and edit other portions of the content. In addition, in embodiments of the invention, these controls over co-browsing and co-editing can be toggled during the display of the content. That is, at different times Joe 105 can permit and/or deny co-browsing and co-editing. Finally, although the above discussion focuses on Joe 105, as leader of the group, having the ability to grant or deny co-browsing and co-editing permission, a person of ordinary skill in the art will recognize that this ability can lie with any member(s) of the group, and not necessarily with the leader of the group.

FIG. 2 shows a system to enable multiple users to control presentation of the content of FIG. 1. In FIG. 2, machine 205 is shown. Machine 205 can be any machine capable of supporting co-browsing and co-editing. Examples of forms machine 205 can take include servers, personal computers operated by one of the users (either the user leading the display of the content or another user), and mainframes, among other possibilities. A person of ordinary skill in the art will also recognize that machine 205 can also take other forms, such as a personal digital assistant (PDA) or cellular telephone.

Machine 205 can be connected to network 210, which allows other machines, such as computer systems 215, 220, and 225 to interact with machine 205. Computer systems 215, 220, and 225 can be computers operated by other members of the team. Exemplary computer 215 can include computer 230, monitor 235, keyboard 240, and mouse 245. A person skilled in the art will recognize that other components not shown in FIG. 2 can be included with computer systems 215, 250, and 225: for example, other input/output devices, such as a printer. In addition, FIG. 2 does not show some of the conventional internal components of computer systems 215, 250, and 225; for example, a central processing unit, memory, storage, etc. Finally, although FIG. 2 shows computer systems 215, 250, and 225 as a conventional desktop computer, a person skilled in the art will recognize that computer systems 215, 250, and 225 can be also any type of machine or computing device capable of providing the services attributed herein to computer systems 215, 250, and 225, including, for example, a laptop computer, PDA, or a mobile telephone (such as a cellular telephone).

Network 210, which is shown as connecting machine 205 with computer systems 215, 220, and 225, can be any type of network. For example, network 210 can include a local area network (LAN), a wide area network (WAN), and the Internet, among other possibilities. A person of ordinary skill in the art will recognize that network 210 can also include combinations of different network types, and can include varieties of both wireless and wireline networks. In addition, while FIG. 2 shows three computer systems 215, 220, and 225 connected to network 210 (in addition to machine 205), a person of ordinary skill in the art will recognize that there can be any number of machines connected to network 210.

To support co-browsing and co-editing of content, machine 205 includes input 250 and display mechanism 255. Input 250 can receive instructions from one or more users interested in a particular content. Display mechanism 255 then issues directions regarding the display of the content according to the instructions received via input 250. Display mechanism can issue directions to all members of the team (such as when the leader of the presentation issues instructions regarding the particular piece of content to display to the team), or to just one particular user (such as when one user wants to break away from the team and examine a different section of the content on his own).

FIG. 3 shows two windows, each displaying the content of FIG. 1 according to different instructions. In FIG. 3, according to one embodiment of the invention, window 305 can be a window showing the display of the content according to the directions of the team leader, and window 310 can be a window showing the display of the content according to the directions of the individual user (separate from that of the leader). Thus, while window 305 shows one portion of the content, window 310 shows a different portion of the content. The leader controls the display of the content in window 305, whereas the user controls the display of the content in window 310. This embodiment of the invention permits the user to continue to follow the leader of the presentation, while also displaying a different window for the user's specific display of the content.

In another embodiment of the invention, the user can have just one window. In this window, the user can follow the leader's presentation of the content. Then, when the user wants to display a different portion of the content from what the leader is displaying, the user can change the display in the window to his selected portion of the content. When the user is finished reviewing his selected portion of the content, the user can rejoin the leader's presentation.

In this alternative embodiment of the invention, to change the display of the content in the window, the user can disassociate from the leader's presentation. Then, when the user is ready to rejoin the group, he can re-associate with the leader's display of the content. FIG. 4 demonstrates this situation.

In FIG. 4, Thomas 135 is shown issuing disassociation request 405 to machine 205. Upon receiving disassociation request 405, machine 205 knows not to send to Thomas 135 the display as instructed by the leader of the group. Instead, as Thomas 135 sends instructions 160, machine 205 displays the content according to instructions 160. When Thomas 135 is ready to rejoin the group, Thomas 135 can send re-association request 410 to machine 205, after which machine 205 will again display the content to Thomas 135 as instructed by the leader of the group.

In all of the above discussion, the focus has been on one user displaying the content differently from how the leader is presenting the content. A person of ordinary skill in the art will recognize that embodiments of the invention are not limited to only two users displaying different portions of the content. Any number of users can display the content, each according to different instructions (and even with those display instructions in parallel with the leader's display instructions).

In addition, there is nothing special about the identity of the user issuing the instructions for display of the content to the group. For example, in FIG. 4, after Thomas 135 disassociates from the group and begins displaying the content in his preferred way, other users (including other members of the group) can follow Thomas 135. Other users can follow Thomas 135 either by requesting Thomas 135 to let them follow him, or by Thomas inviting them to follow him. In effect, when other members begin to follow Thomas 135, Thomas 135 becomes the leader of a new group. Since a particular user might be a member of both the original group and Thomas's “group”, this means that there can be any number of windows open, all displaying the same content in different ways: one for each group the user belongs to, and one for the user's personal display of the content (independent of the groups).

In another embodiment of the invention, the system tracks which users are looking at what portions of the content. The system can also track who each user is following. For example, referring back to FIG. 1, if Mary 120 is following both Joe 105 (as the leader of the group) and Thomas 135 (who is reviewing a different portion of the content), the system can track Mary's foci. The system can then use the information about what portion of the content each user is watching. If enough members of the team are looking at a portion of the content that is different from what the leader is instructing be displayed, the system can automatically shift the focus of the group to the other portion of the content.

Any desired policies can be used to control when focus can be shifted away from that requested by the leader of the group. Some of the more obvious choices are when the majority (or some other threshold percentage) of the group is looking at some other portion of the content. But a person skilled in the art will recognize other possible policies that can be used. For example, if one of the followers of the content discussion is a manager of the project and his focus shifts away from that of the leader, the system can automatically follow the manager's focus, even though he is not leading the discussion.

FIG. 5 shows a window displaying the content of FIG. 1 along with an indication of the portions of the content being viewed by all users. In FIG. 6, window 305 (from FIG. 3) is shown. But instead of showing window 310 as well, monitor 235 is shown as displaying reduced content 505. Reduced content 505 is a miniature representation of the content.

Pointing into reduced content 505 are arrows 510 and 515. Arrows 510 and 515 identify what portions of the content each of the various members of the group are viewing. While FIG. 5 shows just arrows into reduced content 505, a person skilled in the art will recognize that there are other ways to identify the portions of the content being viewed by the other members of the group. For example, reduced content 505 can include marks surrounding the particular portion of reduced content 505 being viewed by each user. Or, different colors can be used to represent portions of reduced content 505 being viewed by different users.

Reduced content 505 can be simply a representation of the overall content, without being itself readable. But reduced content 505 can also be a reduced version of the overall content, so that by enlarging reduced content 505 one can read the content, and reduced content 505 can be enlarged by resizing reduced content 505. (Of course, if the overall content is sufficiently long, the reduction in the size of the content will make it generally illegible unless enlarged to a significant extent.)

In FIG. 5, Joe can see that most of the users are viewing a different portion of the content. If Joe is leading the group, Joe can use reduced content 505 to realize that he needs to change his focus. Alternatively, if, as discussed above with reference to FIG. 4, the system can automatically change the focus of the content presentation based on the individual foci of the group members, the system can automatically change the focus to the portion of the content being viewed by Thomas, Anna, Beverly, Mary, and John. In addition, as described in related to U.S. patent application Ser. No. ______, titled “COLLABORATION SWARMING”, filed ______, which is incorporated by reference herein, the members of the group can be viewed as a “swarm” around the content. The general focus of the swarm on the portion of the content identified by arrows 515 can be viewed as the direction of the swarm, which can trigger the change of focus in the presentation.

FIG. 6 shows a flowchart of a procedure for managing individual presentation of the content of FIG. 1, according to an embodiment of the invention. In FIG. 6, at block 605, the system receives instructions from a first user, such as the group leader, about the display of the content. At block 610, the system displays the content to the interested users, as per the leader's instructions. At block 615, the system receives a request from a second user to disassociate from the group. As shown by dashed arrow 620, block 615 can be omitted.

At block 625, the system receives from the second user instructions regarding the display of the content. These instructions can, as discussed above with reference to FIG. 1, differ from those of the first user. At block 630, the system displays the content to the second user, according to his instructions. As discussed above with reference to FIGS. 3-4, this display can be in parallel with the display of the leader's instructions, or this display can replace the display of the content according to the leader's instructions.

At block 635, the system can display the content to other users. In contrast with block 610, where the display to the users was the display selected by the first user, in block 635 the display of the content is the display selected by the second user. As shown by dashed arrow 640, block 635 can be omitted. Finally, at block 645, the system can receive a request from the second user to re-associate with the group. As shown by dashed arrow 650, block 645 can be omitted.

The following discussion is intended to provide a brief, general description of a suitable machine in which embodiments of the disclosed technology can be implemented. As used herein, the term “machine” is intended to broadly encompass a single machine or a system of communicatively coupled machines or devices operating together. Exemplary machines can include computing devices such as personal computers, workstations, servers, portable computers, handheld devices, tablet devices, and the like.

Typically, a machine includes a system bus to which processors, memory (e.g., random access memory (RAM), read-only memory (ROM), and other state-preserving medium), storage devices, a video interface, and input/output interface ports can be attached. The machine can also include embedded controllers such as programmable or non-programmable logic devices or arrays, Application Specific Integrated Circuits, embedded computers, smart cards, and the like. The machine can be controlled, at least in part, by input from conventional input devices (e.g., keyboards and mice), as well as by directives received from another machine, interaction with a virtual reality (VR) environment, biometric feedback, or other input signal.

The machine can utilize one or more connections to one or more remote machines, such as through a network interface, modem, or other communicative coupling. Machines can be interconnected by way of a physical and/or logical network, such as an intranet, the Internet, local area networks, wide area networks, etc. One having ordinary skill in the art will appreciate that network communication can utilize various wired and/or wireless short range or long range carriers and protocols, including radio frequency (RF), satellite, microwave, Institute of Electrical and Electronics Engineers (IEEE) 545.11, Bluetooth, optical, infrared, cable, laser, etc.

Embodiments of the disclosed technology can be described by reference to or in conjunction with associated data including functions, procedures, data structures, application programs, instructions, etc. that, when accessed by a machine, can result in the machine performing tasks or defining abstract data types or low-level hardware contexts. Associated data can be stored in, for example, volatile and/or non-volatile memory (e.g., RAM and ROM) or in other storage devices and their associated storage media, which can include hard-drives, floppy-disks, optical storage, tapes, flash memory, memory sticks, digital video disks, biological storage, and other tangible, physical storage media.

Associated data can be delivered over transmission environments, including the physical and/or logical network, in the form of packets, serial data, parallel data, propagated signals, etc., and can be used in a compressed or encrypted format. Associated data can be used in a distributed environment, and stored locally and/or remotely for machine access.

Having described and illustrated the principles of the invention with reference to illustrated embodiments, it will be recognized that the illustrated embodiments may be modified in arrangement and detail without departing from such principles, and may be combined in any desired manner. And although the foregoing discussion has focused on particular embodiments, other configurations are contemplated. In particular, even though expressions such as “according to an embodiment of the invention” or the like are used herein, these phrases are meant to generally reference embodiment possibilities, and are not intended to limit the invention to particular embodiment configurations. As used herein, these terms may reference the same or different embodiments that are combinable into other embodiments.

Consequently, in view of the wide variety of permutations to the embodiments described herein, this detailed description and accompanying material is intended to be illustrative only, and should not be taken as limiting the scope of the invention. What is claimed as the invention, therefore, is all such modifications as may come within the scope and spirit of the following claims and equivalents thereto.

Claims

1. An apparatus, comprising:

a machine;
an input to the machine to receive first instructions from a first user regarding a first display of a content to at least one other user and to receive second instructions from a second user regarding a second display of said content, said second user being one of said at least one other user, said second instructions differing from said first instructions; and
a display mechanism to display said content according to said first instructions and according to said second instructions.

2. An apparatus according to claim 1, wherein said second instructions include edits to said content.

3. An apparatus according to claim 1, wherein the display mechanism is operative to display said content according to said first instructions in a first window and to display said content according to said second instructions in a second window.

4. An apparatus according to claim 1, wherein the display mechanism is operative to display said content according to said second instructions, overriding said first instructions.

5. An apparatus according to claim 4, wherein the input is operative to receive a request from said second user to disassociate from the display of said content according to said first instructions.

6. An apparatus according to claim 5, wherein the input is further operative to receive a request from second user to re-associate the display of said content according to said first instructions.

7. An apparatus according to claim 1, wherein:

the input is operative to receive said second instructions from a plurality of second users regarding the display of said content, said plurality of second users being a subset of said at least one other user; and
the display mechanism is operative to display said content to said at least one other user according to said second instructions.

8. A method, comprising:

receiving first instructions from a first user regarding a first display of a content to at least one other user;
displaying the content to the at least one other user on at least a first display according to the first instructions;
receiving second instructions from a second user regarding a second display of the content, wherein the second user is one of the at least one other user and the second instructions are different from the first instructions; and
displaying the content to the second user on one of the at least a first display according to the second instructions.

9. A method according to claim 8, wherein:

receiving second instructions from a second user includes receiving second instructions to edit the content from the second user; and
displaying the content to the second user includes displaying the edit of the content.

10. A method according to claim 8, wherein receiving second instructions from a second user includes receiving a request from the second user to disassociate a display of the content according to the first instructions.

11. A method according to claim 10, further comprising receiving a request from the second user to re-associate with the display of the content according to the first instructions.

12. A method according to claim 8, wherein:

displaying the content to the at least one other user according to the first instructions includes displaying the content to the at least one other user according to the first instructions in a first window; and
displaying the content to the second user according to the second instructions includes displaying the content to the second user according to the second instructions in a second window.

13. A method according to claim 12, wherein displaying the content to the second user according to the second instructions in a second window includes displaying the content to the second user according to the second instructions in a second window without affecting the display of the content to the at least one other user according to the first instructions in the first window.

14. A method according to claim 8, wherein:

receiving second instructions from a second user includes receiving second instructions from a plurality of second users regarding the display of the content, wherein the plurality of second users is a subset of the at least one other user; and
displaying the content to the second user according to the second instructions includes displaying the content to the at least one other user according to the second instructions.

15. An article, comprising a storage medium, said storage medium having stored thereon instructions that, when executed by a machine, result in:

receiving first instructions from a first user regarding a first display of a content to at least one other user;
displaying the content to the at least one other user according to the first instructions;
receiving second instructions from a second user regarding a second display of the content, wherein the second user is one of the at least one other user and the second instructions are different from the first instructions; and
displaying the content to the second user according to the second instructions.

16. An article according to claim 15, wherein:

receiving second instructions from a second user includes receiving second instructions to edit the content from the second user; and
displaying the content to the second user includes displaying the edit of the content.

17. An article according to claim 15, wherein receiving second instructions from a second user includes receiving a request from the second user to disassociate a display of the content according to the first instructions.

18. An article according to claim 17, said storage medium having stored thereon further instructions that, when executed by a machine, result in receiving a request from the second user to re-associate with the display of the content according to the first instructions.

19. An article according to claim 15, wherein:

displaying the content to the at least one other user according to the first instructions includes displaying the content to the at least one other user according to the first instructions in a first window; and
displaying the content to the second user according to the second instructions includes displaying the content to the second user according to the second instructions in a second window.

20. An article according to claim 19, wherein displaying the content to the second user according to the second instructions in a second window includes displaying the content to the second user according to the second instructions in a second window without affecting the display of the content to the at least one other user according to the first instructions in the first window.

Patent History
Publication number: 20110010640
Type: Application
Filed: Jan 19, 2010
Publication Date: Jan 13, 2011
Applicant: NOVELL, INC. (PROVO, UT)
Inventors: Andrew Fox (Sudbury, MA), David Marshall LaPalomento (Lexington, MA), Ian Edward Roughley (Cambridge, MA), Scott A. Isaacson (Woodland Hills, UT)
Application Number: 12/690,071
Classifications
Current U.S. Class: Computer Conferencing (715/753)
International Classification: G06F 3/048 (20060101); G06F 15/16 (20060101);