[Spread-users] Spread for Component oriented event-based systems

Ryan Caudy caudy at jhu.edu
Fri Jan 16 17:24:50 EST 2004


Responses inlined.  If you have more questions, please let the list know.


Nilay Padh wrote:

> Hi All,
> We are developing a Component oriented system which uses events to 
> communicate among each other.
> Fault-tolerance & reliability is one of our major concern.
> * Is Spread a feasible alternative in this scenario ?

I'm not familar enough with the specifics of your system design to 
really know.  However, from the description above, it seems likely.

> * Can one pass an event/message to an individual 
> component/object/application/process using spread (point-to-point)?

Yes.  Using private groups (see the Spread documentation).

> * Does a Component have to be a part of a group to receive 
> events/messages ? 

Yes.  Process is probably the right word to use from Spread's point of 
view, rather than component.  To send a message to a group however, 
there is no such requirement.

> * What is a private group ?

Each Spread connection has an associated private name and 
(automatically) a private group.   Only the process that initiated the 
connection can be a member of that group, and thus this mechanism can be 
used to "unicast" messages with Spread guarantees.  A private group can 
be sent to just like any other group.

> * Assuming that my system is going to operate within a "site" and not on 
> Wide Area Network.
> How many daemons do I need to instantiate ? Is one daemon enough( 
> something kinda a huge event Router )?

How many daemons you should use depends more on the kind of traffic and 
the network architecture.  In a system like Wackamole, the way Spread is 
being used dictates a 1:1 ratio between client machines and daemons. 
The thing to remember is that daemon-daemon communication is multicast, 
whereas daemon-client communication is unicast (or IPC).  More daemons 
may also be better for fault tolerance purposes... although client 
connections do not automatically fail-over at the loss of a daemon, an 
architecture with all clients connected via IPC to a local daemon will 
allow the connectivity of your system to match the connectivity of the 
underlying network (i.e. not across partitions, but within partitions).

> * If a component A wants to send a event/message to component B, how can 
> it be done using spread ?
> Does A & B have to be in a same group to receive messages ?

A has to send the message to some group that B is in (possibly B's 
private group) using one of the SP_multicast variants.  They do not have 
to be in the same group to send messages to each other.

> * I am using CORBA events for my stuff. How can Spread be a better 
> option instead of CORBA in this case ?

I'm not very familiar with CORBA events.  Maybe someone else on the list 
is.  Spread does provide an event-handling system to handle timed events 
and activity on sockets, which is used internally by Spread, but can 
also be used by client applications.  Because Spread connections 
(mbox's) are ordinary sockets, facilities like select() can be used 

> -Nilay

Ryan W. Caudy
Center for Networking and Distributed Systems
Department of Computer Science
Johns Hopkins University

More information about the Spread-users mailing list