リモートメソッド呼び出し プログラマーが利用する方法です およびその開発環境をリモートで。そのすべてはどのように オブジェクト 異なるコンピュータ上で分散ネットワークで相互作用します。 Javaでのリモートメソッド呼び出しに関するこの記事では、クライアントとサーバー間でRMIアプリケーションを作成する方法を説明します。
始めましょう!
JavaのRMIとは何ですか?
ザ・ RMI (Remote Method Invocation)は、分散アプリケーションを作成するメカニズムを提供するAPIです。 。 RMIを使用すると、オブジェクトは別のオブジェクトで実行されているオブジェクトのメソッドを呼び出すことができます。 。 Remote Method Invocationは、2つのオブジェクトを使用してアプリケーション間のリモート通信を提供します スタブ そして スケルトン 。
スタブとスケルトンを理解する
クライアントマシンのスタブオブジェクトは情報ブロックを構築し、この情報をサーバーに送信します。ブロックは次のもので構成されます。
- 使用するリモートオブジェクトの識別子
- 呼び出されるメソッド名
- リモートJVMへのパラメーター
スケルトンオブジェクト
スケルトンオブジェクトは、スタブオブジェクトからリモートオブジェクトにリクエストを渡します。次のタスクを実行します。
javascriptの配列のサイズ
サーバー上に存在する実際のオブジェクトで目的のメソッドを呼び出します。
スタブオブジェクトから受け取ったパラメータをメソッドに転送します。
これで、さらに進んで、RMIアプリケーションを作成する方法を見てみましょう。
RMIアプリケーションを作成する手順
以下の手順は、RMIアプリケーションの作成に役立ちます。
- リモートの定義 インターフェース
- リモートインターフェースの実装
- スタブとスケルトンの作成 オブジェクト RMICを使用した実装クラスから(RMIコンパイラ)
- RMIレジストリを開始します
- サーバーアプリケーションプログラムを作成して実行します
- クライアントアプリケーションプログラムを作成して実行します
それでは、これらの手順の詳細を見ていきましょう。
ステップ1:リモートインターフェイスを定義する
私たちが最初にやらなければならないことは、 インターフェース 。これにより、リモートクライアントから呼び出すことができるメソッドについて説明します。このインターフェイスはリモートインターフェイスを拡張する必要があり、インターフェイス内のメソッドプロトタイプはRemoteExceptionをスローする必要があります。
//検索インターフェイスの作成importjava.rmi。* public interface Search extends Remote {//メソッドプロトタイプの宣言publicString Query(String search)throws RemoteException}
ステップ2:リモートインターフェースの実装
次のステップは、リモートインターフェイスを実装することです。リモートインターフェイスを実装するには、クラスをに拡張する必要があります java.rmiパッケージのUnicastRemoteObjectクラス 。また、デフォルト ビルダー 投げるために作成する必要があります java.rmi.RemoteException 親コンストラクターから。
// Searchインターフェイスを実装するJavaプログラムimportjava.rmi。* importjava.rmi.server。* public class SearchQuery extends UnicastRemoteObjectimplements Search {//親コンストラクタからRemoteExceptionをスローするデフォルトコンストラクタSearchQuery()throws RemoteException {super( )} //クエリインターフェイスの実装publicString query(String search)throws RemoteException {String result if(search.equals( 'Reflection in Java'))result = 'true' else result = 'false' return result}}
ステップ3:rmicを使用して実装クラスからスタブオブジェクトとスケルトンオブジェクトを作成する
RMICツールは、スタブオブジェクトとスケルトンオブジェクトを作成するRMIコンパイラを呼び出すために使用されます。そのプロトタイプはRMICクラス名です。
Javaでのcharatの使用
ステップ4:RMIレジストリを開始します
コマンドプロンプトでコマンドを発行してレジストリサービスを開始する必要がありますstartRMIregistry
ステップ5:サーバーアプリケーションプログラムを作成して実行する
次のステップは、サーバーアプリケーションプログラムを作成し、別のコマンドプロンプトで実行することです。
サーバープログラムは createRegistry 引数として渡されたポート番号を使用してサーバーJVM内にrmiregistryを作成するLocateRegistryクラスのメソッド。
Namingクラスのrebindメソッドは、リモートオブジェクトを新しい名前にバインドするために使用されます。
ハッシュセットJavaとは
//サーバーアプリケーションのプログラムimportjava.rmi。* importjava.rmi.registry。* public class SearchServer {public static void main(String args []){try {//インターフェース実装クラスのオブジェクトを作成しますSearchobj = new SearchQuery()//ポート番号1900のサーバーJVM内のrmiregistry // LocateRegistry.createRegistry(1900)&ltp style = 'text-align:justify'&gt //リモートオブジェクトを名前でバインドします// edureka Naming.rebind( 'rmi:// localhost:1900' + '/ edureka'、obj)} catch(Exception ae){System.out.println(ae)}}}
ステップ6:クライアントアプリケーションプログラムを作成して実行する
最後のステップは、クライアントアプリケーションプログラムを作成し、別のコマンドプロンプトで実行することです。ネーミングクラスのルックアップメソッドは、スタブオブジェクトの参照を取得するために使用されます
上記のクライアントとサーバープログラムは同じマシンで実行されるため、localhostが使用されています。別のマシンからリモートオブジェクトにアクセスするには、localhostをリモートオブジェクトが存在するIPアドレスに置き換えます。
これで、RMIの終わりになります。 論文。それが有益であり、基礎を理解するのに役立つことを願っています。
チェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。私たちはあなたの旅のすべてのステップであなたを助けるためにここにいます、このジャバの面接の質問に加えてなるために、私たちは学生となりたい専門家のために設計されたカリキュラムを考え出します Java 開発者。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。
質問がありますか?この「RMIinJava」記事のコメントセクションで言及してください できるだけ早くご連絡いたします。