2

私は現在、多層アプリケーション (サーバー/クライアント アーキテクチャ) に慣れようとしています。そのために、サービス インターフェイスと関連するサービス実装を作成しました。

両方のモジュール (クライアントとサーバー) がインターフェイス (ビルド パスを介して含まれる) を認識します。

アプリケーションの目的は、クライアントがサーバーからデータを受信し、データをサーバーに送信してデータベースに格納できるようにすることです。

双方向の通信が必要なようです。「標準」の Java RMI はそのための正しいアプローチですか、それとも ActiveMQ のような JMS 実装を使用する必要がありますか?

2 つのアプローチの主な違いがわかりません。RMI が同期で JMS が非同期であるのは唯一のものですか、それともそれ以上のものがありますか?

さらに、ActiveMQ のチュートリアルや書籍をお勧めできますか?

4

1 に答える 1

8

ここでは、それぞれ異なる使用シナリオを持つ2つの異なるテクノロジーについて説明しています。RMIは、Javaプログラム間のメソッドのリモート呼び出しを可能にするJavaアプリケーションプログラミングインターフェイス(API)であり、その使用目的は、同期分散アプリケーションの構築です。RMIは、Javaでリモートプロシージャコール(RPC)に相当します。

一方、ActiveMQは製品であり、メッセージ指向ミドルウェア(MOM)であり、非同期メッセージ(キューまたはトピック)の受信と処理に役立ちます。Javaアプリケーションは通常、JMSAPIを使用してそのようなシステムと通信します。

分散同期方式で別のJavaアプリケーションと通信する必要がある場合は、RMIを使用しますが、非同期で処理されるメッセージの送信にはJMSを使用します。原則として、処理には、Javaだけでなく他のテクノロジーを使用して記述されたシステムが含まれる可能性があります。 (RMIとは異なります)。

非同期メッセージングは​​通常、異種システムを統合するというアーキテクチャ上の問題を解決するために使用されます。このテーマに関する非常に優れた(テクノロジーにとらわれない)本は、エンタープライズ統合パターン:メッセージングソリューションの設計、構築、および展開です。

最後に、ActiveMQ in Actionは、ActiveMQに関する優れた本です。

于 2011-11-13T03:06:09.207 に答える