Blueprints

Byron Long, byron@dgp.utoronto.ca
Dynamic Graphics Project
Department of Computer Science
University of Toronto
Last Modified: February 27, 1996 (7:00 PM EST)

Introduction

From the beginning the Internet has always been envisioned as a tool for retrieving information; the first protocols developed were intended for the exchange of files. These protocols however were usurped to support another function - communication between individuals. The initial file transfer protocols were re-engineered to provide electronic mail support and remote-access protocols (Telnet primarily) were used to access programs designed to allow people to communicate with one-another in real time. It has been these applications of the Internet, rather than the originally intended ones, that have drawn so many to the global network in the past few years.

A new method of information retrieval has recently become immensely popular. Known as the World-Wide Web, its popularity comes not from the elegance of its implementation, nor its speed, but rather from the engaging graphical interfaces of the various browsers that are available to navigate it.

Nearly all the growth of the Internet can now be associated with the growth of the Web, with an ever-increasing proportion of the information available on the Internet becoming accessible through the Web. The simplicity of the browser interfaces mean that all ranges of Internet experience can be seen among its users, and by offering a uniform interface to many different data sources, there stands a good chance that graphical web browsers will become the exclusive means of access to the Internet.

With regards to access of information, this is a promising trend; however, when considering communication between individuals, such browsers leave a lot to be desired.

As an individual browses the web, they encounter others only as authors of the information they browse, or as contributors of commentary to the information. Although many people may be reading the same information at the same time, they are completely unaware of one-another's presence. Rather than the model of communication between peers usually associated with electronic mail, real-time electronic chatting or multi-user simulated environments, the model supported by most interactions on the web is that of presentation and feedback, where there is a distinct difference between the status of the participants.

With the realization that web browsers will become the primary means of navigating the Internet, a tool supporting a more equitable basis for communication between individuals seems to be required. Such a tool should be able to give an awareness of others while browsing - showing those accessing the same information, perhaps indicating a commonality of interest. Further, in order to capitalize upon this awareness, it is necessary to allow communication between these people to allow them to discuss their shared interest, and to forge longer-term relationships. With the ability to communicate, it is possible that a sense of community might form, centered around a particular topic, or a specific meeting place.

For such a community to be stable, it must be possible to leave persistent artifacts - to relay some of the history of community. This requires asynchronous communications tools in addition to the real-time tools used to communicate with those who are present at the same time. Considering the relatively small amount of time people are likely to spend at any one information resource, the ability to communicate asynchronously is considerably more important than it might be in a community where its members are more likely to be together. The ability to communicate in real-time is still important, despite the necessity of asynchronous tools, because it allows the members of a community to meet one-another and form the community itself.

It is this need that Agora is designed to fulfill. It provides both real-time and asynchronous communications within the information pages of the World-Wide Web. It is designed to assist formation of Internet communities by providing the ability to determine who else is browsing and information space of interest, to communicate with them in real-time, to view who has recently come and gone, to read and post messages of interest to the community and to send and receive personal messages from others in the community.

Although real time communication based on Web page browsing has been supported by a number of tools, most notably Sesame from Ubique, Inc., they have not generally been successful in maintaining a stable community. Ubique's product, for instance, is a significant undertaking, but has not been generally adopted and only supports a small number of communities.

Sesame's problems may have stemmed partially from it's excessive price, it's lack of integration with standard browsers, or perhaps it's acquisition by America Online. But probably most significant, from the point of view of an ongoing virtual community was it's ephemeral nature; at most one screen of text was displayed, and most communication was through a real-time audio connection. Without asynchronous tools, the community could only be built while a significant proportion of members were present, thus limiting its size and its strength.

Overview

Functionality

The primary purpose of the Agora client is to support identification of other visitors to a web page and real-time communication between them. Currently, this communication is restricted to being text-based, with each participant being able to send phrases to either everyone present, a small group of people or an individual. In addition to text phrases, it is possible to 'perform' actions by having a description of the action relayed to the other participants. Currently a discrete set of actions is supported, but the ability to customize the set of actions or to create arbitrary actions on the fly is possible with modification.

In addition to the real-time communication, there are several functions that support a sense of community history within the system including a list of recent visitors, a 'bulletin board' for the posting of news, and private Email boxes. The list of recent visitors provides a limited history of the participants in the community, and provides a way to determine the attributes of a user who is not currently present or to send them Email. This offers an advantage over most real-time communication systems with respect to coordinating a meeting within the system. Most systems give no indication as to whether another user has already left or has not yet arrived, and do not allow messages to be sent to users who are not present. The bulletin board allows messages of general interest to be posted and for long-term open discussions to take place. The news and discussions may augment the content of the web page the community is attached to or may be relevant to the community itself. In either case it enhances the perception of community stability - it shows that there have been interested community members for some length of time. Finally the ability to send and receive Email allows relationships with other individuals to be pursued without requiring constant coordination of real-time meetings. By default such mail messages would be received when the system they originated from is re-visited, but the ability exists to have a notification message sent, or to have the mail routed directly to a user's Email address. In future, it may be possible to send on the mail and handle replies without giving either party the actual Email address of the other. By having both parties send their mail through the Agora server, it would not be necessary exchange addresses. This allows for some real-world anonymity despite active participation within the Agora community.

Interface

The Agora client is designed as a Java-based applet which can be inserted into any Web page. If it is placed in a separate frame, it can remain static while the Web page it is associated with is scrolled or changes, although it can reside within a scrolling Web page when desired or when frames are not supported. Because of the small size of the applet, and because spawning a large number of windows would cause the browser to be obscured, it was important to allow all the major features of the client to be visible in a limited space. The client has two states; a login and user profile editing state and a communications state. Until the user logs in, they are locked into the former state, after which the interface moves into the latter, and remains so unless they choose to modify their profile.

When the communications mode is active, the current thread of real-time conversation is displayed, along with a field for the user to type phrases to be sent to others. In addition, there are controls for sending actions and for sending a message to a restricted set of people. In the remainder of the window is an area which can be set to display a range of information, defaulting to a listing of the current visitors to the page. The other 'pages' of information include a list of people who have recently visited the site, a list of Email messages addressed to the user, a listing of the 'bulletin board' articles, a display of the current message or news article, and a profile of the currently selected user, if any. The latter two can be set to be in separate windows if so desired, to minimize flipping between pages.

The paged design allows access to many functions within a small space, while the constant presence of the real-time conversation window allows a user to join the ongoing conversation at any time without interrupting the task they are currently engaged in. Because participation in the real-time conversation is time-critical, and because the conversation itself is ephemeral, it is important that it not be obscured, should it prove to be of interest to the user. The other functions of the system are not time-critical, and can safely be hidden when not needed.

Architecture

The Agora system follows a client-server model of networking. The Agora client, designed to run within a Web browser, communicates with the Agora server, which runs on the Web server hosting the page on which the client resides1. The server then propagates any relevant messages to the clients currently connected to the server. The communication between client and server takes place through a socket interface, available on any machine with Internet access. The server is implemented as a Unix C program, derived from the yabbs server by Alex Wetmore. It manages the mail and news for the pages supporting the client. Note that although all the pages are managed by the same server, unless they specifically use the same news base, the mail and news for each page is kept separate from the other pages. In addition, it manages the real-time communication channels for each user and maintains the user profile. Once a client logs into the server, the server ensures that all appropriate messages are send to the client, and handles any commands used by the client.

The client is written as Java applet, which allows it to be sent from the Web server and to be executed on the user's machine without any worry of the programming getting access to confidential data or causing damage to the computer. This means that it can easily be included with a Web page and used without requiring that the user install any software on their end. The drawback to this security in the case of Agora is that it is not able to store a persistent copy of the user's profile, thus requiring that the information be re-entered for each new server encountered. In addition, the user is required to explicitly log in to the server, rather than automatically logging them in. It is possible however, to relax the security restriction on file storage in some Java implementations, allowing the client to automatically log in to previously visited servers and create an account on newly encountered servers. In addition to the security restrictions Java imposes, there are some limitations to the expressiveness of the interface system for applets. Besides an immature set of base widgets, the system for creating independent windows does not allow for much control, and the windows are poorly integrated into the windowing space for the browser and the operating system.

Potential Uses

The purpose of Agora is to augment the World-Wide Web with a coummunications tool, so that it is possible to talk to thos browsing a page. It can be used wherever there is a reason to communicate with others who are interested in the information on a page, and where such information is likely to be revisited. Most obviously, the information pages of an organization, where members visit for updates on events and to stay informed, can use Agora to enhance the channels of informal communication between Web-using members. On pages that contain information that is of interest to a number of people, and which are reasonably dynamic, a community of might be formed through Agora to discuss the materials. Alternatively it may be that the pages supporting a client might detail the community supported by the client itself; a community formed around an interest in the community itself, rather than shared interest in some kind of information or some kind of organization.

Supporting a community inside the bounds of what is primarily an broadcast information space, enhances the experience of those who use it. In supporting conversation with other navigators of the information space whether for social reasons or to discuss the information at hand, the human expertise for social interaction can be exploited to make the information space more salient and more enjoyable.


1.It is currently necessary for the Agora server to run on the same machine as the Web server that hosts the Agora client because of security restrictions in Java 1.0 that restrict socket-based connections to the originating host. This can be over-ridden by the end user in HotJava and the Java Appletviewer but not in Netscape 2.0.