clojureプログラムでいくつかのDataflowプログラミング手法を使用することを検討していますが、Java、C#、または現実の世界でそのような手法を使用した他の主流言語を使用するプロジェクトから多くの情報を見つけるのに苦労しています。誰かがこれに関して共有できる経験を持っているかどうか聞いていただければ幸いです。
3 に答える
ここにいます!私たちは作成しました...(引用は私の古い投稿の1つからのものです):
自動化プロジェクト用のDFサーバー(ディスパッチャー、コンポーネントiterface、一連のコンポーネント、DF言語、DFコンパイラー、UI)を設計および実装しました。ベアC++で記述されており、いくつかのUnixライクなシステム(Linux x86、MIPS、avr32など、Mac OSX)で動作します。高度なフロー制御、複雑なスレッド制御(それほど高度なコンポーネントはありません)など、いくつかの機能が欠けているため、動作する場合でも、単なるプロトタイプです。現在、フル機能のサーバーに取り組んでいます。プロトタイプの実装と使用中に多くのことを学びました。
また、いつかビジュアルエディターを作る予定です。
データフローアプローチについても言及していないデータフローシステムがあります。
- SynthEdit:http ://www.synthedit.com/-これは、VSTプラグインを作成するためのオーディオ関連のフレームワークおよびコンポーネントセットです。
- TinyOS:http ://www.tinyos.net/-組み込みオペレーティングシステム/フレームワークです
- デジタルシンセサイザー/サンプラーはデータフローシステムであり、Cまたはアセンブリの一部でプログラムされています(おそらく) 。いくつかの例については、別の投稿に対する私の回答を確認してください。
- Quartz Composer、Mac用のグラフィックマジックツール、
- Blenderには画像作成用のデータフローサブシステムがあります。
データフローシステムの作成はロケット科学ではありません。これは、データフローフレームワークの基本に関する私の古い投稿です。
データフローという用語は広範です。シンセサイザーやサンプラーのようなリアルタイムの同期データフローシステムがあり、私たちの家のような非同期システムがあります。システム(ユーザーがボタンを押すかタイマーが切れない限り、システムはアイドル状態です)、スプレッドシートやmakeなどのさまざまなアーキテクチャもあります。
データフロープログラミングについてもっと読みたいですか?J.ポールモリソンのサイトと本を読んでください。
Pervasive DataRushは、Clojureを含む任意のJVM言語の並列データフロープログラミングのためのフレームワークです。
Pervasive DataRushは、データフローアーキテクチャを使用します。このアーキテクチャは、データフローキューによって相互接続された計算ノードのグラフとして実行されるプログラムを実装します。ノードはキューを使用してデータを共有します。データはストリーミングであるため、常にアクティブな操作に必要なデータのみをメモリに保存する必要があり、非常に大きなデータセットを分析できます。データフローグラフは、利用可能なメモリよりも大きな問題にスケーリングする可能性を提供するだけでなく、複数の形式の並列処理を活用します。
お客様は、ビッグデータ分析とデータ準備(ETL)にDataRushを使用しています。
もう1つ作成しました。MySQL /PHPバックエンドとAJAXフロントエンドを備えたコラボレーションスプレッドシートです。ソフトウェアはベータ状態であり、ドキュメントは作成中です。