リアルタイムシステムの設計に使用される設計の概念と考慮事項をよりよく理解し、どのような種類のものを学びたいかを知るために、WPFアプリケーションで使用される架空の大量データ(オプション取引)を使用して独自のミニプロジェクトを作成したいと思いました。さまざまな手法とアプローチが使用されます。Tibcoのようなサードパーティのソリューションについては言及しないでください。これは学習目的です。私の意図は、WPFアプリケーションが5秒ごとにUIを更新することです
架空のマーケットデータサーバーを設計するとき、大量のパフォーマンスが基準であるとすると、いくつかの簡単なアイデアが思い浮かびます-マルチキャストUDP(これは低レベル/悪い方向ですか?)、キューを使用するメッセージングアーキテクチャ(MSMQなど)クライアントアプリがリモートサービスホストであるRabbitMQは、たとえばWCFTCPバインディングまたはWebサービスを介して要求を開始します。
私が持っていた1つの考えは、クライアントが独自のローカルキューを維持し、価格設定サーバーがメッセージングソリューションを使用してブロードキャストするトピックをサブスクライブすることでしたか?または、サーバーがすべてのクライアントにデータを均等にブロードキャストし、データをローカルでフィルタリングおよび照合するためにクライアントに任せるのではないでしょうか。人々の経験では、各アプローチの長所と短所は何ですか?私がここで見逃した他のアプローチはありますか?クライアントがデータをプルするのか、それともサーバーがデータをプッシュするのか、ということになると思います。
もう1つの質問は、これらのメッセージのワイヤ形式はどうなるでしょうか。私は主に、リポジトリ層、ドメインモデル(検証とワークフローロジックのメソッドを含む)、および単純なサービス層に分けられた、豊富なビジネスオブジェクトクラスの操作に慣れています。このアプローチを引き続き活用してパフォーマンス目標を維持できますか、それともより軽量のデータペイロード形式を作成する必要がありますか?