私は現在、各クライアントがサーバー上で 1 つのオブジェクトを排他的に所有するクライアント サーバー システムを開発しています。クライアントとそのオブジェクト間の基本的な対話は、リモート プロシージャ コール (RPC) を介して行われます。さらに、クライアントはそのオブジェクトに関連するイベントに登録できる必要があります。1 つのアプローチは、パブリッシュ/サブスクライブ モデルです。ただし、登録済みのクライアント メソッド (分散オブザーバー) を呼び出すには、RPC を使用してサーバー上のオブジェクトを使用することをお勧めします。
質問: 双方向呼び出しを可能にする軽量の多言語 RPC ライブラリを知っていますか? 私の目的のために、RPC よりも優れた手法はありますか? どう思いますか?
サーバーは Java で作成されますが、クライアントはさまざまな言語で作成できます。最初のクライアント アプリケーションは Android で実行されます。すべてのネットワーキングは、(ワイヤレス) ローカル エリア ネットワーク内で行われます。統合の容易さは私にとって最優先事項であるため、高レベルの API は素晴らしいものです。
これまでの研究 (短い):
- RMI は Java に制限されています
- SOAP と REST は双方向 RPC を許可していないようです
- Protobuf はシリアル化ライブラリですが、RPC はその上で簡単に実現できます。protobuf に基づく RPC 実装が利用可能ですが、それらのほとんどは 1 つまたは 2 つの言語しかサポートしていません。
- Thrift は双方向 RPC を直接サポートしていませんが、可能です。
- RabbitMQ や ActiveMQ などのメッセージ ブローカーは機能しますが、やり過ぎかもしれません。また、追加のサーバーが実行されている必要があります。
- CORBA は非常に複雑なようで、最新の状態であるかどうかはわかりません。
お気軽に訂正してください!