-
Notifications
You must be signed in to change notification settings - Fork 5
Terminology
Arto Bendiken edited this page Jul 28, 2024
·
18 revisions
Common terms in the flow-based world and their explanation. Below each paragraph represents a term. First it is given in bold as proposed by Morrison's book (if available), other versions are given in braces. Terms may link to articles with detailed description of principles behind them.
- Array Port - a Port with indexed slots, reads and writes to Array Ports require an index.
- Bracket Information Packet - a special Information Packet that indicates the presence of a Substream. It can contain information itself and there are two kinds: opening brackets (denoting the start of a Substream) and closing brackets (denoting the end of a Substream). They can be nested as needed.
- Capacity - max. number of information packets that can be buffered within a connection at a time.
- Component - a black box processing data, the most common building block in FBP. Syn.: class (OOP), processor (DSP).
- Connection - a connection between components through which data flows. Syn.: pipe (POSIX), buffer (Protocol Buffers), message queue (AMQP), channel (CSP), line (DSP).
- Edge - a static definition of a Connection within a Graph. Syn.: arc.
- Epoch - elementary unit of system lifetime. Syn.: tact, tick (DSP).
- Graph - structural representation of an application as a network of components and connections between them.
- Information packet - a unit of data flow exchanged across components. Syn.: message (OOP), record (RDMBS), tuple (Linda).
- Initial information packet - a Packet utilized as process configuration that comes to existence when a read is issued, not triggering the configured process. Syn.: parameter (IDEF0).
- Looper - A process that does multiple receives without deactivating - in other words a "long lived process".
- Nest - a part of the flow graph with intensive internal communication which is attached to the same physical or virtual machine or OS thread/process for high efficiency and may have its own scheduler. Remote nests are connected via network into a distributed application graph. Syn.: island, section.
- Net - a running instance of Graph.
- Node - a generic term for a process or a subnet in a graph that is not running yet.
- Non-looper - A short lived process that works like a subroutine, deactivating after completing its task.
- Port - a connection point in a component through which it sends or receives data. Ports are one way, either OUT or IN.
- Process - an instance of a component being executed in runtime. Multiple processes can share the same component code. Syn.: object (OOP), filter (DSP).
- Stream - a sequence of information packets transmitted from one component to another. Syn.: signal (DSP).
- Subnet - a graph that exposes inports and outports and is reused as a component itself. Syn.: subgraph, composite component.
- Substream - a stream nested within another (parent) stream and containing control (bracket) IPs.
- Thread - operating system parallel execution primitive with shared memory.
Framework | Building block | Code block | Run-time block instance | Input/Output | Connection | Graph | Message |
---|---|---|---|---|---|---|---|
Flow-based Programming | Component | Component | Process | Port | Connection | Graph | Information Packet |
NoFlo | Node | Component | Process | Port | Connection | Graph | Information Packet |
Node-RED | Node | Function Node | Node | Input, Output | Wire | Flow | Message |
Apache NiFi | Processor | Processor | Processor | Relationship | Connection | Process Group | FlowFile |
vvvv | Node | Operation | Process | Pin | Link | Patch | Data |
Max/MSP | Object | Object | - | Inlet, Outlet | ? | Patch | Message |
Quartz Composer | Patch | Patch | - | Parameter | Connection | Macro | Message |
LabVIEW | Virtual Instrument | Function | - | Connector | Connection | Diagram | Signal |
VHDL | Entity | Entity | Component | Port | Port Map | Dataflow | Signal |
Verilog | Module | Module | - | Port | Connection | Module | Signal |
Apache Spark | Operation | Operation | - | Input, Output | - | Workflow | Data Stream, Data Frame |
Apache Flink | Operator | Transformation | - | Input, Output | Data Stream | Dataflow | Data Stream |
Apache Beam | Transform | Transform | - | Input, Output | Collection | Pipeline | Element |
Apache Airflow | Operator | Operator | Task | Argument, Output | Dependency | DAG | - |
TensorFlow | Operation | Function | - | - | - | Graph | Tensor |
Protoflow | Block | Block | Process | Port | Connection | System | Message |