The present invention relates generally to internet communication, and more particularly to webpage browsing while in a real time collaboration session.
Online communications are an important collaboration technique for real time collaboration, which is also known as chat communications, and information sharing between individuals. In a real time collaboration, participants each participate on respective computers and communicate with each other through a network. Although chat sessions may include a large group of participants, chat sessions may consist of as few as two participants.
Chat sessions are utilized for a variety of different types of environments. For example chat sessions may be used for customer service support, business consultation, academic meetings, and more. These chat sessions provide a quick means to exchange information which may be difficult to exchange through more traditional avenues of real time collaboration. It is common for participants to discuss specific content, such as a webpage or document, in an online chat. In this scenario, a participant may send a uniform resource locator (URL) to the other participants in the chat session, and may focus the chat on a specific section of content in the webpage.
Embodiments of the present invention provide a system, method, and program product for webpage browsing synchronization in a real time collaboration session. Embodiments of the present invention provide a system, method, and program product for web browsing synchronization between computers. In a real time collaboration session including a plurality of computers in which a URL link is entered into the real time collaboration session, a first computer of the plurality of computers receives a request to access a webpage via the URL link. The webpage is displayed in a webpage browsing session on the first computer. The first computer receives information that one or more of the plurality of computers exclusive of the first computer requests to access the webpage. Each of the plurality of computers, exclusive of the first computer, synchronize a webpage in a webpage browsing session to the position of the webpage in the webpage browsing session of the first computer.
The present invention will now be described in detail with reference to the Figures.
Data processing system 100 includes participant devices 104, 106, and 108, a server computer 110, and a storage device 112 connected through a network 102. Participant devices 104, 106, and 108 may be workstations, personal computers, personal digital assistants, mobile phones, and other devices executing program instructions. A user interface 114 is located on the participant device 104, 106, and 108 and may exist in the form of operating system software, which may be Windows, LINUX, or other systems that include application software such as internet applications and web browsers. In describing exemplary embodiments, a real time collaboration may refer to an online chat session, internet meeting, and/or other forms of communication and collaboration over a network 102.
Participant devices 104, 106, and 108 include a shared webpage browsing program 200 for establishing a shared webpage browsing session. In this example, participant devices 104, 106, and 108 include a chat session initiation program 300 for establishing a real time collaboration session. In this example, participant devices 104, 106, and 108 include a change leader program 400 to change the leader of a webpage browsing session responsive to a participant determination. In this example, participant devices 104, 106, and 108 include a non-leader browsing program 500 allowing participants to browse the webpage and then resynchronize with the leader. Participant devices 104, 106, and 108 include a leader disconnect program 600 to assign a new leader to a webpage browsing session in the event that the leader disconnects from the webpage browsing session. Data processing system 100 may include multiple different forms of participant devices 104, 106, and 108, and is not limited to a single type of device or a defined number of devices. Participant devices 104, 106, and 108 may be, for example, a notebook, a laptop computer, a tablet computer, a handheld device or smart-phone, a thin client, or any other electronic device or computing system capable of communicating with server computer 110 through network 102.
The programs described in
In one embodiment, data processing system 100 is comprised of network 102 which provides collaboration between devices such as, but not limited to, a server computer 110, a storage device 112, and participant devices 104, 106, and 108. Network 102 may include connections such as wiring, wireless communication link, fiber optic cables, and other forms of communication. Network 102 may allow elements of data processing system 100 to access content through a plurality of methods, including the internet, an intranet connection, telecommunications service provider, local area connection, and others. Participant devices 104, 106, and 108 can access server computer 110, storage device 112, and other participant devices 104, 106, and 108 through network 102. Server computer 110 may host real time collaboration client programs and facilitate connections through network 102. Examples of server computer 110 include application servers, communications servers, database servers, and other servers. In an example, storage 112 can host content which is available through network 102. Storage device 112 is not limited to a single device from a single provider, and can represent multiple storage locations from a multitude of providers.
In the depicted example, a chat session occurs between two or more participant devices 104, 106, and 108, and may be facilitated by server computer 110 through network 102. Participant devices 104, 106, and 108 may access documents and URL links which may be located on storage 112 through the network 102. URL links and documents may be provided by and shared between participant devices 104, 106, and 108 through network 102. The software hosting the chat and its programs may be located on participant devices 104, 106, and 108, or server computer 110 where the software is accessed through the network.
A chat session is initiated when, responsive to a user input into a participant device, the participant device connects to an Internet Relay Chat (IRC) protocol enabled server computer. In some examples, the server computer may or may not be the same server computer as a server computer that enables web browsing. The IRC protocol enabled server computer establishes a channel in which participant devices are able to communicate. Other participant devices may join this channel, and the IRC server computer mediates the channel by passing messages to participant devices connected through the channel designated by the originating participant device of the message, which is responsive to an input of the associated participant. In integrated Hypertext Markup Language (HTML) chat sessions, the real time collaboration session is incorporated into the HTML frame. The participant device can display an HTML page with an embedded chat window, and can send messages back to the originating server computer when the messages are typed into the chat window. Other implementations of HTML chat sessions run with a chat window adjacent to a Web browser window, so that the chat and browser applications run independently of each other. Examples of HTML chats with chat windows adjacent to the Web browser window rely on participant interaction to achieve coordination between the Web browser and the chat window. In some examples, participant devices 104, 106, and 108 sign in to a chat service so that a connection is established, via a network 102, to the server computer 110. Once the participant devices 104, 106, and 108 are signed in to the chat service, a communication path is established between the participant and the chat service. The communication path can be any connection between the participant and the chat service, and need not necessarily be with a Web server. The participant who initiated the chat session may invite other participants to join utilizing participant devices. Participants choosing to join the chat session will be connected to all other participants, including the participant who initiated the chat session, through the communication path from server computer 110. In some examples, the communication path may exist in the form of a connection which may be done through TCP (Transmission Control Protocol), UDP (User Datagram Protocol), or other methods implemented by the IRC.
In some examples, shared webpage browsing program 200 facilitates a more productive discussion of documents and URL links while in a chat session. In current iterations of real time collaboration sessions, participants discussing a URL link are not automatically synchronized to the position of the participant who is leading the discussion. This means that it may be difficult to ensure that all participants are discussing the same portion of a webpage. In an embodiment, all participants in a webpage browsing session are automatically synchronized to the same section of a webpage. Therefore, the participants of the webpage browsing session will be viewing the same section of the webpage, which may lead to a more productive chat session. In an example, when the second participant enters a URL link into the chat session, the URL link is then available for all participants in the chat session to access. The action of a participant selecting the URL link in the chat session may be achieved by a participant clicking on the URL link in the chat session displayed on a participant device associated with the participant. The selection of the URL link by additional participants does not have to coincide with the participant that initially selects the URL link. In an example, a participant may select the URL link once the webpage browsing session has already been established. In this event, the participant device will automatically join the existing webpage browsing session. The activation of the URL link by a participant device can be performed in a plurality of ways. For example, if a Web browser is not active in the participant device when the participant device receives an input to access a webpage via the URL link, the chat client may launch the Web browser using the URL as a command line argument. In another example, if a Web browser is already active in the participant device when the participant device receives an input to access a webpage via the URL link, the chat client communicates the page request to the Web browser using any suitable interface protocol.
In other examples, shared webpage browsing program 200 may assign the leader in response to a prompt to all participant devices that access the webpage via the URL link, assign the participant device who accessed the webpage first to be the leader, or other forms of dynamically determining the leader. Also, in the event that the activation of a URL link leads to a webpage that requires participant login information, in some examples, each participant may use the information of each participant for authentication, and then each participant device is synchronized to the participant device that is determined to be the leader. In an example, during the webpage browsing session where the first participant device is established as the leader, the updated position of the leader is communicated to the other participants via a communication path established between the members of the webpage browsing session. The communication path exists between all participants in the webpage browsing session and server computer 110.
In an example, responsive to an input of a participant into a user interface of a corresponding participant device, a participant device signs in to a chat service, and establishes a connection via a communication path through a communications network 102 to server computer 110. The participant device then has the option to invite other participant devices to a chat session. Once invited participant devices join the chat session, the invited participant devices are connected to all other participant devices in the chat session and server computer 110 via a communication path through communication network 102.
In some examples, change leader program 400 allows the participants on corresponding participant devices to change leaders while each of the participants actively participate in a webpage browsing session. The request to change the leader in step 402 may be issued through a plurality of methods including, but not limited to: a participant device responding to an input by a participant, a participant device requesting to become the leader; the leader inviting a participant to become the leader, the leader leaving the webpage browsing session, or other methods. The prompt to determine a new leader may be achieved through, but not limited to: a prompt sent to all participant devices, a prompt sent to selected participant devices, an invite from the leader to a single participant device, or other methods. Change leader program 400 allows the leader of a webpage browsing session to be changed at the determination of the participants of the webpage browsing session. Change leader program 400 may not limit the webpage browsing session to having only one leader for the whole session. In some examples, multiple participants may have an expertise in different areas relating to the webpage being discussed in the webpage browsing session. With change leader program 400, the leader of the webpage browsing session may be changed to different participants when discussing different portions of the webpage in the webpage browsing session.
In some examples, non-leader browsing program 500 allows a participant in a webpage browsing session to navigate throughout the webpage on a corresponding participant device, and then resynchronize with the leader of the webpage browsing session. Non-leader browsing program 500 may not limit the participant to only view the portion of the webpage that the leader is viewing. In an example, a participant may want to reference a portion of the webpage which had been previously discussed. In this example, the participant may desynchronize from the leader, browse the webpage, and then resynchronize with the leader at the desire of the participant. The participant device may request and desynchronize from the leader through multiple methods including, but not limited to: choosing an option to desynchronize/resynchronize that is displayed on a user interface of the chat session, navigating to a portion of the webpage, or other methods.
In some examples, leader disconnect program 600 allows the webpage browsing session to continue in the event that the leader has to disconnect from the webpage browsing session for any reason. The indication of the leader disconnecting in step 602 may be the result of the leader leaving the webpage browsing session, an interruption in the connection of the participant devices associated with the leader, the participant device associated with the leader crashing, or other reasons. The prompt to determine a new leader may be achieved through, but not limited to: a prompt for all participant devices, a prompt to selected participant devices, or other methods.
Participant devices 104, 106, and 108, and server computer 110 may include respective sets of internal components 800 and external components 900 illustrated in
Each set of internal components 800 also includes a R/W drive or interface 832 to read from and write to one or more portable computer-readable tangible storage devices 936 such as a CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, optical disk or semiconductor storage device. The programs 200, 300, 400, 500, and 600 can be stored on one or more of the respective portable computer-readable tangible storage devices 936, read via the respective R/W drive or interface 832 and loaded into the respective hard drive 830.
Each set of internal components 800 also includes network adapters or interfaces 836 such as a TCP/IP adapter cards, wireless Wi-Fi interface cards, or 3G or 4G wireless interface cards or other wired or wireless communication links. The programs 200, 300400, 500, 600 can be downloaded to participant devices 104, 106, and 108, and server computer 110 or other computing devices from an external computer via a network (for example, the Internet, a local area network or other, wide area network) and respective network adapters or interfaces 836. From the network adapters or interfaces 836, the programs 200, 300, 400, 500, and 600 are loaded into the respective hard drive 830. The network may comprise copper wires, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
Each of the sets of external components 900 can include a computer display monitor 920, a keyboard 930, and a computer mouse 934. External components 900 can also include touch screens, virtual keyboards, touch pads, pointing devices, and other human interface devices. Each of the sets of internal components 800 also includes device drivers 840 to interface to computer display monitor 920, keyboard 930 and computer mouse 934. The device drivers 840, R/W drive or interface 832 and network adapter or interface 836 comprise hardware and software (stored in storage device 830 and/or ROM 824).
Programs 200, 300, 400, 500, 600 can be written in any combination of one or more programming languages, including low-level, high-level, object-oriented or non object-oriented languages, such as Java, Smalltalk, C, and C++. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). Alternatively, the functions of programs 200, 300, 400, 500, and 600 can be implemented in whole or in part by computer circuits and other hardware (not shown). Based on the foregoing, computer system, method and program product have been disclosed in accordance with the present invention. However, numerous modifications and substitutions can be made without deviating from the scope of the present invention. Therefore, the present invention has been disclosed by way of example and not limitation.