FDDA - (Probably) Frequently Asked Questions

What is FDDA?
FDDA is a framework to demonstrate distributed algorithms. It is intended for teaching and learning those algorithms. After you've programmed the algorithm, you can model a small network and run it. FDDA will show the sent messages and present statistics.

What is FDDA not?
FDDA is not a simulation software. Algorithms are demonstrated, not simulated. What that means is, most importantly, that there are no time guarantees, measurements, or constraints and that there even isn't real concurrency. If you're looking for a simulation software, try the network simulator ns-2 and its animation tool nam.

How does FDDA relate to ns-2 and nam?
FDDA does not simulate, it only demonstrates. It is also explicitly meant for distributed algorithms, not for network protocols. FDDA is smaller and easier to use. And it's in Java.

How does FDDA look like?
There's a screenshot.

What are the system requirements for FDDA?
Java 1.4. For large networks or many messages, you'll also need a fast computer.

How does FDDA work?
When starting, FDDA dynamically loads all algorithms it can find. An algorithm is demonstrated by one thread that goes through the active nodes sequentially and moves the messages sequentially. There is not an extra thread for each node. So there even isn't real concurrency, though it will look like there was... During the demonstration, the framework will call several methods you implemented in your algorithm classes, so that nodes can react to incoming messages, send their own messages, etc.

How do I use FDDA?
Generally speaking, you have to go through three steps: program the algorithm you'd like to demonstrate. Then, you start the application and model a network for that algorithm. Finally, you let FDDA demonstrate it.

How do I program an algorithm to demonstrate?
There's a guide.

Are there example algorithms?
Yes. They are provided with the FDDA installation, together with networks that demonstrate them. The source code can also be found here: EchoFlooding.java for the echo algorithm; TokenRingNode.java and its subclass RingElection.java for the token ring election algorithm with message extinction.

I have a suggestion / found a bug / would like to ask a question.
Write a mail.

Why are these pages in English?
Because I think that everyone who knows enough about distributed algorithms to use FDDA should speak English well enough to understand these pages. FDDA itself, though, comes in English and German.

Is FDDA free software?
Yes. It is published under the terms of the GNU General Public License.

URL dieser Seite: http://www.joerg-ruedenauer.de/Software/fdda/faq.html
Autor dieser Seite: Jörg Rüdenauer
Letzte Änderung am: 11.02.2004

L-Space now!     Valid XHTML 1.0!     Valid CSS!