0

作業中のアプリケーションに Java RMI と標準の Java ネットワークのどちらを使用するかを検討しています。

アプリは、ハートビート センサーとフェイルセーフ機能を備えたネットワーク システムになります。つまり、少なくとも DB と Java アプリケーションを備えた 3 層システムです。

したがって、データベースが 1 台のマシンで失敗した場合、2 台目のマシンでこれを「感知」したいと考えています。

Java RMI について、学ぶ価値があるかどうか、少し混乱しています。

または、標準の Java ネットワーキングを使用している場合、RMI と同じことができますか? つまり、Java ネットワーキングを本当によく知っていればの話ですが。

ありがとう!

4

2 に答える 2

2

最近では、SOAP や REST を使用して Web サービスを簡単にセットアップできます。REST を使用すると、XML や JSON メッセージについて詳しく知らなくても使用できます。これらのタイプのサービスはすべて、.NET コード、PHP、または Javascript からアクセスできます。(うーん... SOAPは、.NETとJavaを除いて、ちょっと面倒です.//個人的な意見)

Spring はサービスのセットアップを支援し、それに対するクライアント インターフェイスは非常に簡単です。標準にかなり近い Bean クラスとビジネス メソッドのアノテーションがインターフェイスを定義し、Spring が面倒な作業を行います。(Spring Remoting ではなく、Spring Web Services について話しているのですが、Spring Remoting も同様に機能します。Spring Remoting は、RMI IMHO よりもはるかに優れているわけではありません。)

Jersey (JAX-WS) または Jackson (Parse JSON) を使用してリモート処理を行うこともできます。Bean クラスの標準アノテーションと、インターフェイスを構築するもの以外。CXF は JAX-WS と JAX-RS も同様に行います。これらは、リモート メッセージを介して通信するサービスとクライアントを構築するための Java 標準です。

別の方法として、リモート インターフェイスの両側を生成するための Eclipse ツールがあります。すべてが何らかのフレームワークに関連付けられています (Axis-2 または CXS は一部です)。コード生成のようなものです。

これらを少し調べて、どれがあなたの物事の見方に共鳴するかを確認したいかもしれません.

私は、RMI を使用するよりもこれらすべてを好むことを知っています。しかし、私は長い間 RMI を直接使用していません。

于 2013-02-01T00:55:43.700 に答える
1

RMI は、「Java ネットワーキング」と呼ばれる Socket クラスを介した Java の裸の TCP/IP サポートと比較して、より高いレベルのプロトコルです。システムがハートビートを送信するだけで、ノードがほとんどない場合は、単純化のために RMI を選択する必要があります。参加者はすべて JVM であるため、それをサポートするための相互運用機能や追加のライブラリは必要ありません。また、参加者の数が限られているため、特別なことを考慮する必要はありません。

于 2013-02-01T02:21:21.417 に答える