Spread is licensed as Open Source. The license is similar to a BSD license with the addition of an advertisement requirement clause. Spread can be downloaded either as a collection of binaries or as source tarball from http://www.spread.org/. Although the binaries may do the trick for some systems, we recommend compiling from source. Because Spread uses autoconf, for most users the installation is as simple as ./configure; make; make install. At the time of publishing, in addition to the stable 3.17.3 release, RC2 of the new Spread 4.0 is also available for download. If you're using Spread for the first time, you may consider trying this version because it presents several significant improvements, including support for dynamic configuration of sets of daemons without requiring a restart and enforcing identical configuration files at all nodes. However, because Spread 4.0 is still in release candidate status and we have not had the chance to test this release thoroughly yet, we will base the instructions and examples in the remainder of this appendix on the 3.17 release. Each Spread daemon relies on a configuration file (spread.conf) to define some of the runtime parameters and, more importantly, to specify the list of all other potential Spread daemons in the network. There are two common ways to configure Spread. In the first situation as seen in Listing A.1, we establish a LAN Spread configuration. Listing A.1. spread.confA Simple Local Area Spread Configuration
In the second situation, as seen in Listing A.2, the Spread daemons are distributed in several sites connected by the Internet. Listing A.2. spread.confA Simple Wide Area Spread Configuration
The key aspect about the Spread configuration files is that they need to be identical on all servers. If by chance you end up with configurations that are slightly different, you may end up with daemons that act as if nothing is wrong, yet cannot talk to each other. Several other options can be set in the configuration file. DebugFlags specifies the level that debug information will be displayed during the daemon's run. By default, these messages are displayed either to standard error or to the log file specified by EventLogFile in the configuration. The amount of logged information is highly configurable. You may specify which levels to include and which to exclude. For example: DebugFlags = {PRINT EXIT} DebugFlags = {ALL !EVENTS !MEMORY} |