\noindent {\LARGE\bf Introduction}

\noindent One of the most useful purposes computers and computer
networks serve
is helping people communicate.  More and more experience is
being gained in this area of computer use. While such communication
has some problems (and certainly differences) when compared with
traditional
oral and
written communication, it is not premature to claim success.  At the
same time, it is important to look at different types of electronic
communication and the needs they meet (or fail to meet) with an
eye toward possible improvements.

This paper presents the design choices made and implementation
lessons learned during the development and initial deployment of {\it
Discuss}, a computer conferencing system developed by MIT's Student
Information Processing Board (SIPB)\footnote{The SIPB is a volunteer
organization dedicated to improving the student computing
environment at MIT.}.
{\it Discuss} was
designed for a heterogeneous distributed computer
environment, such as that of MIT's Project Athena, and we pay
particular
attention to those issues which are important in such an environment.

{\it Discuss} has been in
operation since 1986 and is currently used by more than 220 people at
MIT.  More than 100 {\it Discuss meetings} exist on eight server
machines.  Users and meetings exist in two separate administrative
domains, Project Athena and the Laboratory for Computer Science (LCS).

This paper is organized as follows.
We begin in Section 1 by describing the motivation for the {\it
Discuss} project.  This includes a description of the various types of
electronic communication, an explanation of how conferencing differs from electronic
mail and bulletin boards, and an overview of the MIT computing environment for
which our system was developed.  In Section 2 we define the
model of a {\it meeting} which is the foundation of {\it Discuss}.
Section 3 describes the currently implemented
interfaces which allow a user to access meetings.  The client/server
model is explored in Section 4, and the communication issues
caused by this split in duties are covered in Section 5.
Following that, Section 6 describes the topic of authentication
and authorization, showing how {\it Discuss} uses
{\it Kerberos}\cite{kerberos}
to provide authentication, but develops its own application level
authorization scheme which we believe is required by a distributed
conferencing
system.  User notification of new transactions via the 
{\it Zephyr}\cite{zephyr}
notification system is covered in Section 7.  We talk in
Section 8 about the lessons learned, and conclude with
some discussion of the future
of {\it Discuss} in Section 9.
