Today, there are many tools that may be used to allow people to collaborate with one another. For example, audio communication (e.g., a telephone call, an audio conference, etc.) tools allow people to talk to one another. Visual tools such as video conferencing, shared workspace applications, etc. allow people to view, share, demonstrate information. Many other tools may be used also, such as e-mail, messaging/chat, discussion boards, etc. for collaboration purposes.
In some embodiments, a non-transitory machine-readable medium stores a program executable by at least one processing unit of a first device. The program establishes a collaboration session with a second device. The program also receives, from the second device, analytics data shared through the collaboration session and contextual data associated with the analytics data. The program further provides additional data for display on the first device based on the contextual data associated with the analytics data.
In some embodiments, the analytics data may be represented by a document object model (DOM). The program also reproduces the analytics data based on the DOM and displays the analytics data on the first device. In some embodiments, providing the additional data is further based on preference data that includes data associated with a user of the first device.
In some embodiments, the analytics data is shared by the second device via a screen sharing feature. The contextual data may include the additional analytics data. The additional analytics data may be stored in an external storage relative to the first device and the program may further retrieve the additional analytics data associated with the analytics data from the external storage.
In some embodiments, a method establishes a collaboration session with a second device. The method also receives, from the second device, analytics data shared through the collaboration session and contextual data associated with the analytics data. The method further provides additional data for display on a first device based on the contextual data associated with the analytics data.
In some embodiments, the analytics data may be represented by a document object model (DOM). The method also reproduces the analytics data based on the DOM and displays the analytics data on the first device. In some embodiments, providing the additional data is further based on preference data that includes data associated with a user of the first device.
In some embodiments, the analytics data is shared by the second device via a screen sharing feature. The contextual data may include the additional analytics data. The additional analytics data may be stored in an external storage relative to the first device and the method may further retrieve the additional analytics data associated with the analytics data from the external storage.
In some embodiments, a system includes a set of processing units, a memory, and a machine-readable medium that stores a program. The program causes at least one processing unit to establish a collaboration session with a second device. The program also causes the at least one process unit to receive, from the second device, analytics data shared through the collaboration session and contextual data associated with the analytics data. The program further causes the at least one processing unit to provide additional data for display on the first device based on the contextual data associated with the analytics data.
In some embodiments, the analytics data is represented by a document object model (DOM). The program may also causes the at least one processing unit to reproduce the analytics data based on the DOM and display the analytics data on the first device. In some embodiments, providing the additional data is further based on preference data that includes data associated with a user of the first device.
In some embodiments, the contextual data may include the additional analytics data. The additional analytics data may be stored in an external storage relative to the first device and the program may further cause the at least one processing unit to retrieve the additional analytics data associated with the analytics data from the external storage.
The following detailed description and accompanying drawings provide a better understanding of the nature and advantages of the present invention.
In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention as defined by the claims may include some or all of the features in these examples alone or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein.
Described herein are techniques for providing analytic data for a collaboration application. In some embodiments, a collaboration application operating on a first device communicates in real-time with a collaboration application operating on a second device. The collaboration applications may include video and/or audio conferencing features as well as a sharing feature (e.g., a screen sharing feature, a desktop sharing feature, etc.). In some instances, the collaboration application operating on the first device may share with the collaboration application operating on the second device analytics data and contextual information associated with the collaboration application operating on the first device. Based on the analytics data and the contextual information associated with the collaboration application operating on the first device, the collaboration applications operating on the second device may retrieve and provide on the second device additional data associated with the analytics data.
In some embodiments, the collaboration applications include an overlay feature for annotating shared information. For example, the collaboration application operating on the first device may share data with the collaboration application operating on the second device. The overlay feature of the collaboration applications may allow a user of the second device to provide annotations associated with the shared data on an overlay generated on the second device. In some embodiments, the collaboration application operating on the second device may share with the collaboration application operating on the first device the overlay generated on the second device.
Presenter device 105 is configured to establish and manage collaboration session 110 with participant devices 115a-115n. As mentioned above, presenter device 105 is presenting analytics data 120 to participant devices 115a-115n in this example. In some embodiments, presenter device 105 presents analytics data 120 to participant devices 115a-115n using a communication protocol (e.g., a WebSocket protocol). Via such a communication protocol, presenter device 105 presents, in some such embodiments, analytics data 120 to participant devices 115a-115n using a screen sharing feature that allows presenter device 105 to present the content being displayed on a display of presenter device 105 to participant devices 115a-115n.
For this example, analytics data 120 that presenter device 105 is presenting to participant devices 115a-115n is in the form of a digital content page (e.g., a web page) represented by a document object model (DOM). In some embodiments, a DOM is a structured representation of a document. To share the digital content page to participant devices 115a-115n , presenter device 105 generates a copy of the DOM of the digital content page and contextual data associated with the DOM of the digital content page. As shown in
In some instances, the digital content page being presented to participant devices 115a-115n may change. For instance, a user of presenter device 105 may manipulate the current digital content page or navigate to, or open, a new digital content page. When the digital content page being presented to participant devices 115a-115n changes, presenter device 105 may generate a copy of the DOM of the modified digital content page and contextual data associated with the DOM of the modified digital content page. Presenter device 105 then sends the DOM and contextual data to participate devices 115a-115n. This way, participant devices 115a-115n may receive the digital content page that presenter device 105 is presenting in a real-time manner.
Participant devices 115a-115n are each configured to establish collaboration session 110 with presenter device 105. Once collaboration session 110 is established, each of the participant devices 115a-115n may receive (e.g., continuously, at defined intervals, based on changes to the content being presented by presenter device 105, etc.) a DOM of a digital content page that is being presented by presenter device 105 as well as contextual data associated with the digital content page, as illustrated in
Participant devices 115a-115b are each further configured to access additional analytics data 125 based on the contextual data associated with the DOM of the digital content page being presented by presenter device 105. In some embodiments, a particular participant device 115 accesses additional analytics data 125 based on preference data 130 stored on the particular participant device 115. Examples of preference data may include a user identifier (ID) of a user using the particular participant device 115, a location (e.g., country, state, province, city, etc.) of the user or from which the user is logged in, a history of analytics used by the user, types of analytics that the user has specified, analytics usage patterns of the user, time zone information associated with the user or the particular participant device 115, resources to which the user has access based on an authentication status of the user, etc. Participant devices 115a-115n may present the accessed additional analytics data to users of participant devices 115a-115n in order to supplement and/or augment the analytics data being presented by presenter device 105. While
Data flow 200 starts by presenter device 105 sending, at 215, an invitation request to collaboration server 205. In some embodiments, a user of presenter device 105 creates the invitation request by initiating (e.g., selecting a user interface (UI) item in a GUI provided by collaboration server 205) an invitation creation tool provided by collaboration server 205 and specifying through the invitation creation tool one or more users to include in the invitation request. In this example, the invitation request specifies users of participant devices 115. Once the user of presenter device 105 has finished creating the invitation request, presenter device 105 sends the invitation request to collaboration server 205.
Next, collaboration server 205 creates, at 220, a collaboration session. After creating the collaboration session, collaboration server 205 creates an email communication that includes a reference (e.g., a hypertext transfer protocol (HTTP) hyperlink) to the collaboration session. Collaboration server 205 then sends, at 225, the email to mail server 210 for processing. When mail server 210 receives the email, mail server 210 forwards, at 230, the email to the users specified in the email, which are the users of participant devices 115 in this example.
When a user of a particular participant device 115 receives the email, the user may access (e.g., by selecting or clicking) the reference to the collaboration session included in the email. In response, the particular participant device 115 joins, at 235, the collaboration session. The user of presenter device 105 may start, at 240, the collaboration session. While
Once presenter device 105 starts the collaboration session, presenter device 105 shares, at 245 collaboration data with each of the participant devices 115. In some embodiments, the collaboration data includes analytics data 120, DOMs associated with analytics data 120, contextual data, other types of information (e.g., a location of a cursor displayed on a display of presenter device 105), etc. Presenter device 105 may share the collaboration data in the same or similar manner as that described above by reference to
In some embodiments, the operations performed by presenter device 105 described above by reference to
UI item 305 is configured to enable, when selected, a screen sharing feature. When the screen sharing feature is enabled, the collaboration application shares GUI 300 with participant devices (e.g., participant devices 115) in the manner described above by reference to
When cursor 325 is at or near the top left region of display area 310, the collaboration application may overlay UI item 305 in the top left region of display area 310, as shown in
Display areas 310 and 315 are configured to display information (e.g., analytics data). For this example, display area 310 is displaying analytics data associated with a company and display area 315 is displaying visualization 330 of analytics data. Specifically, visualization 330 includes a bar chart depicting the number of sales representatives for a North America (N.A.) region and a South America (S.A.) region.
Panel 320 is configured to display devices that are in the collaboration session. As shown, panel 320 is displaying UI items 335, 340, and 345, which represent presenter device 105 and participant devices 105, respectively. When a participant device joins (e.g., performs operation 235) the collaboration session, the collaboration application displays a UI item that represents the participant device in panel 320. When a participant device leaves the collaboration session, the collaboration application removes the UI item that represents the participant device from panel 320.
Display area 405 is configured to display the screen of presenter device 105 when presenter device 105 enables the screen sharing feature (e.g., when a user of presenter device 105 selects UI item 305). When the collaboration application operating on participant device 115a receives a DOM of the contents being displayed on presenter device 105 (GUI 300 in this example), the collaboration application uses the DOM to reproduce the contents being displayed on presenter device 105. As shown in
Display area 410 is configured to display additional analytics data associated with the contents displayed in display area 405. As mentioned above, presenter device 105 may send to participant devices contextual data associated with the DOM of the contents being displayed on presenter device 105. When the collaboration application operating on participant device 115a receives the contextual data associated with the DOM of the contents being displayed on presenter device 105 (GUI 300 in this example), the collaboration application accesses additional analytics data based on the received contextual data and preference data (e.g., preference data 130a) stored on participant device 115a. In this example, the contextual data includes data indicating that visualization 330 in GUI 300 is a visualization based on data related to sales representatives and region and the preference data stored on participant device 115a includes data indicating that a user of participant device 115a is located in Asia. Based on such data, the collaboration application operating on participant device 115a in this example accesses data related to sales representatives in Asian regions (Asia and Japan for this example). The collaboration application generates visualization 415 based on the accessed data and displays visualization 415 in display area 410. As shown, visualization 415 includes a bar chart depicting the number of sales representatives for an Asia region and a Japan region.
For this example, when the collaboration application operating on participant device 115b receives the contextual data associated with the DOM of the contents being displayed on presenter device 105 (GUI 300 in this example), the collaboration application accesses additional analytics data based on the received contextual data and preference data (e.g., preference data 130b) stored on participant device 115b. In this example, the contextual data includes data indicating that visualization 330 in GUI 300 is a visualization based on data related to sales representatives and region and the preference data stored on participant device 115b includes data indicating that a user of participant device 115b is located in Europe. Based on such data, the collaboration application operating on participant device 115b in this example accesses data related to sales representatives in a Europe region. The collaboration application generates visualization 515 based on the accessed data and displays visualization 515 in display area 510. As shown, visualization 515 includes a bar chart depicting the number of sales representatives for a Europe region.
As shown in
In some embodiments, the collaboration application operating on a participant device may include a private overlay feature that allows a user of the participant device to take a snapshot of the content page being presented by a presenter device and make annotations to the snapshot during a collaboration session. The snapshot and any annotations made to the snapshot may be shared with the presenter device.
Referring to
Referring to
Referring to
Referring to
When presenter device 105 receives DOM 830 and annotation data 840, presenter device 105 disables the screen sharing feature and reproduces in GUI 300 the overlay (i.e., a snapshot of a digital content page) created by a user of participant device 115a based on DOM 830 and annotation data 840 in order to synchronize the shared overlay with participant device 115a. Presenter device 105 also provides UI items 845 and 850. UI items 845 and 850 are similar to UI items 815 and 820. That is, UI item 845 is configured to enable an arrow tool for add arrow annotations to the snapshot of the digital content page. UI item 850 is configured to enable a drawing tool for drawing annotations to the snapshot of the digital content page.
Referring to
In some embodiments, the collaboration application operating on a participant device may include a shared overlay feature that allows a user of the participant device to take a snapshot of the content page being presented by a presenter device, share the snapshot with another participant device, and make annotations to the shared snapshot during a collaboration session. The snapshot may be shared and annotations may be made to the shared snapshot while the presenter device in the collaboration session is continuing to present the same or different digital content.
In response to enabling the shared overlay feature, the requesting participant device 115a or 115b generates DOM 910, which represents the digital content page being reproduced in GUI 800 at the instance the request is accepted (for this example the digital content page being reproduced in GUI 800 is the same as that shown in
When the other participant device 115a or 115b receives DOM 910, the other participant device 115a or 115b disables the screen sharing feature and reproduces in GUI 900 the overlay (i.e., a snapshot of a digital content page) created by a user of the requesting participant device 115a or 115b based on DOM 910 in order to synchronize the shared overlay with the requesting participant device 115a or 115b. The other participant device 115a or 115b also provides UI items 915 and 920. UI items 915 and 920 are similar to UI items 815 and 820. That is, UI item 915 is configured to enable an arrow tool for add arrow annotations to the snapshot of the digital content page. UI item 920 is configured to enable a drawing tool for drawing annotations to the snapshot of the digital content page.
In addition,
In some embodiments, the collaboration applications of a presenter device and participant devices in a collaboration session include an automated recording and playback feature (also referred to as a time travel feature) that records activity (e.g., digital content shared by the presenter device, cursor locations and movements displayed on the presenter device, annotations and/or notes added to overlays, audio exchange in an audio conference, video exchanged in a video conference, etc.) that occurs during the collaboration session. The time travel feature allows a user to playback (e.g., via a slider control) the collaboration session in a non-linear fashion so that the user may access any instance in time of the collaboration session without having to playback the entire collaboration session. In addition, the time travel feature indexes the comments, notes, and/or annotations by time and user. This way, a user may search and/or filter the comments, notes, and/or annotations added to the collaboration session by time and/or user in order to quickly and easily find portions of the collaboration session that is of interest to the user.
Session manager 1005 is responsible for establishing and managing collaboration sessions (e.g., collaboration session 110). In some embodiments, session manager 1005 is configured to perform the operations illustrated in data flow 200. Session manager 1005 may handle the screen sharing feature as described above.
DOM manager 1010 manages DOMs during collaboration sessions. For example, when presenter device 105 shares a digital content page, DOM manager 1010 generates a copy of the DOM of the digital content page. DOM manager 1010 also reproduces digital content pages based on DOMs. For instance, when a particular participant device 115 receives a DOM from presenter device 105, the particular participant device 115 reproduces a digital content page based on the received DOM.
Context manager 1015 handles contextual data associated with DOMs. For instance, when presenter device 105 generates a copy of a DOM of a digital content page being shared, context manager 1015 generates contextual data associated with the DOM so that participant devices 115 may provide additional analytics data.
Analytics manager 1020 provides additional analytics data. For example, a particular participant device 115 may access additional analytics data based on contextual data associated with a DOM of a digital content page being presented by presenter device 105 and preference data stored on the particular participant device 115.
Overlay manager 1025 is configured to handle the private and shared overlay features described above. For instance, overlay manager 1025 may provide UI items (e.g., UI items 805 and 905) for enabling such features. Overlay manager 1025 may also provide UI items (e.g., UI items 815, 820, 845, 850, 915, and 920) for enabling annotation tools. Also, overlay manager 1025 may be responsible for synchronizing DOMs and annotation data between devices when sharing an overlay between devices.
Next, process 1100 receives, at 1120, from the device analytics data shared through the collaboration session and contextual data associated with the analytics data. In some embodiments, the analytics data is in the form of a DOM that represents a digital content page being shared by the device when the device has enabled a screen sharing feature. In some such embodiments, when process 1100 receives the DOM, process 1100 reproduces the digital content page based on the DOM.
Finally, process 1100 provides, at 1130, additional analytics data based on the contextual data associated with the analytics data. In some embodiments, process 1100 provides additional analytics data further based on preference data. Referring to
Next, process 1200 provides, at 1220, annotation tools for annotation the snapshot. For instance, process 1200 may provide an arrow tool and a drawing tool such as the ones illustrated in
Finally, process 1200 adds, at 1230, annotations to the snapshot using the annotation tools. Referring to
An exemplary computer system 1300 is illustrated in
Computer system 1310 may be coupled via bus 1305 to a display 1312, such as a cathode ray tube (CRT) or liquid crystal display (LCD), for displaying information to a computer user. An input device 1311 such as a keyboard and/or mouse is coupled to bus 1305 for communicating information and command selections from the user to processor 1301. The combination of these components allows the user to communicate with the system. In some systems, bus 1305 may be divided into multiple specialized buses.
Computer system 1310 also includes a network interface 1304 coupled with bus 1305. Network interface 1304 may provide two-way data communication between computer system 1310 and the local network 1320. The network interface 1304 may be a digital subscriber line (DSL) or a modem to provide data communication connection over a telephone line, for example. Another example of the network interface is a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links are another example. In any such implementation, network interface 1304 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.
Computer system 1310 can send and receive information, including messages or other interface actions, through the network interface 1304 across a local network 1320, an Intranet, or the Internet 1330. For a local network, computer system 1310 may communicate with a plurality of other computer machines, such as server 1315. Accordingly, computer system 1310 and server computer systems represented by server 1315 may form a cloud computing network, which may be programmed with processes described herein. In the Internet example, software components or services may reside on multiple different computer systems 1310 or servers 1331-1335 across the network. The processes described above may be implemented on one or more servers, for example. A server 1331 may transmit actions or messages from one component, through Internet 1330, local network 1320, and network interface 1304 to a component on computer system 1310. The software components and processes described above may be implemented on any computer system and send and/or receive information across a network, for example.
The above description illustrates various embodiments of the present invention along with examples of how aspects of the present invention may be implemented. The above examples and embodiments should not be deemed to be the only embodiments, and are presented to illustrate the flexibility and advantages of the present invention as defined by the following claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations and equivalents will be evident to those skilled in the art and may be employed without departing from the spirit and scope of the invention as defined by the claims.