基本的には、レイアウトしたばかりの理由から、今日作成するアプリケーションにRMIを使用するべきではありません。
場合によっては(レガシーまたは「エンタープライズ」アプリケーションに飛び込む)、選択の余地がありません。
ただし、新しいプロジェクトを開始する場合、他のオプションは次のとおりです。
REST + JSON over HTTP
リモートサービスと通信するためのデファクトスタンダード。最大のメリットは、軽量でコンセプトがわかりやすいことです。
理論的には、使用可能なURL、各URLで受け入れられる動詞などを手動で作成する必要があるため、RMIよりも多くの作業が必要になります。実際には、RMIの定型文は実際には誰にも役立ちません。
Javaにこだわる、Jerseyは、独自のRESTfulWebサービスを作成するための優れたライブラリです。
Javaを使用したRESTfulWebサービス用のバッテリーを含むソリューションが必要な場合、YammerのナイスガイによるDropwizardは、ビジネスロジックをプラグインする準備ができた完全なサーバーとフレームワークを提供し、ロギング、データベース接続、シリアル化、リクエストルーティング、および箱から出して収集するメトリックさえ。
石鹸
リモートサービスと通信するための以前の標準。あなたがそれを使う理由がない限り、私はRESTに固執するでしょう。
倹約
Thriftはクライアントとサーバーのスタブを作成し、基本的に多くの作業を行います。通信は効率的なバイナリプロトコルで行われます。「ビッグデータ」分野の多くのオープンソースプロジェクトで使用されているため、Javaの世界で人気が高まっています。例、Cassandra、HBase(Avroへの切り替え)。Scroogeは、scala用の慣用的な節約スタブを作成するためのTwitterプロジェクトです。
アッカ俳優
Akkaは、ScalaとJavaのアクターモデルを実装するフレームワークです。サービス間通信のプロビジョニングが含まれ、内部で詳細の多くを処理します。私
ニーズに応じて、他のものよりも適しているものもあります。