0

サーバーとクライアントがJavaのみの場合、Axis2によって実装されたSOAPと比較して、RMIはより効率的(帯域幅と遅延)になりますか?RMIは近年人気を失っていますが、それは使用できないという意味ではありません。

そして、XML-RPCはどうですか?

4

1 に答える 1

3

RMIにはいくつかの興味深い機能があり、適度に高速ですが、いくつかの問題もあります。

  1. シリアル化するすべてのものがSerializableを実装していることを確認する必要があります。
  2. サーバーとクライアントがすべてのSerializableクラスのまったく同じバージョンを持ち、まったく同時にデプロイされていること、およびシリアル化するすべてのクラス(serializableオブジェクトによって保持されているフィールドを含む)がserialVersionUIDを適切に使用していることを確認する必要があります。そうしないと、苦痛の世界に陥ります(「シリアルバージョンの不一致」を読んでください)。
  3. シリアル化するクラスが、最終的に大きなオブジェクトへの参照を保持するオブジェクトへの参照を保持していないことを確認する必要があります。そうしないと、ネットワークを通過するパケットのサイズに非常に驚かれることでしょう。
  4. Java以外からサービスにアクセスすることにした場合は、別のリモートアクセスレイヤーを作成する必要があります。
  5. #5はありません。

実際には、最近はほとんどの場合、RESTサービスをお勧めします。小さなJavaオブジェクトを作成し、GsonやJacksonなどを使用してデータを前後にマーシャリングするのは非常に簡単なので、RMIの利点はほとんどありません。

于 2013-02-18T21:29:25.923 に答える