Subject: "mpoll" - a new multicast polling tool

From: [email-masked] (Andrew Patrick)
Date: Tue, 25 Feb 97 11:13:20 EST

As part of the MERCI project, I have been working on a new multicast
application for real-time polling of opinions and ratings. "MPOLL"
was developed with the following uses in mind:

   - collecting quality ratings during multicast sessions
   
   - collecting opinions and votes during multicast collaborative
      work sessions
   
   - collecting opinions on general topics or current events

MPOLL may be useful during multicast sessions to get opinions from
all the participants quickly and efficiently.  It may also be useful
for collecting quality and reception ratings during MBONE events.  I
am releasing MPOLL now to get some initial feedback, and will also be
announcing an MPOLL test session via SDR (you will need a plugin).

You can pick-up the current (very early Alpha) version of MPOLL at

   ftp://debra.dgbt.doc.ca/pub/mbone/mpoll/

source code and binaries for SunOS 4.1.4 and Solaris 2.5 are
available.

Please try the program and tell me what you think.  Any and all
feedback is welcome.

Below are some more details about this program.  You can also find
more information at:

   http://debra.dgbt.doc.ca/mbone/mpoll/mpoll.html

---------------------------------------------------------------------

                                 MPOLL
                           Version Alpha 2.*
                                                   
             Andrew Patrick, Communications Research Centre
                      <[email-masked]>
                              
Introduction
------------

"MPOLL" is a real-time opinion polling and rating collection tool
that uses multicasting to distribute questions and responses to all
multicast session participants. 

"MPOLL" was developed by Andrew Patrick at the Communications
Research Centre (CRC) in Ottawa, Canada, as part of the MERCI project
on Collaborative Work Tools.

MPOLL was developed with the following uses in mind:

   - collecting quality ratings during multicast sessions
   
   - collecting opinions and votes during multicast collaborative
      work sessions
   
   - collecting opinions on general topics or current events

Using MPOLL
-----------

   Usage: mpoll [-t ttl] [-C "title"] address/port
   
    OPTIONS:
      -C "title" : the theme title for the questions
      -t ttl     : the multicast TTL (default = 15)

MPOLL requires specifying a multicast address and port.   MPOLL can
be used by itself, or with other multicast tools such as VAT and VIC
in an MBONE session. MPOLL can be started from SDR once an
appropriate "plugin" is installed (see below), or from the command
line.  Command options that MPOLL accepts include the multicast TTL
(-t), which defaults to 15, and a session title (-C), which defaults
to "Unknown Theme".  These are the same command options used by other
multicast tools.

Once MPOLL is started, there is built-in help for each of the windows
that explains the features and functions.

How MPOLL Works
---------------

MPOLL works by sending question and response packets to the multicast
address, and listening for packets from other hosts.  The users can
create a new question, and this will become available to all the
users who have joined that multicast session.  As users answer the
question, the responses are distributed to all the participants,
where they are tallied and displayed in a graphical histogram.  MPOLL
packets are redistributed periodically as long as the program is
running, so that all current users will see all the results.

   Normally, MPOLL will be left running continuously during a polling
   period or multicast session.

MPOLL uses a simple plain-text protocol for constructing multicast
packets that is similar to the Session Description Protocol (SDP)
used in SDR.  There are currently 3 types of packets generated by
MPOLL: questions, remove question instructions, and user responses.

MPOLL creates a cache file in your home directory ("~/.mpoll_cache")
for storing the questions from your last MPOLL session.  This allows
you to quit and restart MPOLL and have the questions for a session,
yours and other users, reloaded.

Installing MPOLL
----------------

   Binary Distribution
   -------------------
   
   The MPOLL binary file is a stand-alone C program that does not
   require any extra libraries in order to run.  Simply copy the
   MPOLL program to a directory that is in your path.

   Currently, binary distributions of MPOLL are available for:

      - Solaris 2.5
      - SunOS 4.1.4

   A WIN32 port is planned.  Anyone who can help to compile MPOLL for
   other platforms is asked to contact the author.

   Source Distribution
   -------------------
   
   MPOLL is written in C and Tcl/Tk.  The development environment is:

      - SPARC Solaris 2.5
      - gcc version 2.7.2
      - Tcl 7.6 / Tk 4.2

   In addition, MPOLL uses the Embedded Tk (ET) toolkit by Richard
   Hipp (http://users.vnet.net/drh/ET.html) for integrating C and
   Tcl/Tk programming.  Version 1.7.1 of ET is included in the MPOLL
   source distribution, and it must be installed before MPOLL is
   compiled.
   
   No configuration procedure is available yet for MPOLL.  MPOLL has
   been developed under Solaris 2.5, so that is the default platform
   for make.  Possible make commands are currently: 
   
   For Solaris 2.5:  "make"
   For SunOS 4.1.x:  "make sunos" 
   
   I would love to hear about any problems in building and running
   the program.  Also, if you port MPOLL to another platform, please
   contact me with any information about changes necessary, and if
   you can supply a binary for my archive site.

   The SDR Plugin
   --------------
   
   Since MPOLL is a new program, and polling is a new MBONE
   application, an appropriate media has not been defined in SDR. 
   So, in order to use MPOLL from SDR you must install a "plugin".  
   The plugin provided in the distribution is
   
      sdr2.plugin.S53.poll.udp.mpoll.mpoll
   
   and you should copy this to a "~/.sdr.plugins" dirctory on your
   system.  See the SDR documentation for more information about
   plugins.

Limitations
-----------

- MPOLL currently has no unicast support

- MPOLL currently only supports multiple-choice questions with 1 to 5
   possible responses.  Questions can be created that allow one or
   many responses from the users.
   
- MPOLL is currently limited to 100 questions per session, and up to
   5 possible answers per question.  The question limit should be
   configurable be editing the MAX_TOPICS parameter in "mpoll.h", but
   changes to the MAX_RESPONSES parameter will probably not work.

- MPOLL should someday read the ~/.RTPdefaults file, and perhaps some
   other X resources

- a function to visibily remind users to update their responses
   should be added

- we may need a function to edit an existing question

Known Problems
--------------

- this program is in an early Alpha stage of development.  There are
   probably lots of features missing, and many bugs.

- MPOLL has only been tested on Sun systems.  No work on
   portability has been done yet.
   
- no attempt is made to do robust font selection, so MPOLL will
   probably fail if the fonts I use are not on your system.  See
   "mpoll.h" for the font definitions.

- the command line args "-h or -help" dump core, use "--help" instead

Acknowledgements
----------------

The protocol used in MPOLL is fashioned after the SDP protocol used
in SDR, and I thank Mark Handley, Van Jacobson, and other
contributors for their work on SDP and SDR.

I also used the SDR source code as an example while working on MPOLL,
and that code was useful for techniques like multicast socket
management and periodic redistribution of packets.  I learned a lot
from viewing other people's code, and I am sure that I made lots of
mistakes, for which I am wholely responsible.

Licence Terms
-------------

   Copyright (c) Communications Research Centre, Government of Canada
   1997.  All rights reserved.
   
   License is granted to copy and use this software, for research and
   evaluation purposes, provided that the Communications Research
   Centre is acknowledged in all documentation pertaining to any such
   copy or use. The Communications Research Centre grants no other
   licenses expressed or implied. Title, ownership rights, and
   intellectual property rights in the software shall remain with the
   Communications Research Centre.  The Centre's name and the
   Government of Canada should not be used in any advertising without
   written permission.
   
   THE COMMUNICATIONS RESEARCH CENTRE MAKES NO REPRESENTATIONS
   CONCERNING EITHER THE MERCHANTABILITY OF THIS SOFTWARE OR THE
   SUITABILITY OF THIS SOFTWARE FOR ANY PARTICULAR PURPOSE.  The
   software is provided "as is" without express or implied warranty
   of any kind.
   
   These notices must be retained in any copies of any part of this
   software.

Author
------

      Dr. Andrew Patrick
      Network Services & Interface Design Laboratory
      Communications Research Centre
      Industry Canada
      3701 Carling Ave.
      P.O. Box 11490, Station 'H'
      Ottawa, ON CANADA
      K2H 8S2

      Phone: (613) 990-4675
      FAX:   (613) 998-9648
      E-Mail: [email-masked]
      WWW: http://debra.dgbt.doc.ca

-- 
Andrew Patrick, Ph.D. <[email-masked]>
http://debra.dgbt.doc.ca
--> 1996 Psychic Report Card: http://www.csicop.org/articles/psychic-1996.html