Dflow system implementation manual

This manual is intended to explain the design and implementation of our dataflow editor to programmers who wish to understand and extend it. If you need to learn how to use our system, the user manual may be a better place to start.


The dataflow editor interface program helps in constructing and editting a dataflow, which is essentially a network of programs or modules, with the data output of a module driving the input of any module attached to it. Module inputs and outputs are modelled by ports and connections are made between the output port of one module and the input port of a module that requires the first module's output data.

The system is designed so that it can handle modules that use files for input/output. In other words, it uses temporary files to transfer data between the modules in a dataflow. We provide means for the system user to specify a pallette, or library of modules he intends to use in building a dataflow. This specification describes the module, giving the system the module's name, its executable path, and a description of its inputs, outputs and the flags that the program takes.

dFlow is divided broadly into a front end which is mainly the dataflow editor, and a back-end that is concerned with executing the dataflow by scheduling the individual modules and making sure they all get the data they require to run. In addition to these parts, there is a module that enable dataflows to be loaded from and saved to files, and one that reads in the user`s module library. The rest of this document describes the design of these components and the way the work with each other.

John A Konglathu