DACIA download page



The complete DACIA distribution, including the Java source code and the binaries.
The DACIA source code only. You will need to compile the code to produce the binaries.


Instructions for installing and running DACIA:

Though minimal, hopefully the instructions below will be enough to help you run DACIA. If you encounter any problems with it, please send me email.

  • Unpack the distribution A directory called dacia will be created, containing the code.

  • Set the CLASSPATH environment variable to the place where the dacia directory is located. For instance, if the path to the directory is /x/radu/work/dacia, then CLASSPATH = /x/radu/work.

  • You will need a Java virtual machine, and a JDK to compile the source code (Java 1.1 should be enough, but the more recent version, the better), and that's about all.

  • To compile the source code, on a UNIX machine you can use the makefile provided. Just type make in the dacia directory, and then in the chat subdirectory.

  • To run an example, use a command line such as:
    java dacia.chat.Main $YOUR_DIRECTORY/dacia/chat/Engine.config    or
    java dacia.Main $YOUR_DIRECTORY/dacia/Engine.config

    The main program gets as an argument the configuration file, and the number of Chat clients.

    Type a wrong command line to get the correct list of arguments.

    The part that is application-specific is in the Main program, and the ChatMonitor. In the main program you can create PROCs and connect them. After you create a PROC you should use the Engine.addProc() call.

    You can eventually take a look at the source files in the chat subdirectory: Main.java, Chat.java (a PROC), ChatMonitor.java (a monitor). For an even simpler PROC, look at Forward.java in the parent directory.

    The Engine.runShell() call brings up the command line interface. At the prompt, type help (or h) to get a list of commands. These are probably self-explanatory. Use print to see what PROCs are in the system and how they are connected.

    The Engine.displayGraph() brings up the GUI. Everything you can do in the command window you can also do using the GUI. Left click on an object to move/resize it. You can move a PROC from one host to another through drag-and-drop. Right click somewhere in the window to bring up a menu. Or use the window menus.

    Run the application on 2 hosts. Use the connect command to connect them. Connect/disconnect PROCs as you wish.

    To start a monitor on a host, type "startMonitor" in the command window. The ChatMonitor will offload some Chat clients from one server to another based on the load.

  • If you want to take a look at the source code, I suggest that you look at the files: Engine.java, Proc.java, Port.java in the parent directory and the Chat implementation in the chat subdirectory. Engine.java is the largest and most important file. Most of the underlying functionality of DACIA is accomplished by the Engine.