Each user wishing to interact with an elab runs a program called a browser that communicates with the server. The program takes on the role of the user's capability broker, describing to the server what types of services the user can support. Examples of these include an audio/video connection, multicast capacity, or more advanced interfaces such as a CAVE. It also invokes the user's local programs which implement these aspects of the interface, and it validates and authenticates connections. In these ways, it is acting as the user's broker, which is described in more detail below.
A number of user interfaces are possible, ranging from a simple text module (appropriate for low-speed connections) to a modified graphical WWW browser, depending on the capabilities of the user's environment, Initially, development will focus on the WWW browser. A user will connect to an elab by navigating the Web with the browser. Users will interact with it by pointing and clicking much like the expected WWW interface. As other interfaces are needed, they will be created by the brower. Walking into a room where other people are located will cause their images to be displayed on the screen, and any sounds heard in the room (typically conversation) will be played by the audio client. If audio and video interaction are not possible or desirable, or if a more technical interaction with the elab is necessary, a text client will be invoked. The possibilities for the user interface are quite extensive, enabling one to take advantage of both the information organization capabilities of WWW and the interactive collaborative potential of a persistent location.
The deliverables that we will build for the user interface include