7

Java RPC と Java Web サービスをどのように比較しますか。私は Web サービスの経験が少しあります。次に、RPC が Web サービスとどのように比較されるかを知る必要があります。RPC はどのように機能しますか?

追加 :いずれかのオプションを選択するのはいつですか?

4

4 に答える 4

7

Daff が言うように、Java RMI 自体は実際には Java-to_Java 通信に関連するだけです。最近の開発の容易さという点では、サービス プロバイダーの観点から見たコーディングの程度はかなり似ています。

ただし、パフォーマンスの問題に加えて、WebServices と RMI の間のギャップが非常に変動しやすい (一部のメッセージ サイズでは無視できるほどの差がある場合もあります) という点に加えて、考慮すべきもう 1 つの側面があります。それは回復力です。

通常、RMI は、1 つのクライアントが 1 つのサーバーと通信する場合に簡単にセットアップでき、単一サーバーの可用性に結合されたクライアントの可用性を気にする必要はありません。サーバーのダウン、クライアントのダウン、それが人生です。

Web サービスの場合、サービスをサーバーのクラスターに非常に簡単に展開できます。また、HTTP 経由で Web サービスを呼び出す場合、大規模な Web サイトで使用される通常のネットワーク ルーティングおよびスプレー技術をすべて簡単に活用できます。サーバーまたはクライアントで特別なコーディングは必要ありません。

現在、RMI を使用してこれと同じレベルの回復力を得ることができますが、それには少し優れたサービス提供インフラストラクチャが必要であり、そこで Java EE EJB プログラミング モデル (または Spring などのフレームワーク) が活躍します。EJB は RMI over IIOP を使用します。これは、サーバー インスタンスへの回復力のある呼び出しを可能にし、サーバーの停止を透過的に処理するプロトコルです。[セキュリティやトランザクションなど、さらに多くのことを行いますが、Web サービスも同様です。興味深いが、この議論の一部ではない.]

結論: 製品品質のサービスを提供するには、通常、サービス オブジェクトを作成することから始めます。私はたまたま Java EE EJB 3 を使用しており、他の人々は Spring を使用しています。そのサービス オブジェクトを Web サービスまたは RMI/IIOP として、非常に単純な構成/注釈を付けて公開できます。どちらかまたは両方を選択するのはほとんど手間がかかりません。私の世界ではたまたま相互運用性が重視されているため、Web サービスを公開する傾向があります。考慮すべき Java しかない場合は、RMI/IIOP を使用するとパフォーマンスがいくらか向上する可能性がありますが、これは保証されていないため、確実にパフォーマンスを測定する必要があります。

于 2009-08-29T09:41:33.983 に答える
1

私の推測では、Java RPC を使用したRMIを意味していると思います。リモート メソッド呼び出しは非常に Java 固有であるため、ネイティブ Java プログラム (両側で Java) での処理は非常に簡単です。バイナリ形式を使用してデータを転送し、HTTP 経由で実行されないため、おそらく Web サービス ソリューションよりも高速です。

一方、Web サービスは (一般に) XML や JSON などの一般的な形式を使用し、他のリモート アプリケーションから要求して読み取ることができます。オーバーヘッドは大きくなりますが (http 要求の作成とデータのシリアル化/逆シリアル化)、Web サービスを使用するクライアントは、Web サービスがそのデータをどのように生成したかを気にせず、特定のプログラミング言語に依存しません。指定されたフォーマット。

そのため、どのテクノロジーを使用するかは、サービスを使用したい Java 以外のクライアントが存在するかどうかによって異なります。

于 2009-08-29T08:50:39.577 に答える
0

RPC とドキュメントの Web サービスを検討している場合、この質問と回答が探しているものかもしれません。

http://www.coderanch.com/t/443021/Web-Services-Certification-SCDJWS/certification/Difference-between-RPC-Document-web#1971102

私はそれを説明することができましたが、誰かがコード例を見て議論した場合、私の反応は比較にならないでしょう.

さらに、あなたが何について尋ねているのかよくわかりません。ここでは用語が問題になる可能性があると思います。

于 2009-09-01T00:28:53.827 に答える