An Interactive Electronic Bulletin Board Implementation For Mosaic and HTTP Server

James R Halama, PhD; Anne Kreft, BA; and Robert E Henkin, MD.


ABSTRACT

An electronic bulletin board service, called LUNIS (Loyola University Nuclear Information System) [1], designed for physicians and workers in the field of Nuclear Medicine over the past four years is now available for read-only using NCSA Mosaic. To contribute to LUNIS, users must access LUNIS either by modem, or by using telnet over the Internet. Under development is an interactive bulletin board interface for NCSA Mosaic that will allow users reading the LUNIS database to add comments, replies, and documents to the existing message database as if the user had logged into the system. It is planed to eventually develop a fully configureable, generic, interactive bulletin board service for NCSA Mosaic and HTTP servers.

The interactive bulletin board service is possible with the NCSA Mosaic forms utility [2] and the HTTP server [3] and the Common Gateway Interface (CGI) [4] program utility. All CGI programs are written in the C language. User authorization [5] is required to appropriately record user activity and contributions. Contributions are added by activating post and reply submission buttons that are dispersed throughout the message database. A form, which includes a text-box, appears on the next screen for the user to fill-out and submit to the HTTP server. Information contained in new postings is automatically formatted into a HTML (Hyper-Text Markup Language) document and indexed. Replies to existing messages are inserted into the HTML document just below the activated reply button. We intend to log user activity, which can be used to generate a personalized page presenting a document list of new postings.


INTRODUCTION

For the past four years, the Department of Nuclear Medicine at Loyola University Chicago has offered LUNIS (Loyola University Nuclear Information System) to colleagues of Nuclear Medicine. The service is used by physicians, researchers, technologists, sales and other commercial personnel throughout the world who have an expressed interest in the field of Nuclear Medicine. In addition to the interactive bulletin board section, the service offers electronic mail and a library for exchange of programs, documents, and medical image cases. Users access the system through either six dial-up modems, or via Internet. LUNIS runs on a multi-user Digital Equipment Corporation MicroVAX computer system. Interactions require VT-100 type character-based terminal emulation. Our goal is to expand the LUNIS bulletin board service to incorporate client/server and graphical-user-interface capabilities such as that provided by NCSA Mosaic.

The entire LUNIS database consisting of bulletin board messages, library entries, and user demographic data has been converted to HTML documents documents and stored on an HTTP server that is available for read-only with NCSA Mosaic. We have chosen to use NCSA Mosaic because of its wide-spread popularity and cross-platform capabilities. The LUNIS database on the HTTP server is routinely updated by background processes that automatically generate and index HTML documents from data entered on the MicroVAX system.

We describe in this paper a fully interactive bulletin board implementation for NCSA Mosaic allowing users to add replies to existing messages, and to post new message documents. This is accomplished by using the NCSA Mosaic forms utility and HTTP server Common Gateway Interface (CGI) program utility.

THE MOSAIC INTERACTIVE BULLETIN BOARD INTERFACE

To interact with an electronic bulletin board service, the user must be able to post new messages and to reply to existing messages. For efficient reading of messages, they are also indexed. The home page of the interactive bulletin board interface for NCSA Mosaic is a HTML document that displays a link to a fill-out form for posting of new messages, and linkages to indices of existing bulletin board messages. The messages in the database are indexed by year/month, subject category, and keytext (keywords consisting of single words or phrases).

A message thread begins with an initial question or comment, which is then followed by a series of replies stored in a single HTML document. An example of a message thread is shown here. Basic information such as the message title, subject category, date, message entry number, keytext, and the identity of the user posting the message are displayed at the top. The identity of every user contributing to the bulletin board is a requirement. A link to a HTML document describing the user is provided. At the very bottom of the message thread is displayed the bulletin board service name.

To post a new message, a form on the bulletin board home page is used to direct the user to choose a subject category and to activate the POST message button. Upon activation, a post message fill-out form is generated and displayed with keytext presented based on the chosen subject category. The user is prompted to select existing keytext, add new keytext, enter a message title, and message text. There is no restriction on the length of the message. Activate the POST message button on the bulletin board home page to display this form. When the message is submitted, the HTTP server generates a HTML document for the new message and updates all corresponding keytext and index files, including the bulletin board home page.

At the bottom of each message is a REPLY button that is linked to a reply fill-out form. When activated, a reply fill-out form similar to the post message form appears on the screen and the user is prompted to enter reply text. The text is subsequently inserted, with indentation, into the message thread just below location of the activated REPLY button. Reply linkages in the index files point to an anchor corresponding to the message sequence number in the referenced message thread document. To display a sample index, select any of the message indices listed on the bulletin board home page.

PROGRAMMING TECHNIQUES AND SPECIFICATIONS

The requirements for the interactive bulletin board interface for NCSA Mosaic are an information server that supports user authentication and implements the CGI (version 1.1) program interface, such as NCSA HTTP (version 1.1). Likewise, the client software must support user authentication and the CGI program interface, such as NCSA Mosaic (version 2.0) with fill-out form support.

The server used in this project is a Sun Microsystems SPARCstation 1 with SunOS (version 4) UNIX running NCSA HTTP (version 1.1) server software. The CGI programs to enable required bulletin board functions were written in the C language and compiled at the HTTP server. A pair of CGI programs for posting of new messages, and a pair to post replies are employed. The sequence of events to record a reply message is as follows (The sequence to post a new bulletin board message is very similar):

The message index files are HTML documents automatically generated by the post- message CGI program. New index file entries are appended to existing files. If a file does not exist, it is created and a link to the new index file is added to the bulletin board home page. A system call to the operating system is used for sorting. HTML comment fields are added to each index entry in the index file to affect the sort order.

User authentication is implemented by placing an access control file (.htaccess) [6] into the root directory of the bulletin board database and into the executable CGI program directory. The HTTP (version 1.1) server software requires that they be completely separate directory paths. Since the access control file exists in two distinct paths, authentication by the user may be requested twice. The second authentication is not requested, however, until the user chooses to post a message or reply to a message on the bulletin board. The system operator is responsible for maintaining the user and group authentication files.

The CGI programs utilize parameters defined in a bulletin board configuration file, located the bulletin board root directory, that may be edited. Configuration file parameters affect the look and feel of the fill-out forms for posting messages. The operator may allow or disallow use of keytext, choose the number of keytext entries that users may select, and determine whether keytext is required. The operator may choose to disallow users adding new keytext. In this case, it the system operator's responsibility to assign keytext for users to choose.

DISCUSSION AND IMPLEMENTATION

The interactive bulletin board interface developed for NCSA Mosaic uses LUNIS as its model, which in turn was modeled after the bulletin board service provided by CompuServe, Inc. We plan to publicly release a configureable, generic bulletin board interface for NCSA Mosaic and HTTP servers for use by other information providers on the World-Wide-Web. We anticipate that the interface program set would be distributed using the UNIX tar file convention. Program installation would simply require the system operator to extract the tar file and move extracted files into permanent locations. A small amount of editing of bulletin board home page and the bulletin board configuration would be required. Every effort was made to automate subsequent bulletin board functions. Once initiated, documents, indices, and additional sub-directories are generated automatically.

The release of the bulletin board interface for NCSA Mosaic is being hindered by the not yet complete development of Mosaic by the NCSA. The stage of development differs amongst the computer platforms being supported. If this interface were to be widely adopted, it is expected that other World-Wide-Web viewers be capable of providing fill-out forms and conform to CGI standards. It is believed that the present version of the HTTP server by NCSA is quite adequate for this interface.

For LUNIS, additional CGI programs to automate entry of usernames and passwords into the user authentication file are also necessary. There are at present 1200 registered users, and manually managing that size a group of users is prohibitive. Fill-out forms to direct users or the system operator to enter demographic information, and to choose a username and password, are under construction. The output of these forms will also generate HTML documents accessible by the links set in the bulletin board message database. Furthermore, user activity will be recorded and used to list messages posted onto the bulletin board since the time of the user's last access.


BIBLIOGRAPHY

[1] LUNIS (Loyola University Nuclear Information System Department of Nuclear Medicine, Stritch School of Medicine, Loyola University Chicago
[2] Mosaic for X version 2.0 Fill-Out Form Support NCSA, University of Illinois, Urbana- Champaigne
[3] NCSA httpd NCSA, University of Illinois, Urbana-Champaigne
[4] The Common Gateway Interface NCSA, University of Illinois, Urbana-Champaigne
[5] Mosaic User Authentication Tutorial NCSA, University of Illinois, Urbana-Champaigne
[6] Access Configuration NCSA, University of Illinois, Urbana-Champaigne


AUTHOR BIOGRAPHIES

James R. Halama, PhD - Dr. Halama manages the LUNIS system and is creator of its software. He is an Assistant Professor of Radiology at the Stritch School of Medicine, Loyola Univerisity Chicago. He received his doctorate in Medical Physics from the University of Wisconsin-Madison with a specialty in Nuclear Medicine physics.

Anne Kreft - Anne is a Nuclear Medicine technologist in the Section of Nuclear Medicine at the Loyola University Medical Center, and has assisted with program development of the Mosaic interface for LUNIS. She received a BA degree from the University of Michigan, and completed Nuclear Medicine technology training at Ferris State University.

Robert E. Henkin, MD - Dr. Henkin is Professor of Radiology at the Stritch School of Medicine, Loyola Univerisity Chicago, and is Director of the Section of Nuclear Medicine at Loyola University Chicago Medical Center. LUNIS, as a service to Nuclear Medicine, was originated by Dr. Henkin, and he serves as its present director.


James R. Halama, jhalama@lunis.nucmed.luc.edu