11

同じ会社がすべて Java で記述した分散アプリケーションを開発する場合、Web サービスと RMI のどちらを選びますか? パフォーマンス、疎結合、使いやすさなどの長所と短所は何ですか? WSを選ぶ人はいますか?RMI を使用してサービス指向アーキテクチャを構築できますか?

4

5 に答える 5

9

私はそれについて次のように考えてみます。

相互に独立したサービスを実行する予定ですか? これらのサービスは、将来、Java 以外のアプリケーションからアクセスされる可能性がありますか? 次に、Web サービスに進みます。

アプリケーションの一部 (単数形に気をつけてください) を複数のサーバーに分散させたいだけですか? 次に RMI を選択すると、Java の世界を離れてすべてを緊密に連携させる必要がなくなります。

于 2008-09-23T13:04:56.417 に答える
6

私はWSを選びます。

  • WS/RMIがボトルネックになる可能性はほとんどありません。
  • 将来、他の可能なテクノロジーへの扉を閉めるのはなぜですか?
  • クライアント/サーバー上のクラスのバージョンが同期しなくなった場合、RMIで問題が発生する可能性があります。

そして...私はおそらくRESTサービスを選択するでしょう。

于 2008-09-23T13:24:03.280 に答える
2

あなたがそれを必要としない (非 Java との相互運用) 場合、そしておそらくそうでない場合は、RMI の方が優れているでしょう。より少ないコード、より少ない構成、より少ない帯域幅のオーバーヘッド。

必要になるのではないかと心配している場合のオプションは、EJB3 を使用することです。RMI を使用し、セットアップと展開が非常に簡単ですが、必要に応じて呼び出しを簡単に Web サービスに変換することもできます。

何をするにしても、自分のものを作成しないでください。標準に固執します。

于 2008-09-23T18:28:57.760 に答える
1

私の選択肢は次のとおりです。

標準のJavaシリアライゼーション - 長所:imhoは最もパフォーマンスが高く、実装が簡単です(Springを使用してローカルインターフェースをリモートインターフェースとして公開しています)。短所:シリアライゼーションは、異なるjvmバージョン間では機能しません

バイナリ シリアライゼーション (jetty の hessian など) - 長所 : Java シリアライゼーションと同じパフォーマンスで、異なる jvm バージョン間で動作します

WS: 異なるプラットフォーム java + .net 間の相互運用性が必要な場合のみ。

于 2008-09-23T13:42:58.383 に答える
1

RMI は迅速に開発できる優れたトランスポートですが、運用環境では使用しないことをお勧めします。シリアライゼーションの互換性の問題により、事態が厄介になる可能性があります。展開を非常に慎重に調整する必要があります。

はい、WebServices は非効率的ですが、ハードウェアを使用するだけです。または、全脂肪の SOAP/WSDL ではなく、プレーンで軽量な XML-over-HTTP を使用します。

于 2008-09-23T16:57:40.227 に答える