A Task Graph within the context of Triana refers to an XML
document which represents a group unit or the entire
Triana Network. Potential use cases for task graph metadata:
A task graph will be used by OCL to execute the entire
network as set out;
A task graph representing a group unit will be used
to provide details on tools available;
A task graph can be used as a record of the
experiment and this record can be used to
reconstruct the experiment and also pass it
around to other scientists for replication.
A task graph can be used as a check-pointing
mechanism to migrate if necessary.
For example, this interface could be as simple as:
String saveState();
// which returns a string of the checkpointed Triana i.e. to serialize
Trianas state
Void restoreState(String state);
// to restore the state within Triana i.e. to deserialize
Requirements include:
Name and id of task graph
Description
Tasks comprising the task graph
Connections between the tasks
Layout metadata
Metadata on host machine
A simple task graph example is included below:
<?xmlversion="1.0"
encoding="UTF-8"?>
<taskgraph>
<name> </name>
<description> </description>
<parameters>
<param name="" value= ""/>
</parameters>
<!-- List of tools participating in this task graph -->
<tasks>
<task toolname="" taskname=""
taskid="">
<description> </description>
<data>
<inportnum>
</inportnum>
<outportnum>
</outportnum>
<input>
<type> </type>
</input>
<output>
<type> </type>
</output>
</data>
<parameters>
<inportnum>
</inportnum>
<outportnum>
</outportnum>
<input>
<param
name="" value=""/>
</input>
<output>
<param
name="" value=""/>
</output>
<param
name="" value=""/>
</parameters>
</task>
</tasks>
<!-- List of connections between nodes on
tools in this task graph-->
<connections>
<connection>
<source taskid=""
node=""/>
<target taskid=""
node=""/>
</connection>
</connections>
<!-- information about how tools within
this task graph are visually
grouped and displayed -->
<layout>
<task taskid=""/>
<group>
<
task taskid=""/>
<
task taskid=""/>
</group>
<group>
<group>
<task
taskid=""/>
<task
taskid=""/>
</group>
<task taskid="
"/>
</group>
</layout>
</taskgraph>