[spiffy ivy logo]

The Ivy FAQ list

This FAQ list is modified on an irregular basis. Latest update was done Mar 7 16:45:25 CET 2003. Please have a look at the mailing list archive if you have a question that is not here.

Questions

1.General

Q1.1 Are there performance figures ?
Q1.2 How about audio, video and other streaming media ?
Q1.3 There are problems with multi line strings, why ?
Q1.4 How to transmit images over the ivy bus (see also Q1.2) ?

2.Languages

Q2.1 How do I use Ivy from Ada 95 ?

3.Troubleshooting

Q3.1 I can't compile Ivy-c on a solaris box...
Q3.2 My Ivy client doesn't connect to other clients...

Answers

1.General

Q1.1 Are there performance figures ?

We don't have formal performance evaluations yet. We run a set of 20 ivy agents on a daily basis with no visible effect.

On a network point of view, :he architecture design is so that the costs are quadratically related to the nomber of ivy agents, in terms of network ( each agent is connected to every other agent ). The good news is that messages are transferred on the net only to the agents wich have subscribed to them. A good choice of regexp might make your life easier.

On a CPU point of view, the most visible impact is the regexp processing. The agents wishing to send lots of messages will be CPU-intensive. Good regexp ( e.g.: starting with ^ ) and a good regexp library can improve this aspect.

Q1.2 How about audio, video and other streaming media ?

Ivy is not built to carry this kind of data. However, the control blocks can be carried on Ivy (start, stop, etc).

Q1.3 There are problems with multi line strings, why ?

The Ivy protocol unfortunately relies on an end of line terminator (ascii code 10, "\n" ) to parse the different messages. If you send strings containing newlines, you should encode them beforehand, and decode them in the end. This is considered poor style, and we think that this is one of the evolutions of the protocol we need to implement soon.

Q1.4 How to transmit images over the ivy bus (see also Q1.2) ?

Ivy is not designed for transmission of large data like images, but well fitted for carrying references to these files, and using filesystem transfers. However you can transfer images data splitted in as many as needed small ASCII messages (base 64) if you precise the beginning and the end.

2.Languages

Q2.1 How do I use Ivy from Ada 95?

To be completed (meanwhile, ask Eric Blond at blond@cena.fr)

3.Troubleshooting

Q3.1 I can't compile Ivy-c on a solaris box

There are missing symbols at link time, add -lnsl -lsocket to your command line.

Q3.2 My Ivy client doesn't connect to other clients

Be sure that the "hello" packet reaches the other hosts. Usually, network equipment, such as routers, etc, are configured to block UDP broadcasts, or even IP multicast. If the broadcast pass through the router in one direction only, the order of arrival of the clients is important. The tools allowing you to check this are platform dependent, but we can give you code snippets to check this upon demand. Have a look at tcpdump, netcat, ethereal for multipurpose network analysis tools.