We present a lightweight collaborative web browsing system, which targets casual (non-technical) web users. This system allows remote participants to easily synchronize pointing, scrolling and browsing of uploaded content in their web browsers. Since instant messenging systems have become a very popular method for remote participants to engage in real-time text chat sessions, it is conjectured that this simple co-browsing system which allows remote participants to share and point at their pictures and web content (instead of just sharing text) could prove useful and fun, too. The collaboratively viewed web content could either pre-exist on a host web server or, in a more typical scenario, be dynamically uploaded by the remote participants themselves. A specific goal of this system is to keep the interactions extremely simple and safe. Any user should be able to use it intuitively with a single click; there are no pre-installation or pre-registration requirements. Most significantly, there is no reliance on any controls, applets, plug-ins or binary executables, since these would require the trust of participants and are virus-prone. It is the reliance upon such inconvenient helper programs, along with any pre-installation or pre-registration requirements, that makes existing co-browsing offerings more “heavyweight”, and limits their appeal for casual collaboration.
Web collaboration, synchronized browsing, shared web browsing, instant messenging, co-browsing.
The CWB (Collaborative Web Browsing) system allows multiple users, who are typically talking on the telephone, to synchronize their views of web pages. If any of the users in a collaborative session browses to a new page, scrolls, drags a shared pointer, or fills in a form on a page, then all of the other users will immediately see that change in their browser windows, too (see Figure 1).
As with instant messenging systems (AOL Instant Messenger [1], MSN Messenger [2]), CWB is intended for "casual" collaboration -- safe, immediate sharing of user content between arbitrary users (perhaps strangers). In ad hoc testing CWB has successfully been used between the east and west coast of the United States just as easily and about as well as on a corporate LAN. It has been used to collaborate on Microsoft Office documents that were saved as HTML, and was also used during technical paper presentations so that remote participants could join in. It has also been used while reading a web-based storybook to children across a cable modem to point to the current text position.
The philosophy for the interface was that the best user interface is no user interface. There is a small "pop-under" CWB Control Panel (shown on the left in Figure 1), but in most cases the user never even has to be aware that it exists. The system supports “one-click collaboration” in that users need only execute a bookmark/Favorite or click a button on a Welcome page to start collaborating in a default session. Users can join an existing session late or start a new session by simply entering any arbitrary Session ID string into the Control Panel. Multiple (parallel) sessions are supported, and a user may be a member of any of them at the same time. A user may also participate in the same session with multiple usernames, which is useful for debugging and fun to watch. By default a rainbow-colored collaboration pointer (Figure 2) is automatically created in the upper left corner of each frame, ready for dragging.
To keep the user interface simple and unobtrusive, the existence of this shared pointer itself indicates collaboration. The tip of the pointer flashes (with subtlety) to indicate an active session, and the color of the tip changes from green to red if any user has not received the latest change, yet. Therefore, for typical collaboration there is no new or special user interface to learn, so users aren't forced to divert their attention away from the content they are discussing. If desired, however, the Control Panel can be used to open a Session Status window (Figure 3), to open a File Upload window, or to co-browse to a directory listing of all files that have been uploaded so far for the current session.
On each user’s computer, plain JavaScript routines run in a small pop-under browser window loaded with the CWB Control Panel web page (as shown on the left in Figure 1). These routines monitor and relay all changes (such as scrolling, pointing, browsing, and character-by-character entry into form fields in each frame) which it periodically polls for in the shared collaboration browser window. The shared collaboration window is just a regular browser window (as depicted in Figure 1 displaying a map image). All communications are via simple HTTP requests and so work through firewalls. If security is a concern then HTTPS and/or a password-protected site can be used. Changes are relayed through a control program running on the host web server, currently implemented as a Java servlet [3]. By default, any user can make and receive changes at any time. That is, by default, everyone is a "Master" and a "Slave", though each user can dynamically turn on or off either role via the Control Panel. Change notifications from a Master are not honored unless that Master is caught up, so users can make changes at any time without resorting to distracting "turn-taking" mechanisms. Any polling errors, usually timing-related, are transparently handled via structured exception handling, and the system smoothly continues on the next poll.
So far, CWB has been implemented for the Internet Explorer browser versions 4 and later on Win32 platforms. To insure identical views, users are discouraged from changing browser attributes that modify the viewable space in the browser window (such as default font size and number of toolbars). Polling delays are typically under a second, which is considered acceptable for casual collaboration. CWB automatically recovers from temporary network outages. CPU usage may max out on systems under ~200MHz, but the system will still work - running as fast as it can.
To avoid disadvantages of existing co-browsing approaches (see Figure 4), CWB is based on a lightweight polling architecture and Dynamic HTML [4]. CWB also avoids intrusive mechanisms that might break the behavior of shared pages, such as proxy-based URL re-writing (CoWeb system [5]) or placing the contents of the shared page into a new container (IBM [6]). Similarly, since CWB uses polling rather than event-based change detection (WebVCR system [7]), the behavior of shared web pages is less likely to be affected, and even dynamically created content can be detected and shared.
Inspired by instant messenging systems, CWB provides a quick, simple and safe way for non-technical users to casually co-browse their content while avoiding the pre-collaboration and trust requirements of existing co-browsing offerings. Its' non-intrusive nature facilitates collaboration over existing web content without modification.