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.
- On a UNIX machine: tar xvf dacia.tar
- On a Windows machine: use a zip program, such as WinZip
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
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()
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
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