<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  <title></title>
</head>
<body>
Thanks to all who responded with assistance!&nbsp; <br>
<br>
Jonathan Stanton wrote:<br>
<blockquote type="cite" cite="mid20030331130354.A63306@cnds.jhu.edu">
  <pre wrap="">On Mon, Mar 31, 2003 at 11:40:18AM -0500, Kevin Carlson wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Is there anyone that can point me to a resource that would explain the 
"Spread Segment" section of the configuration file other than the User's 
guide?  I have read and re-read the section on configuration and can't 
quite understand why each machine must be listed and what the different 
segments represent.  Yes, I am a spread newbie. ;-)  I am very familiar 
with other message bus technologies such as MQSeries, SwiftMQ, and other 
JMS implementations but this seems to be a little different.

What I am attempting to do is set up a spread daemon on a single machine 
that other machines both on and off the local network can connect to.  I 
    </pre>
  </blockquote>
  <pre wrap=""><!---->
In this case, all your Spread_Segment needs to contain is the one
machine that will run a daemon. For example:

Spread_Segment  1.2.3..255:4803 {

        myhost                1.2.3.4
}

Then any spread client can connect to the daemon running on the machine
myhost.mydomain.com and messages it sends to other clients will be
forwarded to those other clients who are also connected to
myhost.mydomain.com.

  </pre>
  <blockquote type="cite">
    <pre wrap="">gather that each segment is informing the daemon where it must broadcast 
data to, but why the need for each machine is confusing.  Is this to 
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Ah. I see the confusion. In Spread the Segment defines a set of daemons
who will communicate together, it says nothing about where the actual
clients are who connect to the daemons. Commonly you will run a number
of daemons (maybe one on each machine that is participating with a
client, maybe on fewer) and so the Segment section lists all of the
machines that will be running a daemon process. The list of machines is
needed for both protecting the daemons and for the protocols to work, as
they need to know the entire set of "potential" daemons who may run,
even if not all of them are executing all the time.

The clients actually connect individually over TCP or local IPC sockets
to the daemon, the daemon does not "broadcast" at the UDP level to all
of the clients. 

  </pre>
  <blockquote type="cite">
    <pre wrap="">control access to the spread daemon?  Am I even on the right track?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
The spread.conf doesn't itself specify any access control limits on
clients (i.e. restricting a client from connecting to a daemon) it only
specifies which daemons will listen to each other (if a daemon starts
running on a machine who is NOT in the Segment section, then the other
daemons will ignore it.) You can implement access control for the
clients by using the built in Access Control API. You can find
documentation on it in the paper:

<a class="moz-txt-link-freetext" href="http://www.cnds.jhu.edu/pub/papers/cnds-2001-2.pdf">http://www.cnds.jhu.edu/pub/papers/cnds-2001-2.pdf</a>

Jonathan

  </pre>
</blockquote>
</body>
</html>