Feature: Improved workflow composition
Re-naming wires
When using workflows within other workflows, exposing the inputs and outputs can become confusing if multiple of those have the same type and name.
trace +----------+
Mem Trace| |
+-------->+ SimX +-------+
| | |
+----------+ | +----------+ plot
+-----> | | Comp. Plot
| Plotter +------------>
trace +----------+ +-----> | |
Mem Trace| | | +----------+
+-------->+ SimX +-------+
| |
+----------+
+-+
| |
| |
| |
+-+ +-+
++ ++
+++
+
trace
Mem Trace +----------+ plot
+--------> | | Comp. Plot
trace | Workflow +------------>
Mem Trace | |
+--------> | |
+----------+
A possible solution is to allow users to rename all wires according to their functionality, thus improving the description of the workflow.
Wire spliting
Some workflows require that many objects get the same input, however, there is no semantics to describe this situation (other than creating another object that processes the input and delivers it to multiple objects). To facilitate this type of case, a mechanism to allow OCCAM to perform this operation without the overhead of executing an object is required.
trace +----------+
Mem Trace| |
+-------->+ SimX +-------+
trace +-----+ | | | |
Mem Trace | +----+ +----------+ | +----------+ plot
+------> | + | +-----> | | Comp. Plot
| +----+ | Plotter +------------>
+-----+ |trace +----------+ +-----> | |
|Mem Trace| | | +----------+
+-------->+ SimX +-------+
| |
+----------+
+-+
| |
| |
| |
+-+ +-+
+-| |-+
++ ++
+++
+
+----------+ plot
trace | | Comp. Plot
Mem Trace | Workflow +------------>
+--------> | |
| |
+----------+