JRMS 1.1 Release Notes

JRMS is a set of Java libraries for building multicast applications. It was developed by Sun Microsystems Laboratories.

This release of JRMS has been tested on Solaris 2.5.1, 2.6, and 2.7, and Windows NT 4.0. It is 100% Pure Java, and is compatible with any platform that supports Java 2.

If you want to jump right in, add the classes.jar file to your CLASSPATH and try running the SlingerSwing sample application.



JRMS Package Installation Procedures

This release consists of the following directories and files:

  
classes.jar     JRMSUsageGuide.html    README.html
javadoc         LICENSE.TXT            src

The javadoc directory includes all of the java API html files. The license terms you agreed to are in LICENSE.TXT. The src directory contains all of the sources and a top level Makefile.

The classes.jar file contains all of the Java class files. Copy this file to all systems on which you want to run JRMS applications and add the classes.jar and its directory path to your CLASSPATH environment variable.


Writing Your Own JRMS Application

The best way to get started with JRMS is to read the Quick Guide to Writing JRMS Applications. More detailed information can be found in the JRMS documents.



Building the JRMS Code

To build the code, be sure that you have paths to your JDK and JCE in your CLASSPATH. Also add the jrms1.1/classes directory to the CLASSPATH. This directory is automatically built when you build JRMS. Then, from the src directory, type 'make'.



Running the SlingerSwing sample application

Change directory to jrms1.1/src/reliable/sample_code/slingerSwing. The SlingerSwing program requires that the images directory be in the current the directory. The application is then started with the command:

           % java com.sun.multicast.reliable.applications.slinger.SlingerSwing

Start up a few copies of this application (on one machine or several). The information to control the application can be entered manually through the user interface or from a configuration file listed in slgrconf.ini.

Copy this configuration file to each of the systems running the application. Load the file with the "Load All Settings from the Configuration File" button on the Configuration screen. The sample configuration file will send the file /tmp/test.txt on the multicast address 224.25.25.9 and port 4321. This information is advertised to receivers as slingerChannel99 for the slingerApplication. Set one of the applications to be the sender and the others to be receivers.

The channel and application names must be the same on both the sender and the receivers. Receivers must enter the directory where files being transferred are to be written. Receivers must specify a "Wait time" for listening for the advertisement from the sender for this application. 300 seconds is a typical value for "Wait Time".

Once the sender and receivers are configured, click the "Receive File(s)" button on the receivers, then the "Send File(s)" button on the sender. After the initial handshake and delay, the file specified at the sender is transferred to all receivers.


Sample Configuration File.

The following is a configuration file that can be used to initialize the SlingerSwing application. A "#" in the beginning of a line marks the line to be treated as a comment line.
# slingerProperties.cfg
slinger.address = 224.25.25.9
slinger.application = slingerApplication
slinger.channel = slingerChannel99
slinger.delay = 30
slinger.linger = 30
slinger.port = 4321
slinger.receive = /home/temp
slinger.send = /tmp/test.txt
slinger.speed = 25000
slinger.transport = TRAM
slinger.ttl = 1
slinger.uport = 4322
slinger.verbose = false
slinger.wait = 300


JRMS Documents

Javadoc

Technical Reports
Internet Drafts


Light-weight Reliable Multicast Protocol

With the assistance of Tie Liao of Inria, this version of JRMS includes support for the Light-weight Reliable Multicast Protocol (LRMP). This protocol supports multiple senders on a single multicast address. For more information about LRMP, see the LRMP web site. To use LRMP in JRMS, see the javadoc for classes in the package com.sun.multicast.reliable.transport.lrmp .

This release includes version 1.4.2 of LRMP.

/*
 * COPYRIGHT 1995 BY: MASSACHUSETTS INSTITUTE OF TECHNOLOGY (MIT), INRIA
 * This W3C software is being provided by the copyright holders under the
 * following license. By obtaining, using and/or copying this software, you
 * agree that you have read, understood, and will comply with the following
 * terms and conditions:
 * 
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose and without fee or royalty is hereby granted,
 * provided that the full text of this NOTICE appears on ALL copies of the
 * software and documentation or portions thereof, including modifications,
 * that you make.
 * 
 * THIS SOFTWARE IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
 * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT
 * NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES OF
 * MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE
 * SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
 * COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. COPYRIGHT HOLDERS WILL BEAR NO
 * LIABILITY FOR ANY USE OF THIS SOFTWARE OR DOCUMENTATION.
 * 
 * The name and trademarks of copyright holders may NOT be used in advertising
 * or publicity pertaining to the software without specific, written prior
 * permission. Title to copyright in this software and any associated
 * documentation will at all times remain with copyright holders.
 */

Authentication Spec Creation Procedure


   Execute the following command to create an AuthenticationSpec: 
 
   Command Syntax:
      java com.sun.multicast.reliable.authentication.AuthenticationSpec < Algorithm > < SenderHostname > 
         < KeyStore provider > < keyStore filename > < keyStore password >
         < senderspec filename > < receiverspec filename > 
 
   Example:
    The following will yield 2 AuthenticationSpec files.  One spec (s1.spec) is to be
    used by the sender while the other (r1.spec) is to be used by all of
    the receivers.  The algorithm used in this case is DSA and the sender 
    node is identified as "poplar".  The keyStore file for the private key used
    by the sender(s) is 'authStore'.  It uses the standard Sun Java KeyStore Provider
    (JKS), and the password 'authPassword'.  
 
    java com.sun.multicast.reliable.authentication.AuthenticationSpec DSA poplar JKS authStore authPassword s1.spec r1.spec