[Spread-users] Spread for Component oriented event-based systems
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
Ryan W. Caudy
Center for Networking and Distributed Systems
Department of Computer Science
Johns Hopkins University
More information about the Spread-users