NiFiはなぜFBPなのか——用語対応と歴史(GPSS→AMPS→DSLM)
Apache NiFiはシステム間のデータフローを自動化する基盤です。本稿はNiFiとフローベースプログラミング(FBP)の対応と、FBP史(GPSS/AMPS/DSLM)の要点を、原典に基づき手短に整理します。 Apache NiFiは、データルーティング、変換、システム調停ロジックの強力でスケーラブルな有向グラフをサポートする。 簡単に言えば、NiFiはシ ステム間のデータフローを自動化するために作られた。 「データフロー」という言葉は様々な文脈で使われますが、ここではシステム間の情報の流れの自動化・管理という意味で使っています。この問題領域は、企業が複数のシステムを持ち、あるシステムはデータを作成し、あるシステムはデータを消費するようになってから、ずっと存在してきました。このような問題や解決方法は、これまでにも数多く議論され、明確にされてきました。包括的で容易に利用できる形式は、Enterprise Integration Patterns(エンタープライズ・インテグレーション・パターン)に記載されています。 https://nifi.apache.org/docs.html https://hub.docker.com/r/apache/nifi NiFiの基本的な設計コンセプトは、フローベースプログラミング[fbp]の主要な考えと密接に関連しています。ここでは、NiFiの主なコンセプトとFBPとの対応関係を紹介します。 https://nifi.apache.org/docs.html コンピュータプログラミングにおいて、フローベースプログラミング(FBP)とは、アプリケーションを「ブラックボックス」プロセスのネットワークとして定義するプログラミングパラダイムであり、メッセージパッシングによってあらかじめ定義された接続を介してデータを交換する。このブラックボックスプロセスは、内部を変更することなく、無限に再接続して異なるアプリケーションを形成することができる。このように、FBPはコンポーネント指向である。 FBPはデータフロープログラミングの特殊な形態で、境界付きバッファ、定義された寿命を持つ情報パケット、名前付きポート、接続の個別定義に基づいている。 https://en.wikipedia.org/wiki/Flow-based_progr...