私は、通信層のいくつかのオプションを評価しているクライアント/サーバーアプリケーションを開発しています。
この通信フレームワークの一部として、私は、独自のバイナリ構造を再発明する代わりに、トランスポートデータの表現にGoogleのプロトコルバッファ(PB)を使用することを検討しています。
さて、実際のトランスポートについてですが、これらのバイナリメッセージを送受信するためにプレーンソケットを使用するべきか、それとも何らかのミドルウェアを使用するべきか疑問に思っています。ミドルウェアを使用すると、ソケットに比べて明らかな利点があります。私が気にかけているのは、コミュニケーションモデル-パブリッシュ/サブスクライブ、リクエスト/レスポンス、フェイルオーバーです。
一方、ソケットを使用すると、ミドルウェアアプローチと比較してオーバーヘッドが低くなり、パフォーマンスが向上するという利点があります。
また、プロトコルバッファ(Googleのプロトコルバッファwikiのサードパーティアドオン)で利用可能なRPCライブラリを使用して、クライアントとサーバー間で通信することも考えられます。低レベルのソケットから抽象化しますが、それでもミドルウェア機能をサポートしていません。
現在、私のクライアントはAdobe Flex GUIと2つのサーバー側プロセス(1つはJava、もう1つはC ++)です。将来的には、クライアント側とサーバー側で、.NETなどの他の言語で開発された他のサービスを利用できるようになる可能性があります。
専門家はこれらの選択について、そしてパフォーマンスを損なうことなくうまく機能することを経験からどのように感じていますか。開発者が使用する他の選択肢はありますか?
ありがとうDece