Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
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 <email@example.com, firstname.lastname@example.org> - Jose Orlando Pereira <email@example.com> 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.