Back to my home page
mgpm - a multicast-enabled mgp
mgpm is a multicast-enabled version of the
MagicPoint
presentation tool. Snapshots of
the basic version of MagicPoint are available at
ftp://sh.wide.ad.jp/WIDE/free-ware/mgp-snap
mgpm is designed as a one-to-many application, where a master
node can unidirectionally transmit a presentation to
a potentially large number of receivers.
The application uses a FEC-based reliable multicast protocol
to distribute the presentation data to the receivers, and
a special-purpose protocol to deliver commands (e.g.
page changes, annotations, etc.) from the master sender to
the receivers. In order to achieve scalability, the protocol
is fully unidirectional and uses no feedback whatsoever from
the receivers.
Transmission is done using RTP-encapsulated packets over
a number of multicast groups. The application uses
a congestion-controlled version of our Reliable
Multicast Data delivery Protocol (RMDP) which is
based on the RLC congestion control scheme. More
info on RMDP and RLC is available at
my research page
http://www.iet.unipi.it/~luigi/research.html
RLC and RMDP are joint works with
Lorenzo Vicisano
and
Jon Crowcroft.
Download and install info
You can choose between a binary
(currently for FreeBSD, Windows and Linux)
and a source distribution.
- Binary install
- For FreeBSD 2.2.x, Download the binary distribution:
mgpm990112.freebsd.bin.tgz
and extract them with
cd /usr/local ; tar xvzf mgpm990112.freebsd.bin.tgz
- For Windows (95/98/NT) Download the binary distribution:
mgpw990211.zip
extract binaries and dll from the zip file and put them in the
path
- For Linux, Download the binary distribution:
mgpm990112.linux.bin.tgz
and extract them with
cd /usr/local ; tar xvzf mgpm990112.linux.bin.tgz
This will install the following binaries and shared libraries:
bin/mgpm, bin/sen-sample, bin/rec-sample,
lib/libttf.so.2.0 (FreeBSD only)
(you don't need to install things in the system's directory,
but then make sure that the bin/ directory in your
PATH and LD_LIBRARY_PATH contains the lib/ directory with
the above shared libs.
- Source install
Sources are structured as a set of FreeBSD ports so
you will have an easy time in installing/removing it.
For other operating systems you might need some work to
actually compile things.
You need to download the following files into /usr/ports/distfiles:
Then do the following:
cd /usr/ports/misc (or some other directory you like)
tar xvzf /usr/ports/distfiles/rlc981215.tgz
tar xvzf /usr/ports/distfiles/rmdp981215.tgz
tar xvzf /usr/ports/distfiles/mgpm981222.tgz
cd rlc-port
make install
cd ../rmdp
make install
cd ../mgpm
make
cp work/kit/mgp /usr/local/bin/mgpm
Usage
mgpm behaves essentially as mgp, with only a few extensions.
To use it for multicast presentations, the sender node needs
to start it as follows:
mgpm [options] -M group/port/ttl filename
whereas receivers can start the program as
mgpm [options] -S rmdp://group:port/
With the above command, the sender runs an RMDP session
on the specified multicast group addresses, and a command session
on the group address immediately before. The receiver will in turn
launch an RMDP receiver to download the presentation, then starts
displaying the current slide and execute any command coming from
the sender.
Other combinations are possible, e.g. the receiver can load the
presentation from a local file or using http, just replacing
the URL of the file with a local filename or a generic URL
(e.g. /tmp/a.mgp or http://host/file).
In this case the address to be used for the control stream can then
be specified with the option -r group/port on the receiver,
and -s group/port on the sender. Unicast addresses can be
used, in which case they should reflect the receiver's IP.
Security alert
Be warned, an mgp presentation can request the execution of
commands on the host. The "-S" flag on the client is there
to prevent a nasty sender to be able to run things on your
machine. Remove it only if you know what you are doing.
Miscellanea
mgpm is still in being actively developed. We are working on
various aspects of the application:
- on the command protocol
to make it more robust to losses, packet reordering, etc.;
- on the user interface, to allow better control of the tool
with a Pen, or to permit keyboard annotations, etc.
- We are considering the idea of making the tool a little bit
more interactive, e.g. allow the sender to receive notes/msgs
from the receivers;
From my experience, the annotation ("rakugaki") mode in mgp is not
very useful unless you have a graphic tablet and a pen. With that,
and a tiny little bit of training, you can really use mgp as
a {black|white}board, and do real-time drawings with the same ease.
I have had good success with a
Wacom PenPartner, which is a low cost
(about 100US$) tablet with a passive pen using a button and an eraser.
XFree86 fully support the tablet through the XIE interface, by simply adding
the following lines to /etc/XF86Config:
Section "Files"
...
ModulePath "/usr/X11R6/lib/modules"
EndSection
Section "Module"
Load "xf86Wacom.so"
EndSection
Section "Xinput"
SubSection "WacomStylus"
Port "/dev/cuaa1"
DeviceName "Wacom"
Mode Absolute
Suppress 6
AlwaysCore
EndSubSection
EndSection
In this way you can have both the mouse and the pen active at all times.
NOTE: The XFree86 3.3.3 version of xf86Wacom.so has a bug
in that it reports the eraser side of the pen as Button1, instead of
Button3 as the previous version (3.3.2) did. The problem has been
reported to the xf86Wacom developers and will be hopefully fixed
in future releases. In the meantime i will try to provide a patch
and possibly modified binaries.
Luigi Rizzo
Dipartimento di Ingegneria dell'Informazione -- Univ. di Pisa
via Diotisalvi 2 -- 56126 PISA
tel. +39-050-568533 Fax +39-050-568522
email:
l.rizzo@iet.unipi.it