「集中型ブローカー」アーキテクチャ (ブローカーが単一障害点になる可能性がある場所) と、重要性などの DDS-QoS に基づいてトラフィック フローを管理する各マシン上のサービス/デーモンを区別することは本当に良いことだと思います。 (DDS:transport-priority) と緊急性 (DDS: latency-budget)。
ほとんどの人が、(タイムスライス、優先度クラスなどに基づいて) 重要な/共有リソースとして CPU を管理する(リアルタイムの)プロセス スケジューラがマシン上に絶対に必要であると考えていることに気付くのは興味深いことです。 (アプリケーションコードの処理ではなく)情報を配布することがすべてであるDDSに来ると、ネットワークを管理する「ネットワークスケジューラ」が(少なくとも)「便利」になるのは「奇妙」であることがよくあります(-インターフェイス) を共有リソースとして使用し、トラフィックをスケジュールします (QoS ポリシー駆動の「パッキング」と複数のトラフィック シェーピング プライオリティ レーンの利用に基づく)。
そして、これはまさに、単一マシン上で実行される複数のアプリケーションが共有メモリ セグメントを使用してデータを共有でき、各物理ネットワークにネットワーク サービス (デーモン) が存在する (オプションの) フェデレーション アーキテクチャ モードを利用する場合に、OpenSplice が行うことです。 -緊急性と重要性に関する実際の QoS ポリシーに基づいて、インバウンド トラフィックとアウトバウンド トラフィックをスケジュールするインターフェイス。このようなサービスがすべてのノード情報に「アクセス」できるという事実は、さまざまなアプリケーションからのさまざまなトピックからのさまざまなサンプルを (潜在的に大きな) UDP フレームに結合することを容易にし、おそらくこの「パッキング」のために利用可能なレイテンシ バジェットの一部を活用することさえできます。したがって、効率 (スループット) と決定論 (レイテンシ/ジッタ) の間で適切なバランスを取ることができます。「プライベート」Rx/Tx スレッドと DIFSERV 設定を使用した優先レーン。
そのため、ノードごとにネットワーク スケジューリング デーモンを使用することには、確かにいくつかの利点があります (また、システム全体の再送信を引き起こす「過剰な生産性」、つまりシステムを爆破する「過小反応」のいずれかである可能性のある障害のあるアプリケーションからネットワークを分離するため)。 .. 「ネットワーク スケジューリング デーモン」は「単一障害点」と見なされる可能性があるという事実について議論するときに忘れられることが多い側面ですが、「他のビュー」は仲裁なしの可能性があります。ワイヤと直接対話する「スタンドアロン」アプリケーションは、何らかの理由で上記のように誤動作を開始すると、潜在的なシステム スレッドと見なされる可能性があります。
とにかく .. 常に物議を醸す議論です。そのため、OpenSplice DDS (v6 以降) は、フェデレーションと非フェデレーション (「スタンドアロン」または「単一プロセス」とも呼ばれます) の両方の展開モードをサポートしています。
これが多少役立つことを願っています。