GODIET

GODIET is a Java-based tool for automatic DIET deployment that manages
configuration file creation, staging of files, launch of elements, monitoring
and reporting on launch success, and process cleanup when the DIET deployment
is no longer needed [5]. The user of GODIET describes the desired
deployment in an XML file including all needed external services (e.g., omniNames
and LogService); the desired hierarchical organization of agents and servers is
expressed directly using the hierarchical organization of XML. The user also
defines all machines available for the deployment, disk scratch space available
at each site for storage of configuration files, and which machines share the
same disk to avoid unecessary copies. GODIET is extremely useful for large
deployments (e.g., more than 5 elements) and for experiments where one needs to
deploy and shut-down multiple deployments to test different
configurations. Note that debugging deployment problems when using GODIET can
be difficult, especially if you don't fully understand the role of each element
you are launching. If you have trouble identifying the problem, read the rest
of this chapter in full and try launching key elements of your deployment by
hand. GODIET is available for download on the
web11.2.

An example input XML file is shown in Figure 11.1; see
[5] for a full explanation of all entries in the XML. You can also
have a look at the fully commented XML example file provided in the GODIET
distribution under examples/commented.xml, each option is explained. To launch
GODIET for the simple example XML file provided in the GODIET distribution
under examples/example1.xml, run:

GODIET reads the XML file and then enters an interactive console mode. In this
mode you have a number of options:

GoDIET> help
The following commands are available:
launch: launch entire DIET platform
launch_check: launch entire DIET platform then check its status
relaunch: kill the current platform and launch entire DIET platform once again
stop: kill entire DIET platform using kill pid
status: print run status of each DIET component
history: print history of commands executed
help: print this message
check: check the platform status
stop_check: stop the platform status then check its status before exit
exit: exit GoDIET, do not change running platform.

We will now launch this example; note that this example is intentionally very
simple with all components running locally to provide initial familiarity with
the GODIET run procedure. Deployment with GODIET is especially useful when
launching components on multiple remote machines.

The status command will print out the run-time status of all launched
components. The LaunchState reports whether GODIET observed any
errors during the launch itself. When the user requests the launch of
LogService in the input XML file, GODIET can connect to the LogService after
launching it to obtain the state of launched components; when available, this
state is reported in the LogState column.

One of the main problem when writing a GODIET XML input file is to be compliant
with the dtd. A good tool to validate a GODIET file before using GODIET is
xmllint. This tool exist on most platforms and with the following
command:

$ xmllint your_xml_file --dtdvalid path_to_GoDIET.dtd -noout

you will see the different lines where there is problem and a clear description
of why your XML file is not compliant.