A Synchronous Collaboration Tool for World-Wide Web

Tak K Woo, Michael J Rees

Distributed Systems Technology Centre

The University of Queensland, Queensland 4072,

Australia


Abstract

In many situations, once information has been retrieved from the World-Wide Web, users need to contact the information provider for further details or queries about the information. It may be necessary for several users to communicate in the same time frame and have coordinated access to the same World-Wide Web pages. To support this need, the Yarn synchronous collaboration tool has been added to the World-Wide Web to operate in conjunction with the Mosaic browser.

Yarn is an existing electronic meeting system which had been ported to work with Mosaic. When linked to the World-Wide Web, the Yarn client and server processes combine to provide a service called Yarn Web, which appears as a separate window on the X display. Yarn Web features:

World-Wide Web Connection
Yarn Web provides a fixed entry point to the Yarn server via a HTML form for users to join one of the meetings in progress.
Meeting Logs Retrieval
Meeting logs are generated for every meeting by the Yarn server and are stored in HTML format files. An index file is also generated which links to all meeting logs, both for current and previous meetings. Users are able to browse through logs of meetings in progress with the option to join any meeting from Mosaic.
Common Document Display
The meeting chairperson can trigger the display of the same World-Wide Web document at each participant's Mosaic screen, so that the discussion can centre on the information in that document. Also participants can add their own notes into the document via the annotation feature in Mosaic. A number of different mechanisms have been tried to achieve this synchronisation of document display and are discussed in the paper.
Since its introduction in May 1994, Yarn Web has been extensively used by project members and throughout our research organization. This paper describes the design process of integrating Yarn with the World-Wide Web, and discusses the end product in the light of some initial experience with the electronic meeting system. The limitations of the HTTP protocol for real-time user interaction purposes are also discussed.

Introduction

For more than a year, the project entitled `Distributed User Interfaces: Synchronous Collaboration' within the Centre for Distributed Systems Technology (DSTC) has been developing the Yarn text-based electronic meeting tool [1]. Yarn uses the BSD socket interface to implement a distrib uted electronic meeting environment. Users can join the meeting via a standard Telnet client application which runs on virtually all machines supporting TCP/IP, or via other graphical user interface (GUI) clients running on X Windows and Windows NT workstations.

In its initial, central-server form, the Yarn system has proven to be a successful tool for group meetings of research personnel, and for open discussions on a range of topics of interest to people working together as reported in [3]. Although it is a straightforward text-based system requiring the users to type all comments, Yarn has proved very effective for the day-to-day communication of small amounts of valuable information such as file names, email addresses, appointment scheduling details, contact information, requests for action, short decisions, and so on.

Some of the next developments in the project are to investigate if this success will hold true when meetings are held between more loosely grouped colleagues, or between complete strangers who invited to join the electronic meetings. Because of the growing popularity of the World-Wide Web [14], it seemed sensible to investigate whether Mosaic could be exploited by the Yarn electronic meeting system to reach out to a wide range of users on a wide range of workstation platforms. When Yarn was converted to operate with the World-Wide Web it became known as Yarn Web. The outcomes of this investigation with Yarn Web are discussed in the remainder of the paper.

Yarn Web Requirements

At the start of the conversion process, it was envisaged that each Yarn Web meeting be a single World-Wide Web document that shows the log of the conversation as it develops. The users would be able to enter their own remarks in a separate field displayed next to the meeting conversation log. Accessing a meeting document, with appropriate access controls in place, would, in effect, allow the user to join a meeting.

Based on previous experience with Yarn, five primary requirements were set for the design of the Yarn Web system:

  1. World-Wide Web connection
    provide a fixed entry point from a document in the World-Wide Web for users to join a meeting using an appropriate browser, preferably Mosaic.
  2. Meeting within the browser
    users should be able to join in and converse in real-time with other participants within the browser.
  3. Logs retrieval
    meeting log files should be retrievable from the World-Wide Web using a index file with a hypertext link to each meeting log file. Once displayed, the meeting log file can be saved and/or printed in the usual way.
  4. Common document display
    under the control of a chairperson, every participant in the meeting should be able to view and annotate the same document, while discussion is centred on information contains in the document.
  5. Compatibility
    the Yarn Web application must work with unmodified World-Wide Web servers and browsers.
Such a set of features would provide a distributed electronic meeting system on a world-wide basis.The availability of Mosaic on three widely-used systems, X Window, Macintosh and MS Windows, would provide a true multi-platform capability. Existing Mosaic functionality would be exploited to the full.

At the outset of system design, it was obvious that requirements 1 and 3 could be easily met, since they mirrored features already present on the World-Wide Web and incorporated into the Mosaic browser. Taken requirement 5 into consideration, requirements 2 and 4 were to prove to be the main challenge.

Web Limitations and Interim Solutions

The HTTP servers use the HyperText Transfer Protocol [ 4] (HTTP) which is designed to be a stateless protocol. The one-directional request mechanism constrains the HTTP server to become a passive participant in any transaction between the user and the browser. Unless the browser transmits a request, the server has no way of changing the contents of the file being displayed by the browser. This mechanism might work well when displaying static hypertext documents, but it is not sufficient when significant interaction in both directions is required. The provision of Fill-Out Forms in some browsers d oes allow a limited form of two-way interaction, and was exploited to the full in the Yarn Web project.

To meet requirement 2, the server should update each participant's meeting conversation area whenever a user adds further remarks to the meeting. Only the server can detect when new remarks become available, but these events cannot be transmitted to the browser. This limitation makes real-time conversation within a World-Wide Web browser such as Mosaic almost impossible.

A solution was developed to circumvent this problem by taking advantage of the remote display feature limited to the X Window version of Mosaic. This led to Mosaic for X Window 2.4 being selected as the World-Wide Web browser for Yarn Web. In addition, this version of Mosaic offers full support for meeting participant input via Fill-Out Forms [ 7].

For the display of common documents, requirement 4, other solutions are also needed. This is because the HTTP server cannot initiate a request for the browser to load the document specified by a particular Universal Resource Locator [ 6] (URL). Two mechanisms were developed to work around this limitation. The first solution uses a static URL with dynamic content, while the second method uses the Remote Control [ 8] facility of Mosaic for X Window.

Yarn Web Implementation

The conversion of Yarn to Yarn Web was implemented in three parts:
  1. Generation of meeting log files in HTML format linked from an index file.
  2. Provision of an entry point for users to connect to meetings via Mosaic for X Windows.
  3. Common URL document display on the workstations of all meeting participants.

HTML Log Generation

In the original Yarn server, a new meeting log file is created for each new channel (a channel corresponds to a separate meeting), and lines of remarks are appended to the log file as the meeting progresses. Although Mosaic can display ASCII text files, the Yarn log system was modified to generate log files in HTML [5] format together with a new entry in an index file of meeting logs. The index HTML file is composed of an appropriate header and a list of hypertext links to all previous and current meeting log files.

This facility allows any user with appropriate access permission to consult the logs of all past meetings, and the logs of all meetings in progress to the point at which the user elects to view the log. Of course, once the log has been retrieved from the World-Wide Web server, no further updates will take place until the user explicitly requests them by clicking on an `Update Log' button. However, this facility of consulting the log of a meeting in progress is a valuable new feature which was not present in the original Yarn system.

Entry Point For Connection via Mosaic

The meeting connection facility of the Yarn Web system is built around the remote display capabilities of the X Window System. A `Opened Channels Connection' page, as shown in Figure 1, is generated when the Yarn Web server is started. This page is dynamically updated as each meeting channel is opened and closed. The channel names appear at the top of the page as hypertext links.

Figure 1: Opened Channels Connection Page

To join an existing meeting, a user first accesses the ` Opened Channels Connection' page from Mosaic as shown on Figure 1. Through the hypertext links at the top of the page a user can browse through the logs of meetings in progress. Having inspected the log, the user can proceed to join a channel. The connection procedure is illustrated in Figure 2.

Figure 2: Yarn Web Login Process

First the users fills in the local X server display IP address and selects a meeting channel as shown on Figure 3. When the user clicks the `Submit' button, the form contents are sent back to the HTTP server which passes the form contents on to the form query process called Yarn-query. Yarn-query responds to the request for connection and forks a new process to execute the Yxsimp X Window Yarn Web client on the Yarn Web server machine. To avoid overloading this machine, a limit of 20 is currently imposed on the number of simultaneous Yxsimp users.

Yxsimp sends a connection request to the Yarn Web server which connects the user to the meeting channel. The user then participates in the meeting using the Yxsimp window. A screen capture of Yxsimp is as show on Figure 3.

Figure 3: Screen Capture of the Yxsimp Application

Because of the relatively high bandwidth required for interacting with an X Windows application on a remote display, Yxsimp was designed to be a minimal version of a Yarn X Windows client. The goal was to create a fully functional client which uses a minimum number of Motif widgets.

Common Document Display on Clients

To support the display of a common document in Mosaic, four additional commands were added to the Yarn server. These commands are listed on Table 1.
-------------------------------------------------------------------
Command		Argument	Description
addurl		URL		Add a URL to the numbered list 
				stored in meeting
addurl		n		Delete a URL from the numbered list
delallurl	NONE		Delete all numbered list of URLs
				stored in meeting
doc		NONE		Display all numbered list of URLs 
				stored in meeting
doc 		n		Load URL corresponding to n in the 
				list on all client's machine
 				with Mosaic
doc		URL		Load specific URL on all client's 
				machine with Mosaic
--------------------------------------------------------------------
Table 1: New Yarn Commands for Common Document Display

Each meeting channel maintains a list of URLs which can be loaded for common view during a meeting. A chairperson can use the addurl, delurl and delallurl commands to edit URLs in the list. The doc command is used for listing all URLs stored on the list or to load a document by specifying its URL or numeric order in the list. Two mechanisms were developed to display common documents. At first a static HTML file is created with a hypertext link to the designated URL. Users are notified of the loading of new document from Yarn Web by a message as follow:

LOG: Load Document - http://coral.it.Bond.edu.au:91776/reesm.html
User can then reload the static link page to find the hypertext link to the latest common display document. Although this solution works for all users, each reload of a document will require at least three mouse clicks: This method obviously relies on the cooperation of all users to click the right buttons. If any user fails to complete the click sequence, then their display will not mirror that of other users. Such a solution is clumsy and unreliable, and force a search for a superior method.

An alternative solution was developed to eliminate the three clicks process. In this implementation, when a doc command is issued for the first time, the Yxsimp client will fork a new process and run Mosaic to display the designated URL on the client's workstation. The reloading of URL is done using the Remote Control feature in Mosaic for X Window. Yxsimp notifies Mosaic to load another URL by sending a SIGUSR1 signal, Mosaic then looks into the file /tmp/Mosaic.pid and find the new URL to be loaded. This process is illustrated on Figure 4.

Figure 4: Yarn Web Common Document Display Process

The only drawback of this system is for users that connect from the World-Wide Web Yarn Web login page, their Mosaic application is run on the same remote machine as the HTTP server. This has proven to be unresponsive for users on slow Internet links. Instead, Users are recommended to download Yxsimp client and run it from their local workstation.

User Experience with Yarn Web

The original version of Yarn with the various clients described in [1] has been in use for over a year as a research project communication tool. Many ad-hoc and regular meetings have taken place using Yarn. In addition, members of the research project connect on a daily basis to a named meeting channel, and remain connected during working hours. In this way, Yarn plays a valuable part in real-time communication between project members. The wide range of uses are to be documented in a forthcoming paper.

When Yarn Web first became available, project members immediately switched to using it without difficulty, as all but one person was connected via X Window terminal windows. A few weeks' use was sufficient to verify the stability of Yarn Web.

The announcement of the availability of the Yarn Web system was posted to the Internet on 23 May 1994. Postings were made to four newsgroups, namely comp.groupware, comp.wais, comp.www and comp.gopher. From the HTTP log, the download request to connection ratio is around 2:1, ie more users will take a look at the information about the connection than will proceed to attempt a connection to the Yarn server. Such a low request to connection ratio is most likely due to the majority of users running a World-Wide Web browser on workstations without X Window display capability. It appears that the most frequent connections come from users running a Macintosh client. These users can still connect to Yarn but must use a Telnet connection method instead.

Another interesting phenomenon is the increase in HTTP traffic that the local server must field when such an announcement is made. Compared with the previous 96 days since the HTTP was installed, there was a 400% increase in HTTP server requests after Yarn Web was announced.

For the common document display feature in Yarn Web, the Mosaic by Remote Control implementation has proven to be a significantly better solution than the original method. The main reason is that the loading of URL is automatically handled by Yxsimp, while the original method required three mouse clicks to display a document.

Some of the users who have tried Yarn Web have sent in comments. A number have the intention of utilising Yarn for distance education purposes. Indeed, Yarn seems perfectly suited to the idea of a virtual classroom as discussed in [ 15]. Currently, Yarn is being used as a backup query line for courses teaching Unix and C and Object Oriented Programming.

Future Extensions

The current attempt at integrating Yarn with Mosaic is only a first step towards the final goal of integrating synchronous cooperation tools into Open Distributed Systems. Future extensions will address areas such as:

The major limitation on the client side of Yarn Web is its full dependency on the X Window System for running the Yxsimp GUI client application. The ideal situation would be where the whole meeting interaction can take place within a single Mosaic screen, allowing users to join a meeting from other Mosaic clients running on MS Windows and the Macintosh and using their native UI presentation managers.

The immediate development plan is to extend Yarn Web as a synchronous cooperation tool by adding the support of a shared whiteboard. Shared whiteboards provide a common drawing space for display of graphics details within a meeting context. Investigations are also under way for multimedia support of voice and eventually true video. Many other uses of the World-Wide Web could exploit such facilities and the arrival is confidently expected in the near future. Eventually the existing text-based interaction provided by Yarn will become the backup system used only in low-bandwidth situations.

Maintaining the original client-server model, the next revision of the Yarn server will be implemented with OSF DCE RPCs replacing the BSD sockets used in the previous versions. This architectural change in the server moves Yarn into a proper Open Distributed System model. Meeting servers will no longer run on fixed host machines. At run-time, Yarn clients will look up and connect to the available meeting servers by employing the DCE Cell Directory Services (CDS) thus removing Yarn's dependency on the existence of specific hosts and port numbers.

Conclusions

Yarn Web, the World-Wide Web extension of Yarn, provides an entry point to join an electronic meeting from a Mosaic browser. It also provides an easy way of retrieving logs from past and ongoing meetings. All Internet users can inspect existing channel logs and choose to connect to the discussion as they wish.

Provision of a common document display facility is a considerable addition to the original Yarn. It allows large quantities of textual and graphics information to be presented to all users during a meeting. Meeting participants can load up relevant information in HTML format and share this with others via Yarn Web. This method is particularly useful for sharing existing URLs between participants. Mosaic personal annotation also allow notes to be annotate into documents.

Obviously, the main intention of Mosaic is for one-way retrieval of information with limited interactions. The lack of two-way request support in the HTTP protocol has proven to be the major obstacle in the full platform-independent implementation of Yarn Web. Until major changes are made in the HTTP protocol to address this shortcoming it will not be possible to further integrate Yarn with Mosaic clients on a full range of native user interface platforms, other than using X server software on those platforms.

The work-around solution of using the X Window remote display capabilities works well for users within Australia. Due to the high bandwidth requirement for X, however, users connecting from other countries do not get satisfactory response on Yxsimp with heavy network traffic. This situation might be improved with the introduction of the Low Bandwidth X Protocol (LBX) in later releases of the X Window System [11].

Acknowledgement

The authors are grateful to Melfyn Lloyd, Research Director of the Distributed Systems Technology Centre (DSTC), for his original ideas concerning Yarn Web. This research work is done as part of project T2, Distributed User Interfaces: Synchronous Collaboration at the DSTC, Queensland, Australia.

References

  1. Rees, M, Iannella, R, Lee, A, Smith G & Woo, T, Spinning a Yarn: User Interfaces for Synchronous Remote Electronic Meetings, Proceedings of OZCHI93, pp 42­58, 1993.
  2. Rees, M, Smith, G, Lee, A & Woo, T, Yarn: Text-based electronic meeting tools in a distributed environment, Computational Support for Distributed Collaborative Design Workshop, University of Sydney, pp 3­20, 1993.
  3. Rees, M, Experiences with User Interfaces for a Simple Telemeeting Tool, Proceedings of QCHI94, Bond University, pp 43­48, 1994
  4. Berners-Lee, T, Hypertext Transfer Protocol, ftp://info.cern.ch/pub/www/doc/http-spec.ps.Z, November 1993.
  5. Berners-Lee, T, Hypertext Markup Language, ftp://info.cern.ch/pub/www/doc/html-spec.ps.Z, July 1993.
  6. Berners-Lee, T, Uniform Resource Locators, ftp://info.cern.ch/pub/www/doc/draft-uri-url-02.ps.Z, January 1994.
  7. NCSA, Mosaic for X version 2.0 Fill-Out Form Support, http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html, 1994
  8. NCSA, Using Mosaic by Remote Control, http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/remote-control.html, 1994
  9. Danzig, P and Obraczka, K and Li, S, Internet Resource Discovery Services, IEEE Computer, pp 8-22, September 1993.
  10. Berners-Lee, T, Cailliau, R and Secert, A, The World-Wide Web Initiative, INET 93 Proceedings, 1993.
  11. Gildea S, X Window System, Version 11, Release 6, Release Notes, X Window Distribution Documentation, pp 29-30, April 1994.
  12. Heller, D, X11R6 - an Overview, The X Journal, Vol 2, No 6, pp 28-32, July 1993.
  13. Katz, E, Butler, M and McGrath, R, A Scalable HTTP Server: The NCSA Prototype , 1st International Conference on the World-Wide Web Proceedings, May 1994.
  14. Pitkow, J E and Recker, M, Results From The First World-Wide Web User Survey , 1st International Conference on the World-Wide Web Proceedings, May 1994.
  15. Dimitroyannis, D A, Virtual Classroom: A Case Study, 1st International Conference on the World-Wide Web Proceedings, May 1994.


The work reported in this paper has been funded in part by the Cooperative Research Centres Program through the Department of the Prime Minster and Cabinet of the Commonwealth Goverment of Australia