Network-friendly Epidemic Multicast protocol
Java HTML
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/main/java
README
pom.xml

README

NeEM: Network-friendly Epidemic Multicast
Copyright (c) 2005-2007, University of Minho
All rights reserved.

1. Overview
-----------

The NeEM library provides an implementation of epidemic multicast
(also called probabilistic or gossip-based) in wide-area networks by
using multiple TCP/IP connections in a non-blocking fashion. The
resulting overlay network is automatically managed by the protocol.

Epidemic multicast protocols achieve stable high throughput regardless
of node and network faults and scale to very large numbers of
participants. The resulting protocol can be used for event
dissemination to a very large number of interested parties.

Implementation is based on Java and takes advantage of the NIO
interfaces to maintain multiple network connections without threading
overhead. The goal of this implementation is to be small,
self-contained, and practical.

2. Demos and Tools
------------------

This package contains demonstration applications for the NeEM protocol.
Currently:

 - net.sf.neem.apps.Chat - simple console-based interactive chat application

 - net.sf.neem.apps.Glue - glue multiple groups together

 - net.sf.neem.apps.jmx.Reconfig - change protocol configuration of multiple
 running peers using JMX

 - net.sf.neem.apps.jmx.DumpGraph - dumps current overlay network as a Graphviz
 .dot file

 - net.sf.neem.apps.perf.Crowd - launches a batch of silent peers

 - net.sf.neem.apps.perf.Source - injects traffic in a group

 - net.sf.neem.apps.perf.Drain - logs traffic received from a group

To test remote access with JMX, as required by net.sf.neem.apps.jmx.*, use the 
following VM options:

 java -Dcom.sun.management.jmxremote.port=someport \
	-Dcom.sun.management.jmxremote.authenticate=false \
	-Dcom.sun.management.jmxremote.ssl=false net.sf.neem.apps.Chat ...

where "someport" is an available TCP/IP port for listening.
Then run apps.jmx.* as follows:

 java net.sf.neem.apps.jmx.DumpGraph hostname:someport
 java net.sf.neem.apps.jmx.Reconfig data/default.properties hostname.someport

WARNING: This configuration disables access control! For a production
environment disable JMX remote access or check JMX documentation to
learn how to setup secure access control.

3. Latest Version
-----------------

For further documentation and download of the latest version go to the
NeEM homepage at:
	
	http://neem.sf.net

4. Credits
----------

This implementation of the NeEM protocol was developed by:

 - Pedro Santos <psantos@gsd.di.uminho.pt, si24803@gmail.com>
 - Jose Orlando Pereira <jop@di.uminho.pt>

Partially funded by FCT, project P-SON (POSC/EIA/60941/2004).
See http://pson.lsd.di.uminho.pt/ for more information

Research leading to the NeEM protocol was partially funded by FCT and
Microsoft Research. People involved were J. Pereira, L. Rodrigues,
R. Oliveira, A.-M. Kermarrec, A. Pinto, M. J. Monteiro, and
S. Formigo.

5. License
----------

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

 - Redistributions of source code must retain the above copyright
 notice, this list of conditions and the following disclaimer.

 - Redistributions in binary form must reproduce the above copyright
 notice, this list of conditions and the following disclaimer in the
 documentation and/or other materials provided with the distribution.

 - Neither the name of the University of Minho nor the names of its
 contributors may be used to endorse or promote products derived from
 this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.