2011-07-15 18 views
9

JSFを使用して開発されたポータル/ Webクライアント用のサービスを開発しています。私のアドバイスはRESTとしてのサービスを公開することでしたが、開発とテストの観点からJavaオブジェクトを扱いやすくなって以来、RMIの実装には別のチームメンバーがいると言いました。RMI対RESTサービス

私の主張は、開発とテストの努力はほとんど同じですが、我々はREST Webサービスのすべての利点を得るでしょう。

FYI:既にフレームワークサポートに余分な費用がかからないように、RESTセットアップがあります。このサービスは、REST APIを使用しているスマートフォンクライアントに公開されています。

最終的に私たちのマネージャーはRMIの方法で行くことに決めましたが、私はまだRESTがもっとスマートな方法だと思います。

あなたはRESTまたはRMIを選択しますか?

注:私のチームメンバーやマネージャーは、ここで学びたいとは思わないものはありません。

+0

確定的な回答には十分な情報はありませんが、既にREST APIを使用している場合は、別のリモーティングの選択肢を追加するのにマネージャーが必要です。 – SteveD

+0

あなたが家で走っているなら、RMIは問題ありません。一般的なインターネット上の何らかのクライアント/サーバは、最新のWebサービスプロトコルを使用する必要があります。 – jtahlborn

答えて

4

RMIとREST/SOAPなどの最大の論点は、クライアントがJavaである必要はないということです。

フロントエンドがJSFからASPに変更する可能性がある場合は、問題が発生します。

それ以外は、RMIが道のりです。多くのベンダーが既にEJB仕様を実装しているので、オブジェクトプーリング、トランザクション管理などの利点があります。

+6

EJBエンタープライズJava Beansを使用している場合、私は同意しません.RMIだけが必要な場合は、EJB関連の処理を行うには膨大なオーバーヘッドになります。 –

5

クライアントとサーバー間のファイアウォールであるため、RMIトラフィックがブロックされる可能性があります。 HTTPトラフィックはほとんどのファイアウォールで開かれており、RESTには問題はありません。

+1

あなたのソフトウェアを企業に売っている人は、RMI用のポートを開くのが好きではありませんが、HTTP(S)経由で何かをトンネリングできます。 – SteveD

+3

HTTP経由でRMIを実行することもできます。 –

2

クライアントはJavaで、RMIを使用していますか。しかし、それは単純な考え方です。それはポイントツーポイントプロトコルに過ぎません。

パラダイムとしてのRESTは興味深いです。多くの読み込みやキャッシュなどのHTTP技術を使用して好きです。次に、あなたは簡単に "ページングカーソル"を実装することができますので、小さなページとしてデータを送信し、次のページを取得する方法を情報を追加します。

あなたの質問は、技術的な質問のように基本的に定式化されています。どちらが間違ったアプローチです。技術については心配するべきではありません。 RMIまたはRESTの使用状況によって、ソフトウェアシステム全体、その能力、パフォーマンス、スケーリング、構成および保守は完全に異なります。