Classification

This article represents a classification of existing and future implementations by a set of factors. Each classification criteria should form a heading of the appropriate section where criteria is expanded and systems are classified. At the bottom it would be great to represent a matrix which is simple enough and any FBP-related system could fit into one of its few cells.

Synchronous or asynchronous functioning

A paragraph explaining what synchronous and what asynchronous systems are.

Synchronous systems

Subsection containing more details on synchronous functioning and example systems.

Asynchronous systems

Subsection containing more details on synchronous functioning and example systems. Most of FBP systems actually fit here.

Internal or external network definition

A paragraph explaining the difference between internal vs. external definition of connections.

Systems with internal network definition

Special notes about such systems and examples of them.

Systems with external network definition

Special notes about such systems and examples of them. FBP systems are usually meant to have external network definition.

Visual or textual representation

Some text here explains what the visual programming/design languages are in comparison to traditional textual descriptions. It also needs to be noticed that for many systems Visual representation is used to make a network, whereas individual components are developed with a traditional programming language.

Visual flow-based systems

Morrison's FBP, LabVIEW, Pypes and lots more will go here.

Textual-only systems

Here flow-based systems which use text for both component and network definitions go.

Static or dynamic structure

The main difference between them is that dynamic systems can change their structure during run time.

Systems with static structure

Systems which should be recompiled/restarted to extend their structure should be listed here.

Systems with dynamic structure

Systems with runtime evolution capability should be listed here.

Single or multiple computing nodes parallelism

This is a bit more complex than a binary classification. There are systems with single node parallelism implemented by job scheduling between lightweight coroutines (also known as "green threads"). There are systems which support parallelism by running components in multiple OS processes (no memory shared) or OS threads (global memory shared). There are systems which can run not only on the same machine with multiple CPUs/cores but also on multiple computers connected with a TCP or UDP network. Finally, there are systems which combine 2 or more of these several parallelism models.

FBP systems comparison matrix

See FBP systems spreadsheet by Tom Young.


Comments

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License