In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, ...
, dataflow is a broad concept, which has various meanings depending on the application and context. In the context of
software architecture, data flow relates to
stream processing or
reactive programming.
Software architecture
Dataflow computing is a software paradigm based on the idea of representing computations as a
directed graph, where nodes are computations and data flow along the edges.
Dataflow can also be called
stream processing or
reactive programming.
A Short Intro to Stream Processing
/ref>
There have been multiple data-flow/stream processing languages of various forms (see Stream processing). Data-flow hardware (see Dataflow architecture) is an alternative to the classic von Neumann architecture. The most obvious example of data-flow programming is the subset known as reactive programming with spreadsheets. As a user enters new values, they are instantly transmitted to the next logical "actor" or formula for calculation.
Distributed data flow
Distributed data flow (also abbreviated as ''distributed flow'') refers to a set of events in a distributed application or protocol.
Distributed data flows serve a purpose analogous to variables or method parameters in programming languages suc ...
s have also been proposed as a programming abstraction that captures the dynamics of distributed multi-protocols. The data-centric perspective characteristic of data flow programming promotes high-level functional specifications and simplifies formal reasoning about system components.
Hardware architecture
Hardware architectures for dataflow was a major topic in computer architecture
In computer engineering, computer architecture is a description of the structure of a computer system made from component parts. It can sometimes be a high-level description that ignores details of the implementation. At a more detailed level, the ...
research in the 1970s and early 1980s. Jack Dennis of the Massachusetts Institute of Technology
The Massachusetts Institute of Technology (MIT) is a Private university, private Land-grant university, land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern t ...
(MIT) pioneered the field of static dataflow architectures. Designs that use conventional memory addresses as data dependency tags are called static dataflow machines. These machines did not allow multiple instances of the same routines to be executed simultaneously because the simple tags could not differentiate between them. Designs that use content-addressable memory are called dynamic dataflow machines by Arvind
Arvind (from sa, अरविन्द ') is a common Indian given name, Indian masculine name meaning Nelumbo nucifera, lotus. The name is of Hindu origin. Its variants include Aravind, Aravinda, Aravindan, and Aurobindo ().
Meaning
' means ...
. They use tags in memory to facilitate parallelism.
Data flows around the computer through the components of the computer. It gets entered from the input devices and can leave through output devices (printer etc.).
Concurrency
A dataflow network is a network of concurrently executing processes or automata that can communicate by sending data over ''channels'' (see message passing.)
In Kahn process networks, named after Gilles Kahn, the processes are ''determinate''. This implies that each determinate process computes a continuous function from input streams to output streams, and that a network of determinate processes is itself determinate, thus computing a continuous function. This implies that the behavior of such networks can be described by a set of recursive equations, which can be solved using fixed point theory. The movement and transformation of the data is represented by a series of shapes and lines.
Other meanings
Dataflow can also refer to:
* Power BI Dataflow, a Power Query implementation in the cloud used for transforming source data into cleansed
''Cleansed'' is the third play by the English playwright Sarah Kane. It was first performed in 1998 at the Royal Court Theatre Downstairs in London. The play is set in a university which (according to the blurb of the published script) is oper ...
Power BI Datasets to be used by Power BI report developers through the Microsoft Dataverse (formerly called Microsoft Common Data Service).
* Google Cloud Dataflow, a fully managed service for executing Apache Beam pipelines within the Google Cloud Platform ecosystem.
See also
* Binary Modular Dataflow Machine (BMDFM)
* Communicating sequential processes
* Complex event processing
* Data-flow diagram
* Data-flow analysis, a type of program analysis
* Data stream
* Dataflow programming (a programming language paradigm)
* Erlang (programming language)
Erlang ( ) is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system. The term Erlang is used interchangeably with Erlang/OTP, or Open Telecom Platform (OTP), which consists of the Erlang ru ...
* Flow-based programming (FBP)
* Flow control (data)
* Functional reactive programming
* Lazy evaluation
In programming language theory, lazy evaluation, or call-by-need, is an evaluation strategy which delays the evaluation of an expression until its value is needed ( non-strict evaluation) and which also avoids repeated evaluations ( sharing).
T ...
* Lucid (programming language)
* Oz (programming language)
* Packet flow
In packet switching networks, traffic flow, packet flow or ''network flow'' is a sequence of packets from a source computer to a destination, which may be another host, a multicast group, or a broadcast domain. RFC 2722 defines traffic flow as " ...
* Pipeline (computing)
* Pure Data
Pure Data (Pd) is a visual programming language developed by Miller Puckette in the 1990s for creating interactive computer music and multimedia works. While Puckette is the main author of the program, Pd is an open-source software, open-source ...
* State transition
* TensorFlow
* Theano
* Ward-Mellor methodology
References
{{Reflist
Computer architecture
Models of computation