In collaborative browsing (co-browsing) sessions, it is common that one participant browses page(s) on a site using a first web browser, while other participants view the same page(s) on their own web browsers. As such, joint navigation of the site is possible. Typically, this is accomplished using client-side software or plug-ins that are installed on each client device participating in the co-browsing session. Often, one participant acts a host and performs the navigation, whereas the other participants are guests and merely view the host's navigation. As such the functionality is limited. In addition, co-browsing is difficult to implement due to the essential confidence requirements to share any real-time experience, and strong resistance provided by OS and browser security mechanisms. Co-browsing technology has many inherent challenges such as page personalizations or sites that require user authentication.
Disclosed herein are systems and methods for providing a fully interactive collaborative browsing (co-browsing) capability, and which displays web content in a method that conforms to the form factor and conventions of each participating computing device and web browser. In accordance with some implementations, there is provided a method for collaborative browsing within a session. The method may include receiving a connection to the web browser service from a first client device; receiving an indication to begin a co-browsing session, the co-browsing session including at least the web browser service, the first client device and at least one second client device; receiving connections to the web browser service from the first client device and the at least one second client device, the connections being made to the web browser service at an enumerated Uniform Resource Locator (URL) associated with the remote server; receiving, at a co-browsing service executing on the remote server, a request made to the web browser service from one of the first client device and the at least one second client device; sending the request from the co-browsing service to the web browser service; receiving, at the co-browsing service, a response to the request from the web browser service; and communicating the response from the co-browsing service to each of the first client device and the at least one second client device.
In accordance with some implementations, there is provided at method of collaborative browsing of a web browser service by a plurality of web browsers in a collaborative browsing session, each of the plurality of web browsers being associated with a respective client device. The method may include executing a co-browsing service on a remote access server; receiving, at the co-browsing service, a request for a resource associated with the web browser service, the request being made from at least one web browser of the plurality of web browsers in the collaborative browsing session and being communicated to a URL of the co-browsing service; forwarding the request from the collaborative browsing session to the web browser service; receiving, at the co-browsing service, a response from the web browser service, the response including the resource; and synchronizing, using the co-browsing service, a view of the web browser service at each of the plurality of web browsers such that each of the plurality of web browsers displays substantially a same view of the web browser service.
In accordance with yet other implementations, there is provided a method of establishing a co-browsing session to a web browser service using a co-browsing service executing on a remote access server. The method may include receiving, at an enumerated uniform resource locator (URL) of the co-browsing service, a connection from plural client computing devices to the web browser service; proxying, by a co-browsing proxy of the co-browsing service, a request made to the web browser service by one of the client computing devices; sending the proxied request from the co-browsing service to the web browser service; receiving a response to the proxied request from the web browser service at the co-browsing service; and communicating the response to each of the plural client computing devices.
Other systems, methods, features and/or advantages will be or may become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features and/or advantages be included within this description and be protected by the accompanying claims.
The components in the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding parts throughout the several views.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art. Methods and materials similar or equivalent to those described herein can be used in the practice or testing of the present disclosure.
Collaborative browsing (co-browsing) according to the present disclosure enables participants in a session to browse and interact with the same web pages at the same time. The participants may be in different locations using, e.g., web browsers on different types of computing devices. Web pages visited or information entered by a participant is automatically synchronized to the computing devices of the other participants.
In furtherance of the above, the present disclosure provides methods and systems for co-browsing where a co-browsing service provides both a co-browsing proxy and a co-browsing translator such that multiple heterogeneous clients can be synchronized within the same session.
The system 100 comprises two or more client computing devices, which may be a translation non-enabled device 108 or a translation enabled device 110, or any combination thereof in accordance with type of browser that is executing on the device. The “translation” feature of the present disclosure is described below with regard to a co-browsing translator 106. Examples of the translation non-enabled device 108 may be any computing device running a conventional web browser 109. A translation enabled device 110 may be any device that includes a remote access web browser 111 that communicates with the co-browsing translator 106 at a remote access server 104. Such a remote access web browser 111 includes a client application (either native to the remote access web browser 111 or supplied as a plug-in/separate application on the translation enabled client device 110) that is capable of consuming state information contained in a state model 400, described below with regard to
The remote access server 104 is connected to the network 112 and includes a co-browsing proxy 105 and the co-browsing translator 106. Together the co-browsing proxy 105 and the co-browsing translator 106 make up a co-browsing service 107. The co-browsing proxy 105 may be provided by a server remote access application to marshall requests and responses between the web browser service 103 and the client devices 108 and 110 to provide a synchronized view to participants in a co-browsing session of the web browser service 103.
The co-browsing translator 106 provides for receipt of requests from the remote access web browser 111 and refactoring (i.e., translation) of presentation data associated with responses from the web browser service 103 in accordance with a display area of the translation enabled device 110 to present a device-appropriate view. Presentation data is a rendered view of the visual state of the web browser service 103 that is displayed by the remote access web browser 111 on the translation enabled client device 110. In accordance with the present disclosure, the presentation data associated with, e.g., a response from the web browser service 103 may be refactored, i.e., translated, to accommodate the various possible display areas of the translation enabled device 110 that may participate in the co-browsing session. The co-browsing translator 106 operates based on display information contained in the state model 400, which is described below in greater detail with regard to
The application server 102 is connected to the network 112 and may be any server capable of executing applications, such as the web browser service 103. Although not shown, remote access server 104 may function as an application server, such that the web browser service 103 executes on the remote access server 104. The application server 102, remote access server 104, translation non-enabled device 108 and translation enabled device 110 may be implemented using hardware such as that shown in the general purpose computing device of
In
As shown, a request for a resource (e.g., a document, media file, information, dynamically-generated query result, server-side script output) may be made by either (or both) of the web browser 109 and the remote access web browser 111 over the network 112. The request may be an HTTP request that is communicated to a Uniform Resource Locator (URL) associated with the co-browsing service 107 and, depending on the originating device, is directed directly to the co-browsing proxy 105 (for the translation non-enabled device 108) or directed to the co-browsing translator 106 (for the translation enabled device 110) (flow 1). In the later, the request may be forwarded to the co-browsing proxy 105. The web browser 109 and remote access web browser 111 may send a complete URL of the web browser service 103 in the request to the co-browsing service 107.
The co-browsing proxy 105, in turn, opens a connection (e.g., an HTTP connection) to the requested URL (i.e., the enumerated URL of the web browser service 103) and makes the request on behalf of the sending of device (flow 2). Alternatively, the connection may be a socket connection. As shown, the request is communicated over a direct connection between the co-browsing proxy 105 and the web browser service 103. Next, the web browser service 103 sends a response, which is communicated back to the co-browsing proxy 105 (flow 3). The response may be an HTTP response that includes the requested resource from flow 1. As shown, the response is communicated over a direct connection between the co-browsing proxy 105 and the web browser service 103.
Next, in accordance with the type of device (e.g., translation enabled or translation non-enabled), the response is either forwarded by the co-browsing proxy 105 to the translation non-enabled device 108 or by the co-browsing translator 106 to the translation enabled device 110 (flow 4). In the former instance, the response and the requested resource is provided to the web browser 109, where it is rendered for display. In the later instance, the response and the requested resource is processed by the co-browsing translator 106 to generate presentation data, as described above, which is appropriate for the display of the associated translation enabled device 110. As such, participants at each device will see a synchronized view of the web browser service 103.
With regard to
At 306, an invitation(s) is sent to the other participant(s) to join the co-browsing session. The invitation may be sent as a link to an enumerated URL associated with the co-browsing service 107. The link may be communicated in an email, SMS message, or other form of electronic communication. At 308, the invited additional participants join the co-browsing session at the enumerated URL. For example, invited participants may enter the enumerated URL into a respective web browser 109 or remote access web browser 111 of the invited participant(s) depending on the type of device used by the invited participant(s).
At 310, a request made by a participant to the web browser service 103 is proxied by the co-browsing proxy 105. The co-browsing proxy 105 intercepts requests from the web browser 109 and the remote access web browser 111 (via the co-browsing translator 106). At 312, the co-browsing proxy 105 sends the proxied request to the web browser service 103. The co-browsing proxy 105, after receiving the request, opens a connection to the enumerated URL of the web browser service 103 and makes a HTTP request to the web browser service 103.
At 314, the web browser service 103 sends a response to the co-browsing proxy 105. At 316, if the response is to be sent to a device running a remote access web browser 111, presentation data associated with the response is generated by the co-browsing translator 106. Here, the response may be translated to a device-appropriate view for display, as noted above. At 318, the presentation data associated with the response is communicated to each of the participant(s) utilizing translation enabled client devices 110 in the co-browsing session. At 320, if the response is to be communicated to a device running a web browser 109, the co-browsing proxy 105 sends the response directly to the web browser 109. As such, each type of device in the co-browsing session will present a synchronized view of the web browser service 103.
The operation of a co-browsing service 107 with the remote access web browser 111 is performed in cooperation with the state model 400, as illustrated in
Upon receipt of application data from web browser service 103, the co-browsing service 107 updates the state model 400 in accordance with the screen or application data, generates the presentation data in accordance with the updated state model 400, and provides the same to the. The state model 400 comprises an association of logical elements of the web browser service 103 with corresponding states of the web browser service 103, with the logical elements being in a hierarchical order. For example, the logical elements may be a screen, a menu, a submenu, a button, etc. that make up the web browser service 103 user interface. This enables the client device, for example, to natively display the logical elements. As such, a menu of the web browser service 103 that is presented on a mobile phone will look like a native menu of the mobile phone. Similarly, the menu of the web browser service 103 that is presented on desktop computer will look like a native menu of the desktop computer operating system.
The state model 400 may be determined such that the logical elements are associated with user interactions. For example, the logical elements of the web browser service 103 are determined such that the logical elements comprise transition elements with each transition element relating a change of the state model 400 to one of control data and representation data associated therewith.
Thus, the system 100 may be used to provide for collaborative browsing (co-browsing) of the web browser service 103. Additionally, a plurality of different participants can provide shared media, which may be simultaneously displayed by the participant devices. As noted above, the user interfaces of the present disclosure may be presented on any type of translation enabled device 110 participating within the co-browsing session based on information contained in the state model 400.
In some implementations, users co-browsing within the system 100 may be interacting with plural web browser services. Accordingly, the present disclosure may provide for recombination of the web browser services, where the web browser services are seamlessly integrated into the same user interface that is presented on each of the translation enabled devices participating in the co-browsing session. Recombination may be provided based on information contained in the state model 400. Thus, functionalities and controls associated with the web browser services may be combined within the same user interface.
Numerous other general purpose or special purpose computing system environments or configurations may be used. Examples of well known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network personal computers (PCs), minicomputers, mainframe computers, embedded systems, distributed computing environments that include any of the above systems or devices, and the like.
Computer-executable instructions, such as program modules, being executed by a computer may be used. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Distributed computing environments may be used where tasks are performed by remote processing devices that are linked through a communications network or other data transmission medium. In a distributed computing environment, program modules and other data may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computing device 600 may have additional features/functionality. For example, computing device 600 may include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in
Computing device 600 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by device 600 and includes both volatile and non-volatile media, removable and non-removable media.
Computer storage media include volatile and non-volatile, and removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Memory 604, removable storage 608, and non-removable storage 610 are all examples of computer storage media. Computer storage media include, but are not limited to, RAM, ROM, electrically erasable program read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 600. Any such computer storage media may be part of computing device 600.
Computing device 600 may contain communications connection(s) 612 that allow the device to communicate with other devices. Computing device 600 may also have input device(s) 614 such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 616 such as a display, speakers, printer, etc. may also be included. All these devices are well known in the art and need not be discussed at length here.
It should be understood that the various techniques described herein may be implemented in connection with hardware or software or, where appropriate, with a combination of both. Thus, the methods and apparatus of the presently disclosed subject matter, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the presently disclosed subject matter. In the case of program code execution on programmable computers, the computing device generally includes a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. One or more programs may implement or utilize the processes described in connection with the presently disclosed subject matter, e.g., through the use of an application programming interface (API), reusable controls, or the like. Such programs may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. However, the program(s) can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language and it may be combined with hardware implementations.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
This disclosure claims priority to U.S. Provision Patent Application No. 61/683,337, filed Aug. 15, 2012, entitled “METHODS AND SYSTEMS FOR COLLABORATIVE BROWSING AND REMOTE APPLICATION SHARING;” and U.S. Provisional Application No. 61/683,346, filed Aug. 15, 2012, entitled “METHODS AND SYSTEMS FOR COLLABORATIVE REMOTE APPLICATION SHARING AND CONFERENCING WITH OPTIONAL CO-BROWSING.” Each of the disclosures of the above-noted applications is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61683346 | Aug 2012 | US | |
61683337 | Aug 2012 | US |