web-dev-qa-db-ja.com

RMIレジストリとは

RMIレジストリとは何ですか?それは何をするためのものか?

46
saplingPro

基本的に、RMIレジストリは、サーバーが提供するサービスを登録する場所であり、クライアントがそれらのサービスを照会する場所です。 Java RMI の概要を参照してください。抜粋:

図1は、RMIを使用しているときにクライアントが確立した接続を示しています。まず、クライアントはRMIレジストリにアクセスし、サービスの名前を要求する必要があります。開発者BはRMIサービスの正確な場所を知りませんが、開発者Aのレジストリに連絡するのに十分なことを知っています。これは、彼が呼び出したいサービスの方向に彼を向けます。

27
WhiteFang34

RMIレジストリは、RMIサーバーとクライアント間のブローカーとして機能します。サーバーはそのサービスをレジストリに「登録」します。したがって、RMIレジストリは多くのサーバー/サービスの「ディレクトリ」として機能できます。クライアントは、個々のサーバーの場所を知る必要はなく、必要なサービスのRMIレジストリを検索します。ネーミングディレクトリであるレジストリは、メソッドを呼び出すクライアントに適切なハンドルを返します。

Googleを中心に、RMIに関する多くの情報が利用可能です。

8
lobster1234

JavaのRemote Method Invocation(RMI)レジストリは、本質的にディレクトリサービスです。

リモートオブジェクトレジストリは、同じホスト上のRMIサーバーがリモートオブジェクトを名前にバインドするために使用するネームサービスであるbootstrapです。ローカルおよびリモートホスト上のクライアントは、リモートオブジェクトを検索してリモートメソッド呼び出し。( ドキュメント

RMIまたはJNDIを使用して、rmiレジストリでオブジェクトをリモートでバインドおよび検索できます。

これは、プロキシ設計パターンのよく知られたユースケースです。 RMIサーバーは、RMIレジストリにオブジェクト(本質的にスタブ)を登録します。リモートクライアントはこれらのスタブを検索し、そのメソッドを呼び出します。呼び出されるメソッドの背後で、その引数はシリアル化され、実装を持つ実際のRMIサーバーに送信されます。 RMIサーバー(スケルトンコード)は、要求を逆シリアル化し、実際のメソッドを呼び出し、結果を収集し、逆シリアル化し、クライアント(スタブ)に送り返します。スタブは結果を逆シリアル化し、このメソッドを呼び出したコードに返します。

2
Aniket Thakur

最初に、サーバーはRMIレジストリ内のリモートオブジェクトに名前を関連付けます。クライアントは、リモートオブジェクトへのアクセスを希望する場合、名前でレジストリ内のオブジェクトを検索します。その後、クライアントはサーバーのリモートオブジェクトのメソッドを呼び出すことができます。

http://www8.cs.umu.se/education/examina/Rapporter/471App.pdf

1
Divya