このスレッドの以前の投稿で指摘されたように、選択肢の 1 つは OpenSplice DDS です。これは、OMG DDS 標準 (NDDS によって実装された同じ標準) のオープン ソース実装です。
検討している他のミドルウェアに対する OpenSplice DDS の主な利点は、次のように要約できます。
- パフォーマンス
- QoS の豊富なサポート (持続性、耐障害性、適時性など)
- データ中心 (例: データ ストリームのクエリとフィルタリングの可能性)
私が理解したいのは、IDL に関するあなたの問題は何かということです。DDS は、言語に依存しないユーザー データ型の指定方法として IDL を使用します。ただし、DDS は IDL に限定されません。必要に応じて XML を使用することもできます。データ型を指定し、その表現を特定のプログラミング言語から分離する利点は、ミドルウェアが次のことができることです。
(1) データをシリアル化する負担を軽減します。
(2) 非常に時間/空間効率の高いシリアライゼーションを生成します。
(3) エンドツーエンド型の安全性を確保し、
(4) (JMS のようなヘッダーだけでなく) データ型全体でコンテンツ フィルタリングを許可する。
(5) プログラミング言語 (Java、C/C++、C# など) 間でオンザワイヤの相互運用性を有効にします。
設計しているシステムまたはアプリケーションによっては、上記のプロパティの一部が役に立たない、または適切でない場合があります。その場合、シリアル化されたデータの所有者である「DDS タイプ」を 1 つまたはいくつか生成するだけです。
JMS について考えると、データの送信に使用できる 5 つの異なるトピック タイプが提供されます。DDS でも同じことができますが、トピックの種類を正確に定義できる柔軟性があります。
最後に、 Scala と DDS に関するこのブログ エントリをチェックして、特に分散システムで型と静的型付けが優れている理由について詳しく説明します。
-交流