コンピューティングにおいて、データフローは幅広い概念であり、アプリケーションやコンテキストに応じてさまざまな意味を持ちます。ソフトウェア アーキテクチャのコンテキストでは、データフローはストリーム処理やリアクティブ プログラミングに関連します。
ソフトウェアアーキテクチャ
データフローコンピューティングは、計算を有向グラフとして表現するというアイデアに基づくソフトウェアパラダイムです。有向グラフでは、ノードが計算で、データがエッジに沿って流れます。[1]データフローは、ストリーム処理やリアクティブプログラミングとも呼ばれます。[2]
さまざまな形式の複数のデータフロー/ストリーム処理言語が存在します (ストリーム処理を参照)。データフロー ハードウェア (データフロー アーキテクチャを参照) は、古典的なフォン ノイマン アーキテクチャの代替です。データフロー プログラミングの最もわかりやすい例は、スプレッドシートを使用したリアクティブ プログラミングと呼ばれるサブセットです。ユーザーが新しい値を入力すると、その値はすぐに次の論理「アクター」または計算式に送信されます。
分散データ フローは、分散マルチプロトコルのダイナミクスを捉えるプログラミング抽象化としても提案されています。データ フロー プログラミングのデータ中心の観点の特性により、高レベルの機能仕様が促進され、システム コンポーネントに関する形式的な推論が簡素化されます。
ハードウェアアーキテクチャ
データフローのハードウェア アーキテクチャは、1970 年代から 1980 年代初頭にかけて、コンピュータ アーキテクチャ研究の主要なトピックでした。マサチューセッツ工科大学(MIT)のJack Dennis は、静的データフロー アーキテクチャの分野を切り開きました。従来のメモリ アドレスをデータ依存タグとして使用する設計は、静的データフロー マシンと呼ばれます。これらのマシンでは、単純なタグではそれらを区別できないため、同じルーチンの複数のインスタンスを同時に実行することはできませんでした。コンテンツアドレス指定可能なメモリを使用する設計は、 Arvindによって動的データフロー マシンと呼ばれています。これらは、メモリ内のタグを使用して並列処理を容易にします。データは、コンピュータのコンポーネントを介してコンピュータ内を流れます。データは入力デバイスから入力され、出力デバイス (プリンタなど) から出力されます。
同時実行性
データフロー ネットワークは、チャネルを介してデータを送信することで通信できる、同時に実行されるプロセスまたはオートマトンからなるネットワークです(メッセージ パッシングを参照)。
ジル・カーンにちなんで名付けられたカーン過程ネットワークでは、過程は決定的です。これは、各決定的過程が入力ストリームから出力ストリームまでの連続関数を計算し、決定的過程のネットワーク自体が決定的であるため、連続関数を計算することを意味します。これは、そのようなネットワークの動作が一連の再帰方程式で記述でき、不動点理論を使用して解くことができることを意味します。データの移動と変換は、一連の図形と線で表されます。
その他の意味
データフローは以下を指す場合もあります。
- Power BIデータフローは、Microsoft Dataverse (旧称 Microsoft Common Data Service) を通じて Power BI レポート開発者が使用できるように、ソース データをクレンジングされたPower BI データセットに変換するために使用されるクラウド内のPower Query 実装です。
- Google Cloud Dataflow は、Google Cloud Platform エコシステム内で Apache Beam パイプラインを実行するためのフルマネージド サービスです。
参照
- バイナリ モジュラー データフロー マシン(BMDFM)
- 連続プロセスの伝達
- 複合イベント処理
- データフロー図
- データフロー解析、プログラム解析の一種
- データストリーム
- データフロープログラミング(プログラミング言語パラダイム)
- Erlang (プログラミング言語)
- フローベースプログラミング(FBP)
- フロー制御(データ)
- 関数型リアクティブプログラミング
- 遅延評価
- Lucid(プログラミング言語)
- Oz (プログラミング言語)
- パケットフロー
- パイプライン(コンピューティング)
- ピュアデータ
- 状態遷移
- テンソルフロー
- テアノ
- ウォード・メラー法
参考文献
- ^ Schwarzkopf, Malte (2020年3月7日). 「データフローコンピューティングの注目すべき有用性」. ACM SIGOPS . 2022年7月31日閲覧。
- ^ ストリーム処理の簡単な紹介
