An “information channel” is any data stream provided by, used by or exchanged between network applications. For example, a data stream may consist of a graphical visualization provided by a server, a haptics stream providing a physical sensation of a remote object, collaborative state information exchanged between client applications or diagnositics information provided by an application. Focusing on the channel of data provides an organizing principle for the applications being developed for the NGI project. By making information channels accessible through a web interface, we are able to provide a single point of access to a variety of interconnected applications.
Components
The "information channel" view is enabled by two pieces of software the registration server and a program for constructing web pages. The registration server is responsible for maintaining the list of currently active channels. Applications register their channels with the server at periodic intervals (determined by the application). The registration consists of information identifying the kind of channel (or using application), the provider, a description of the channel and startup information for the using client. This information is contained in a single UDP packet. The cgi program is invoked on demand to provide the contents of a web page listing active channels of a selected type. The program contacts the registration server over a tcp connection
Operation
In a typical situation, the server for an application registers its available channels with the registration server (1). The user accesses a web page listing the desired channel types. Selecting a link from the page launches the appropriate client application (2). Any component of an application may be able to provide a channel. For example, the client application may provide a channel for collaborating on some task with another user. To do the client application sends a registration packet to the server (3). A second user can then access a page of clients currently providing a collaboration channel. Selecting a link from this page would launch a second client application connected to both the application server and the first client.
Distributed Registration
Since channel registration is implemented at the udp layer, the registration packets can be sent either to the unicast address of the host running the registration server or to a multicast address. If a multicast address is used, then multiple registration servers can operate at different sites. Appropriate choices of the TTL (time-to-live) value of the registration packets, can allow registration information to be received only at a local registration server or at all registration servers. Each site may have their own web pages which obtain the current channels from their registration server.
Extendability
A new application can be incorporated into this system simply by including code to format and send the registration packets. This code is very light weight and does not place a significant burden on the application. The registration server has no knowledge of the kinds of applications registering channels. The cgi program itself also does not have any knowledge of the applications registering channels. When activiated, it is provided a channel type name. It uses this to query the registration server and construct the web page listing current channels. Certain uses of this system my want to provide a specialized look or organization to the page listing the active applications.
Publications & Presentations


Last Modified: 6-Apr-03, Server Contact: senger@csfac.uwlax.edu
Copyright © 1995-2003, The University of Wisconsin - La Crosse Scientific Visualization Project